1、通过在调度器LB上修改数据包的目的MAC地址实现转发,注意:源IP地址依然是CIP,目的地址仍然是VIP

2、请求报文经过调度器,而RS相应处理后的报文无需经过调度器LB,因此,并发访问目的IP地址仍然是VIP

3、因DR模式是通过MAC地址的改写机制进行转发的,因此所有RS节点和调度器LB只能在一个局域网LAN中(缺点)

4、需要注意RS节点的VIP的绑定(lo:vip,lo1:vip)和ARP抑制问题

5、强调下:RS节点的默认网关不需要是调度器LB的DIP,而直接是IDC机房分配的上级路由器的IP(这是RS带有外网IP地址的情况),

  理论讲:只要RS可出网即可,不是必须要配置外网IP

6、由于DR模式的调度器进进行了目的MAC地址的改写,因此LB无法改变请求报文的目的端口(和NAT要区别)

7、当前,调度器LB支持几乎所有的linux和unix系统,但目前不支持windows系统,真实服务器RS节点可以是WINDOWS系统

8、总的来说DR模式效率很高,但是配置也比较麻烦,因此,访问量不是特别大的公司可以用haproxy/nginx取代,这符合运维的原则:简单、易用

  高效。日2000WPV或并发请求1万以下的都可以考虑用haproxy/nginx(LVS NAT模式)

9、直接对外的访问业务,例如WEB服务做RS节点,RS最要用公网IP,如果不直接对外的业务,例如MYsql,存储系统RS节点,最好只用内部IP地址

 

配置LVS虚拟IP:

规划:LBS地址:172.16.12.205

   RS1地址:172.16.12.206

     RS2地址:172.16.12.207

   VIP地址:172.16.12.208

1、ifconfig eth0:0 172.16.12.208 netmask 255.255.255.0 up 或者ifconfig eth0:0 172.16.12.208/24 up

  (注意:LVS绑定虚拟IP要绑定在实际物理网卡上)

2、添加路由:route add -host 172.16.12.208 dev eth0

3、将172.16.12.208解析到域名上

4、测试在实际网络环境下是否能ping通VIP地址,如果不能ping通请检查防火墙

 

在lvs上手动添加虚拟服务并添加两台RS

ipvsadm -C  (此步骤并非必须,-C表示清空所有已添加的虚拟服务和RS)

ipvsadm --set 30 5 60 :设置连接超时时间,三个值分别表示tcp、tcpfin、udp超时时间

ipvsadm -A -t 172.16.12.208:80 -s rr (-A表示添加虚拟服务,-t表示指定VIP地址和端口 -s表示算法,常用算法有rr,wrr,wlc,lc)

ipvsadm -a -t 172.16.12.208:80 -r 172.16.12.206 -g -w 1(在指定虚拟服务上添加RS节点,-g表示工作模式,-w表示权重;工作模式包括DR模式g表示,net模式用-m表示,TUN用-i表示)

【ipvsadm -D -t 172.16.12.208:80表示删除虚拟服务】

【ipvsadm -d -t 172.16.12.208:80 -r 172.16.12.206表示删除真实节点】

 

手动在RS端绑定VIP

ifconfig lo:0 172.16.12.208/32 up(注意VIP需要绑定在回环接口,子网掩码为32位)

route add -host 172.16.12.208 dev lo

 

手动在RS端抑制ARP响应

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

 

posted on 2017-04-19 17:39  金翅大鹏吃唐僧  阅读(308)  评论(0)    收藏  举报