lvs DR模式下,client,gateway是怎么处理arp缓存的
设想如下最简单的DR环境
client-------------->LVS--------------->real_svr
/|\ (MAC:lvs_mac) (MAC:rs1_mac)
| |
| |
| \|/
-<----------------------------------------
所有角色都在同一网段
1. client发起一个连接时,首先arp解析到VIP的MAC为lvs_mac,于是加入到自己的arp缓存。
2. lvs将包转发给real_server
3. real_server发送响应包给client,这个包的source MAC为rs1_mac。
4. client会发现其余缓存的条目不一致,于是更新arp缓存。
疑问:
第4步的情况会发生吗,也就是client会更新自己的缓存吗?从我的测试抓包来看,client发送的第二个包,目标mac仍然是lvs_mac,不知道为什么。
如果会发生,那么多个real server的情况下,可能会比较混乱。
而在正式的环境中,当client与lvs,real server不在同一网段时,real server的网关更会发生缓存不停刷新的情况吧!