LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现

 

网络拓扑:

 

LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现_第1张图片

 

准备工作:

1、如上图所示本实例当中使用Vmware创建了5台虚拟机(其中2台做为Real Server,1台做为Director

       1台充当路由器,1台充当客户机);OS分别为CentOS 6.4 32bIt (2.6.32-358),Windowsxp

2、为了方便在本实例中把5台虚拟主机的(防火墙都关掉了),同时在Director和LVS-GW上开启了

       路由转发功能(此外还关闭了SeLinux)

3、其中RIP和DIP 在(VMnet8)网络内(192.168.10.0/24),VIP在物理网络(192.168.20.0/22, 192.168.23.0/22)

       内。客户机(192.168.20.80/22)在物理网络内

4、在Real Server  安装 httpd (  # yum  install  httpd  -y)

5.   在Director(LVS) 安装 ipvsadm (#  yum  install  ipvsadm  -y)

1. Director (LVS)

LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现_第2张图片

1.在Director(LVS)上设置(DIP|VIP):

   eth0-DIP:     192.168.10.129/24

   eth0:0-VIP:  192.168.20.186/22 
   # ifconfig  eth0:0 192.168.20.186  broadcast  192.168.20.186  netmask 255.255.255.255 
   # route  add  -host  192.168.20.186  dev  eth0:0
   # route   -n

2.在Director(LVS)上添加静态路由:

    # route  add  default  gw  192.168.10.132

    #route  add  -net  192.168.20.0/22  gw  192.168.10.132  eth0
   注意这个路由条目为什么不写成 route  add  -net  192.168.23.0/22 (因为这样写会报错:掩码与IP不匹配)
   我们公司内部使用的是超网(192.168.20.0/22,192.168.21.0/22,192.168.22.0/22,192.168.23.0/22 )虽然
   实际我们的目标网络是192.168.23.0/22(当中的客户机:192.168.20.80)、但在LVS上添加路由条目时,网络
   号应该输入:192.168.20.0/22

3.在Director(LVS)启用路由转发功能

    # echo  1  >  /proc/sys/net/ipv4/ip_forward 

 

4. 在Director(LVS) 添加IPVS规则

    # ipvsadm  -A  -t  192.168.20.186:80  -s  rr

    # ipvsadm  -a  -t  192.168.20.186:80   -r   192.168.10.130   -g

    # ipvsadm  -a  -t  192.168.20.186:80   -r   192.168.10.131   -g

    # ipvsadm  -L   -n

    # ipvsadm  -L   -n  -c

   LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现_第3张图片

 

2. LVS-GW

LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现_第4张图片

1.在Director(LVS-GW)上设置(eth0|eth1)的IP:

   eth0: 192.168.10.132/24

   eth1: 192.168.23.145/22

2.在Director(LVS-GW)上添加静态路由:

    # route  add  -host  192.168.20.186  dev eth0

3.在LVS-GW启用路由转发功能

    # echo  1  >  /proc/sys/net/ipv4/ip_forward 

3. RealServer(Site-1)

LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现_第5张图片

1.在Real Server (Site – 1)上 修改内核参数:
   # echo   1 >  /proc/sys/net/ipv4/conf/all/arp_ignore
   # echo   1 >  /proc/sys/net/ipv4/conf/eth0/arp_ignore
   # echo   2 >  /proc/sys/net/ipv4/conf/all/arp_announce
   # echo   2 >  /proc/sys/net/ipv4/conf/eth0/arp_announce 


2.在Real Server (Site – 1 )上设置(RIP|VIP):

   eth0-RIP: 192.168.10.130/24

   lo:0-VIP    192.168.20.186/22
   # ifconfig  lo:0  192.168.20.186  broadcast  192.168.20.186  netmask  255.255.255.255

3.在Real Server (Site – 1 )上添加静态路由:
   # route  add  -host  192.168.20.186  dev  lo:0
   # route  add  default  gw  192.168.10.132
   # route  -n

   注意:在Real Server构建响应报文时我们希望把VIP做为报文中的源地址就必须
   添加特殊路由条目(route  add  -host  192.168.20.186  dev  lo:0 )

4. RealServer(Site-2)

LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现_第6张图片

1.在Real Server (Site – 2)上 修改内核参数:
   # echo   1 >  /proc/sys/net/ipv4/conf/all/arp_ignore
   # echo   1 >  /proc/sys/net/ipv4/conf/eth0/arp_ignore
   # echo   2 >  /proc/sys/net/ipv4/conf/all/arp_announce
   # echo   2 >  /proc/sys/net/ipv4/conf/eth0/arp_announce 

2.在Real Server (Site – 2 )上设置(RIP|VIP):

   eth0-RIP: 192.168.10.131/24

   lo:0-VIP    192.168.20.186/22
   # ifconfig  lo:0  192.168.20.186  broadcast  192.168.20.186  netmask  255.255.255.255

3.在Real Server (Site – 2 )上添加静态路由:
   # route  add  -host  192.168.20.186  dev  lo:0
   # route  add  default  gw  192.168.10.132
   # route  -n

   注意:在Real Server构建响应报文时我们希望把VIP做为报文中的源地址就必须
   添加特殊路由条目(route  add  -host  192.168.20.186  dev  lo:0 )

 

5. Client_winxp

LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现_第7张图片

在Client_winxp上添加静态路由

c:\ >  route  add   192.168.20.186   mask   255.255.255.255  192.168.23.145

 

5. 测试

LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现_第8张图片

LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现_第9张图片