dsfdsf 发表于 2014-2-7 09:19:20

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

LVS的默认模型:默认模型DR
DR模型原理图-->

在讲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的意思是,若ARP请求报文的源IP能与本地某个IP地址互通,则用本地此IP和所对应的MAC去通告(而不再使用ARP请求里面的源IP作为响应报文的源IP),如果找不到,则用eth0网卡的ip地址及对应MAC作为ARP通告报文的源信息(原文是the first local address,不知道是不是这意思);如此以来,当ARP请求(源IP是VIP)来临的时候,Real Server就会发送以RIP为源IP的ARP通告报文,因为找不到与VIP能通信的本地IP(注释:默认应该是发送一个VIP为源IP的通告报文,如果是这样,就成ARP欺骗了),如此Director就能获得Real Server的MAC。


[*]在Real Server上添加VIP,但是VIP不能添加到RIP网卡上,原因在于内核的ARP限制是在网卡上限制的
[*]在Real Server上先修改内核参数,再配置IP地址,原因在于如果先配置IP,ARP就直接通告出去了
[*]RIP和DIP必须在一个网段,原因在于服务请求的报文,它的目标IP和源IP都不能更改,所以只能通过更改目标MAC地址来进行转发,不在一个网段,怎么知晓Real Server的MAC,不知道MAC,就无从修改网络服务报文的目标MAC,从而无法转发
[*]Real Server的网关必须指向RIP同一网段的另一个路由设备的lan口,从而发包到互联网上




页: [1]
查看完整版本: 负载均衡集群之LVS的DR模型详解(Diretor Routing)