读书人

Linux 下 LVS配置.忘大哥们不吝赐教,该

发布时间: 2012-03-09 21:42:55 作者: rapoo

Linux 下 LVS配置.忘大哥们不吝赐教
以下配置的LVS工作模式为 NAT


请各位大哥耐心的看完我给的这些配置,看完后,最后我有几个疑问想请教一下.

忘不吝赐教.

小弟感激不敬



以下所有的机器我都是用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

Perl code
# ================================================================real server 1#网络配置DEVICE=eth0BOOTPROTO=staticONBOOT=yesHWADDR=00:0C:29:6D:BA:77NETMASK=255.255.255.0IPADDR=192.168.97.12GATEWAY=192.168.97.1TYPE=Ethernet#apache 服务监听端口为 80 当然,已经配置好欢迎页面#===================================================================real server 2#网络配置DEVICE=eth0BOOTPROTO=staticONBOOT=yesHWADDR=00:0C:29:BC:17:F5NETMASK=255.255.255.0IPADDR=192.168.97.11GATEWAY=192.168.97.1#apache 服务监听端口为 80 当然,已经配置好欢迎页面#====================================================================ipvsadm 所在的服务器这个服务器上 , 我设置了2个虚拟的网卡.# 第一张虚拟网卡配置如下DEVICE=eth0BOOTPROTO=staticIPADDR=192.168.96.138NETMASK=255.255.255.0HWADDR=00:0C:29:C9:53:D0GATEWAY=192.168.96.2ONBOOT=yes# 第二张虚拟网卡配置如下DEVICE=eth1BOOTPROTO=staticIPADDR=192.168.97.1NETMASK=255.255.255.0HWADDR=00:0c:29:c9:53:daGATEWAY=192.168.97.1ONBOOT=yes# 另外我在第二张网卡上面配置了一个虚拟ipifconfig eth1:1 192.168.96.139 netmask 255.255.255.0 up#首先看下ipvsadm是否加入内核[root@localhost init.d]# lsmod | grep ip_vsip_vs_rr                6081  0ip_vs                  78081  2 ip_vs_rr#接下来ipvsadm的版本[root@localhost init.d]# ipvsadmIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn# 开启路由机制vi /etc/sysctl.confnet.ipv4.ip_forward = 1并执行sysctl -p 后生效     # 配置一个启动ipvsadm的脚本vim /etc/init.d/lvsnat内容如下:#! /bin/bash# LVS script NATVIP=192.168.96.139RIP1=192.169.97.11RIP2=192.169.97.12case "$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 startIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  192.168.96.139:http rr  -> 192.169.97.12:http           Masq    1      0          0  -> 192.169.97.11:http           Masq    1      0          0start LVS of DirectorServer NAT# 查看配置[root@localhost init.d]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  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.因为,我还没有测试成功,所以请高手看看,我以上的配置是否还有需要改正的地方.

小弟再次感谢...






[解决办法]
# 第一张虚拟网卡配置如下
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看看

[解决办法]
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了...
但首先你要保证这些网段都是可以相互通信的

读书人网 >UNIXLINUX

热点推荐