请各位大哥耐心的看完我给的这些配置,看完后,最后我有几个疑问想请教一下.
忘不吝赐教.
小弟感激不敬
以下所有的机器我都是用VMware上的虚拟机做的
虚拟机上面所有的机器都是使用的NAT模式
VMware NAT 设置如下
Network: vmnet8
Subnet IP:192.168.96.0
Subnet mask:255.255.255.0
Gateway : 192.168.96.2
所有机器防火墙全部关闭
所有操作系统版本都是CentOS 5.4
# ================================================================
real server 1
#网络配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0C:29:6D:BA:77
NETMASK=255.255.255.0
IPADDR=192.168.97.12
GATEWAY=192.168.97.1
TYPE=Ethernet
#apache 服务
监听端口为 80
当然,已经配置好欢迎页面
#===================================================================
real server 2
#网络配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0C:29:BC:17:F5
NETMASK=255.255.255.0
IPADDR=192.168.97.11
GATEWAY=192.168.97.1
#apache 服务
监听端口为 80
当然,已经配置好欢迎页面
#====================================================================
ipvsadm 所在的服务器
这个服务器上 , 我设置了2个虚拟的网卡.
# 第一张虚拟网卡配置如下
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.96.138
NETMASK=255.255.255.0
HWADDR=00:0C:29:C9:53:D0
GATEWAY=192.168.96.2
ONBOOT=yes
# 第二张虚拟网卡配置如下
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.97.1
NETMASK=255.255.255.0
HWADDR=00:0c:29:c9:53:da
GATEWAY=192.168.97.1
ONBOOT=yes
# 另外我在第二张网卡上面配置了一个虚拟ip
ifconfig eth1:1 192.168.96.139 netmask 255.255.255.0 up
#首先看下ipvsadm是否加入内核
[root@localhost init.d]# lsmod | grep ip_vs
ip_vs_rr 6081 0
ip_vs 78081 2 ip_vs_rr
#接下来ipvsadm的版本
[root@localhost init.d]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
# 开启路由机制
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
并执行sysctl -p 后生效
# 配置一个启动ipvsadm的脚本
vim /etc/init.d/lvsnat
内容如下:
#! /bin/bash
# LVS script NAT
VIP=192.168.96.139
RIP1=192.169.97.11
RIP2=192.169.97.12
case "$1" in
start)
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -m
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -m
/sbin/ipvsadm
echo "start LVS of DirectorServer NAT"
;;
stop)
echo "0" > /proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
echo "stop LVS of DirectorServer NAT"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
# 用脚本启动ipvsadm
[root@localhost init.d]# ./lvsnat start
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.96.139:http rr
-> 192.169.97.12:http Masq 1 0 0
-> 192.169.97.11:http Masq 1 0 0
start LVS of DirectorServer NAT
# 查看配置
[root@localhost init.d]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.96.139:80 rr
-> 192.169.97.12:80 Masq 1 0 0
-> 192.169.97.11:80 Masq 1 0 0
# ================================================================================
以上都是虚拟机的配置.
现在我在实体机中进行如下操作,发现了点疑问请高手不吝赐教
1.我在安装ipvsadm的服务器上(192.168.96.139).是否也需要开一个80端口的apache服务?
因为,我在实体机的游览器上输入http://192.168.96.139默认就是80端口,我感觉怎么也要开个80端口吧.
如果不开这个80端口,感觉这都没端口怎么能连接的过去呢?请高手指教..
2.我尝试的在ipvsadm的服务器上(192.168.96.139)启动了1个apache 80端口的服务器.
后来我用telnet 192.168.96.139 80 是连接不通的( 所有机器的防火墙都关闭了)
经过测试我发现.在我写的启动ipvsadm的脚本中(/sbin/ipvsadm -A -t $VIP:80 -s rr)这一句照成
如果我不执行这个脚本,telnet 192.168.96.139 80 是可以连接通的
一旦脚本执行到/sbin/ipvsadm -A -t $VIP:80 -s rr 就80端口就不通了。请问这个为什么?
3.因为,我还没有测试成功,所以请高手看看,我以上的配置是否还有需要改正的地方.
小弟再次感谢...
14 个解决方案
#1
#2
为什么没人回答我的呢。。
#3
我怎么感觉现在CSDN没人了啊。。。
#4
我没怎么仔细看,但是你的realserver的默认网关要设置为lvs的ip
#5
麻烦直接看看。谢谢了。。。
我的realserver的默认网关是设置的lvs的ip。。
#6
麻烦大哥在都看看..谢谢了。我的哦realserver的默认网关是设置为lvs的ip
#7
#8
# 第一张虚拟网卡配置如下
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.96.138
NETMASK=255.255.255.0
HWADDR=00:0C:29:C9:53:D0
GATEWAY=192.168.96.2
ONBOOT=yes
# 第二张虚拟网卡配置如下
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.97.1
NETMASK=255.255.255.0
HWADDR=00:0c:29:c9:53:da
GATEWAY=192.168.97.1
ONBOOT=yes
怎么两个gateway,换成一个真实的去internet 的gateway看看
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.96.138
NETMASK=255.255.255.0
HWADDR=00:0C:29:C9:53:D0
GATEWAY=192.168.96.2
ONBOOT=yes
# 第二张虚拟网卡配置如下
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.97.1
NETMASK=255.255.255.0
HWADDR=00:0c:29:c9:53:da
GATEWAY=192.168.97.1
ONBOOT=yes
怎么两个gateway,换成一个真实的去internet 的gateway看看
#9
1.
192.168.96.139不需要开放80端口,因为是通过路由将访问从139跳转到realserver的,所以实际*问的还是realserver:80
2.
貌似你没有理解4L的意思,从顶楼给出的配置看,realserver的ip是11和12,但他们的GATEWAY是97.1,你需要将11和12的GATEWAY修改成 192.168.96.139
不过有个更简单的方法...你的VIP其实应该是192.168.97.1……就省得改两台机器的GATEWAY了...
但首先你要保证这些网段都是可以相互通信的
192.168.96.139不需要开放80端口,因为是通过路由将访问从139跳转到realserver的,所以实际*问的还是realserver:80
2.
貌似你没有理解4L的意思,从顶楼给出的配置看,realserver的ip是11和12,但他们的GATEWAY是97.1,你需要将11和12的GATEWAY修改成 192.168.96.139
不过有个更简单的方法...你的VIP其实应该是192.168.97.1……就省得改两台机器的GATEWAY了...
但首先你要保证这些网段都是可以相互通信的
#10
############################################################
# 为了让网络互通.我设置简单点的.让所有ip都在一个网络段里面
############################################################
# ================================================================
real server 1
#网络配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0C:29:6D:BA:77
NETMASK=255.255.255.0
IPADDR=192.168.96.12
GATEWAY=192.168.96.139
TYPE=Ethernet
#apache 服务
监听端口为 80
当然,已经配置好欢迎页面
#===================================================================
real server 2
#网络配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0C:29:BC:17:F5
NETMASK=255.255.255.0
IPADDR=192.168.96.11
GATEWAY=192.168.96.139
[root@localhost ~]# cat /etc/init.d/lvsnat
#! /bin/bash
# LVS script NAT
VIP=192.168.96.139
RIP1=192.169.96.11
RIP2=192.169.96.12
case "$1" in
start)
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -m
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -m
/sbin/ipvsadm
echo "start LVS of DirectorServer NAT"
;;
stop)
echo "0" > /proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
echo "stop LVS of DirectorServer NAT"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
貌似在同一个IP段里面.都不能成功....请问......何解..跪求
#11
我在本机输入http://192.168.96.139 ~~~~ 无法找到服务器.....
#12
ping 192.168.96.139正常否
在192.168.96.139上,ping两台realserver的ip正常否
在192.168.96.139上,telnet 两台realserver 80正常否
如果都正常,建议在192.168.96.139上tcpdump抓包看看访问的数据是怎么走的
在192.168.96.139上,ping两台realserver的ip正常否
在192.168.96.139上,telnet 两台realserver 80正常否
如果都正常,建议在192.168.96.139上tcpdump抓包看看访问的数据是怎么走的
#13
mark and study
#14
貌似没有成功案例啊
#1
#2
为什么没人回答我的呢。。
#3
我怎么感觉现在CSDN没人了啊。。。
#4
我没怎么仔细看,但是你的realserver的默认网关要设置为lvs的ip
#5
麻烦直接看看。谢谢了。。。
我的realserver的默认网关是设置的lvs的ip。。
#6
麻烦大哥在都看看..谢谢了。我的哦realserver的默认网关是设置为lvs的ip
#7
#8
# 第一张虚拟网卡配置如下
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.96.138
NETMASK=255.255.255.0
HWADDR=00:0C:29:C9:53:D0
GATEWAY=192.168.96.2
ONBOOT=yes
# 第二张虚拟网卡配置如下
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.97.1
NETMASK=255.255.255.0
HWADDR=00:0c:29:c9:53:da
GATEWAY=192.168.97.1
ONBOOT=yes
怎么两个gateway,换成一个真实的去internet 的gateway看看
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.96.138
NETMASK=255.255.255.0
HWADDR=00:0C:29:C9:53:D0
GATEWAY=192.168.96.2
ONBOOT=yes
# 第二张虚拟网卡配置如下
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.97.1
NETMASK=255.255.255.0
HWADDR=00:0c:29:c9:53:da
GATEWAY=192.168.97.1
ONBOOT=yes
怎么两个gateway,换成一个真实的去internet 的gateway看看
#9
1.
192.168.96.139不需要开放80端口,因为是通过路由将访问从139跳转到realserver的,所以实际*问的还是realserver:80
2.
貌似你没有理解4L的意思,从顶楼给出的配置看,realserver的ip是11和12,但他们的GATEWAY是97.1,你需要将11和12的GATEWAY修改成 192.168.96.139
不过有个更简单的方法...你的VIP其实应该是192.168.97.1……就省得改两台机器的GATEWAY了...
但首先你要保证这些网段都是可以相互通信的
192.168.96.139不需要开放80端口,因为是通过路由将访问从139跳转到realserver的,所以实际*问的还是realserver:80
2.
貌似你没有理解4L的意思,从顶楼给出的配置看,realserver的ip是11和12,但他们的GATEWAY是97.1,你需要将11和12的GATEWAY修改成 192.168.96.139
不过有个更简单的方法...你的VIP其实应该是192.168.97.1……就省得改两台机器的GATEWAY了...
但首先你要保证这些网段都是可以相互通信的
#10
############################################################
# 为了让网络互通.我设置简单点的.让所有ip都在一个网络段里面
############################################################
# ================================================================
real server 1
#网络配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0C:29:6D:BA:77
NETMASK=255.255.255.0
IPADDR=192.168.96.12
GATEWAY=192.168.96.139
TYPE=Ethernet
#apache 服务
监听端口为 80
当然,已经配置好欢迎页面
#===================================================================
real server 2
#网络配置
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0C:29:BC:17:F5
NETMASK=255.255.255.0
IPADDR=192.168.96.11
GATEWAY=192.168.96.139
[root@localhost ~]# cat /etc/init.d/lvsnat
#! /bin/bash
# LVS script NAT
VIP=192.168.96.139
RIP1=192.169.96.11
RIP2=192.169.96.12
case "$1" in
start)
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -m
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -m
/sbin/ipvsadm
echo "start LVS of DirectorServer NAT"
;;
stop)
echo "0" > /proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
echo "stop LVS of DirectorServer NAT"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
貌似在同一个IP段里面.都不能成功....请问......何解..跪求
#11
我在本机输入http://192.168.96.139 ~~~~ 无法找到服务器.....
#12
ping 192.168.96.139正常否
在192.168.96.139上,ping两台realserver的ip正常否
在192.168.96.139上,telnet 两台realserver 80正常否
如果都正常,建议在192.168.96.139上tcpdump抓包看看访问的数据是怎么走的
在192.168.96.139上,ping两台realserver的ip正常否
在192.168.96.139上,telnet 两台realserver 80正常否
如果都正常,建议在192.168.96.139上tcpdump抓包看看访问的数据是怎么走的
#13
mark and study
#14
貌似没有成功案例啊