LVS-dr类型

实验环境准备:

node1:CentOS6.5    作为dr转发主机   

单网卡:eth0上配置DIP:172.16.18.1     eth0:0上配置VIP:172.16.18.2

ipvsadm版本 :ipvsadm-1.26-2.el6

node2:CentOS6.5

单网卡:eth0上配置RIP1:172.16.18.10           lo:0上配置VIP:172.16.18.2

node3:CentOS6.5

单网卡:eth0上配置RIP2:172.16.18.20           lo:0上配置VIP:172.16.18.2

实验模型:dr

dr类型的特性:

1、保证前端路由将目标地址为VIP的报文统统发往Director,而不能是RS;

     解决方案:

      (1) 静态地址绑定:在前端路由器上操作 。问题:未必有路由操作权限

      (2) aprtables :在防火墙上设置VIP的所有响应都无法出来。

      (3) 修改RS上内核参数,将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求;

2、RS可以使用私有地址;但也可以使用公网地址,此时可通过互联网通过RIP对其直接访问;

3、RS跟Director必须在同一物理网络中;

4、请求报文经由Director,但响应报文必须不能经过Director;

5、不支持端口映射;

6、RS可以是大多数常见的OS;

7、RS的网关绝不允许指向DIP;

本实验模型采用的就是第三中解决方案。修改内核参数,将VIP配置在lo的别名上。eth0接受到的数据响应强制提交给lo,再由lo转发给eth0出去。

内核参数:

arp_announce :对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口

0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址

1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.

2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.

arp_ignore:定义对目标地址为本地IP的ARP询问不同的应答模式0

0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求

1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求

2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内

3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应

4-7 - 保留未使用

8 -不回应所有(本地地址)的arp查询

clipboard

实验内容:


配置node1节点:作为

[root@node1 ~]# ifconfig eth0 172.16.18.1/16        #配置DIP地址。

[root@node1 ~]# ifconfig eth0:0 172.16.18.2/16    #配置VIP地址

配置node2节点:

[root@node2 ~]# ifconfig eth0 172.16.18.10/16        #配置RIP地址

配置web服务:

为其添加一个页面。

[root@node2 ~]# vim /var/www/html/index.html

<h1>node2.aolens.com</h1>

service httpd start

[root@node2 ~]# curl http://172.16.18.10                 #访问OK    
<h1>node2.aolens.com</h1>

配置node2 的内核参数。

在内核中限定只要响应不是从eth0来的就不予以响应,限制eth0只把eth0自己的地址通告给网络,而不是将所有拥有的地址通告给网络。

clipboard[1]

[root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore    
[
root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore    
[
root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce    
[
root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

再来配置lo:0上的VIP地址。

[root@node2 ~]# ifconfig lo:0 172.16.18.2 netmask 255.255.255.255 broadcast 172.16.18.2 up

配置node3:

[root@node3 ~]# ifconfig eth0 172.16.18.20/16        #配置RIP地址

[root@node2 ~]# vim /var/www/html/index.html

<h1>node3.aolens.com</h1>

service httpd start

[root@node3 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@node3 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

[root@node3 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

[root@node3 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

再来配置lo:0上的VIP地址。

[root@node3 ~]#  ifconfig lo:0 172.16.18.2 netmask 255.255.255.255 broadcast 172.16.18.2 up

[root@node3 ~]# route add -host 172.16.18.2 dev lo:0    #添加路由指定

下来我们来配置node1上的ipvs规则。

[root@node1 ~]# ipvsadm -A -t 172.16.18.2:80 -s rr

[root@node1 ~]# ipvsadm -a -t 172.16.18.2:80 -r 172.16.18.10 -w 1 -g

[root@node1 ~]# ipvsadm -a -t 172.16.18.2:80 -r 172.16.18.20 -w 1 -g

访问172.16.18.2得到返回结果。

clipboard[2]

模型2:

如果RIP和VIP不属于同一网段

clipboard[3]

实验环境:

node1:CentOS6.5    作为dr转发主机   

单网卡:eth0上配置DIP:192.168.1.9     eth0:0上配置VIP:172.16.18.2

node2:CentOS6.5

单网卡:eth0上配置RIP1:192.168.1.10           lo:0上配置VIP:172.16.18.2

node3:CentOS6.5

单网卡:eth0上配置RIP2:192.168.1.20           lo:0上配置VIP:172.16.18.2

实验内容:

在node1上配置:

ifconfig eth0 192.168.1.9/24       #DIP

ifconfig eth0:0 172.16.18.2/16     #VIP

配置node2 :

ifconfig eth0  192.168.1.10/24     #RIP

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/eth0/arp_announce 
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

ifconfig lo:0 172.16.18.2 netmask 255.255.255.255 broadcast 172.16.18.2 up

route add -host 172.16.18.2 dev lo:0    #添加路由指定

route add default gw 192.168.1.1         #指向网关

配置node3 :

ifconfig eth0  192.168.1.20/24     #RIP

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/eth0/arp_announce 
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

ifconfig lo:0 172.16.18.2 netmask 255.255.255.255 broadcast 172.16.18.2 up

route add -host 172.16.18.2 dev lo:0    #添加路由指定

route add default gw 192.168.1.1         #指向网关

下来我们来配置node1上的ipvs规则。

ipvsadm -A -t 172.16.18.2:80 -s rr

ipvsadm -a -t 172.16.18.2:80 -r 192.168.1.10 -w 1 -g

ipvsadm -a -t 172.16.18.2:80 -r 192.168.1.20 -w 1 -g

访问结果:

clipboard[4]

你可能感兴趣的:(LVS,解决方案)