lvs ARP问题

  

(零)本地流量

只要是本机的进程跟本机的进程进行通讯,产生的流量,都是在lo接口上,而无论你使用的ip地址是eth0还是eth1的!

 

(一) 冲突域与广播域

冲突域:发生在第一层(物理层),用于隔离冲突域的设备,是二层设备(如网桥,交换机)

广播域:发生在第二层(链路层),用于隔离广播域的设备,是三层设备(如路由器,VLAN)

 

(二)ARP广播与loopback接口

前面所说,ARP广播,发生在第二层(链路层,具有物理地址),而loopbackup接口,可以认为是三层设备(只有IP地址而没有物理地址),

所以,loopbackup接口自身并不会接收arp广播,也就不响应ARP请求。

 

(三)LVS VIP

1)在LVS的DR跟Tunel模式下,Director与Realserver都必须配置VIP

2)Director的VIP用于接收client的请求,并将请求转发到某台Realserver(转发时将请求中的mac地址由director的改成realserver的mac,目标IP地址则仍然是director的VIP)

3)client的请求被Director转发并经过链路层寻址到达Realserver后,由于Realserver配置了VIP(请求中的目标IP正是VIP),所以接收请求并处理

4)处理结果返回给client

 

(四)LVS ARP

1) lvs/dr 跟 lv/tun都配置了vip

2) director才能响应对vip的arp请求

3)realserver不响应对vip的arp请求

 

(五)realserver arp problem

#开启arp_ignore

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

#配置eth0只响应对自己接口上ip的arp请求

  pre-up echo "1" > /proc/sys/net/ipv4/conf/eth0/arp_ignore

#对lo接口配置arp_ingore是不需要的!因为lo接口不接收arp请求

#  pre-up echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

#开启arp_announce

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

#realserver接收并处理了director的转发的client请求(在lo:0接口上处理),而将处理结果返回给client的时候(lo:0生成处理结果,而从eth0发出),如果此时需要进行arp请求,arp请求的源地址,使用的是发出请求接口的ip(eth0的ip),而不是产生结果的接口的ip(lo:0)...这样避免了arp请求被路由器缓存并打乱了原有的vip的mac)

  pre-up echo "2" > /proc/sys/net/ipv4/conf/eth0/arp_announce

 

 

(六)ipvs/dr ipvs/nat ipvs/tun

1)dr跟tun有arp问题,而nat没有

2)nat模式下,director作为所有realserver的网关,所有的进站出站流量,全部通过director(瓶颈)

3)dr模式下,需要进行物理寻址,所以director跟realserver同在一个物理网络(arp问题)

4)tun模式下,director跟realserver可以在同一个网络,也可以跨网(当在同一个网络时,有arp问题)

5)dr跟tun模式下,director跟realserver的端口必须对应,而nat下各台realserver可以使用不同的端口


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值