您的位置:首页 > 其它

负载均衡集群之LVS的DR模型详解(Diretor Routing)

2014-02-06 22:35 267 查看
LVS的默认模型:默认模型DRDR模型原理图-->



在讲DR模型要点之前,需要了解网络的相关知识:接收的报文拆解顺序:帧(MAC)-->数据包(IP)-->数据报文(port)
ARP是广播,即只能在同一个局域网之内,不能穿过路由设备,作用是通告自己的MAC和请求目标IP的MAC
DR模型要点-->Real Server修改内核参数,忽略别人的ARP请求,同时禁止自己ARP通告,从而避免了外部的服务请求包转发到Real Server:
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


arp_ignore=1的意思是,仅当ARP广播查询的IP是进口网卡IP的时候,才予以回应,因为VIP不是,所以不回应。

arp_announce=2的意思是,对查询目标通告本地最合适的IP地址.那么何为最合适的IP地址.即:本地某个接口的IP地址和这个查询目标处于同一个子网内;如果这个条件不成立,则通告能接收到此ARP查询数据包的接口网卡MAC.那么我们可以得到如下结论:依据arp_ignore = 1,我们可以防止来自client的数据包被网关设备直接发往real server,因此,所有的client请求都到了DR上依据arp_announce = 2,我们可以让DR获取到real server的DIP所在网卡的MAC.因此,DR就可以将目的MAC修改为real server的MAC,从而将数据包转发给Real server在Real Server的lo上添加VIP,但是VIP不能添加到RIP网卡上,原因在于内核的ARP限制是在网卡上限制的
在Real Server上先修改内核参数,再配置IP地址,原因在于如果先配置IP,ARP就直接通告出去了
RIP和DIP必须在一个网段,原因在于服务请求的报文,它的目标IP和源IP都不能更改,所以只能通过更改目标MAC地址来进行转发,不在一个网段,怎么知晓Real Server的MAC,不知道MAC,就无从修改网络服务报文的目标MAC,从而无法转发
Real Server的网关必须指向RIP同一网段的另一个路由设备的lan口,从而发包到互联网上

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: