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
浙公网安备 33010602011771号