Keepalived:多播与单播

Keepalived:多播与单播

我计划部署多个keepalived路由器,以维护不同数据库集群的浮动 IP。计划VRRP instance根据以下要求在每个集群上本地部署一个单独的路由器:VRRP指南因此每个集群上只有两个路由器/实例。

CentOS 6x 存储库提供的软件包keepalived是 1.2.7,并且似乎keepalived直到 1.2.8 版本左右,单播才成为主要代码库的一部分。

问 1. 我想知道多VRRP台路由器是否会用多播广告淹没网络并导致一些性能问题?在这种情况下,你会建议使用单播吗?但是我注意到以下与单播相关的警告(参考。):

vrrp:禁用单播用例的 TTL 健全性检查。为了防止任何数据包注入,VRRP 提供对 IP 标头 TTL 的健全性检查。此 TTL 必须等于 255,意味着发送方和接收方都连接到同一个以太网段。现在,使用单播扩展必须禁用此保护,因为 VRRP 广告将主要遍历不同的网络段。!!! 警告 !!!在单播用例中使用 VRRP 时,为了防止任何数据包注入,最佳做法是使用 IPSEC-AH 身份验证方法,否则您将暴露给潜在的攻击者!

问2. 为什么网络上其他不是vrrp.mcast.net多播组成员的服务器仍然会收到 VRRP 通告?

# netstat -g
IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      all-systems.mcast.net
eth0            1      all-systems.mcast.net
eth1            1      all-systems.mcast.net
lo              1      ff02::1
eth0            1      ff02::1:ff33:2440
eth0            1      ff02::1
eth1            1      ff02::1:ff90:4d5b
eth1            1      ff02::1

-

# tcpdump -i eth1 -c 2 host vrrp.mcast.net
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
20:30:46.241228 IP 172.16.0.70 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 3, prio 1, authtype simple, intvl 1s, length 20
20:30:47.241372 IP 172.16.0.70 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 3, prio 1, authtype simple, intvl 1s, length 20
2 packets captured
2 packets received by filter
0 packets dropped by kernel

我想另一种方法是只部署一对VRRP路由器并为所有 DB 集群维护 VIP。

答案1

问 1.我想知道多个 VRRP 路由器是否会用多播广告淹没网络并导致一些性能问题?在这种情况下你会建议使用单播吗?

即使每秒都发出一次广告,也只是一个广播数据包,因此任何数量的 VRRP 路由器都不会导致任何问题。我不建议使用单播,因为它会使 VRRP 设置变得比应有的更脆弱,每次您需要重新配置对等 IP 地址时,您都需要更新其他对等的配置,这可能会导致停机。尽管如此,我还是建议即使在多播环境中也使用 IPSEC-AH,除非您需要与不支持此类身份验证的硬件进行互操作(请记住,从安全角度来看,PASS 身份验证毫无用处,IPSEC-AH 是唯一安全的身份验证类型)。

问2.为什么网络上不是 vrrp.mcast.net 多播组成员的其他服务器仍然会收到 VRRP 通告?

进入广播域(L2 相邻主机)的多播流量将广播到所有接口,除非您的网络硬件配置为支持多播并尊重来自节点的 IGMP 请求。通常默认情况下,网络硬件不执行 IGMP 侦听,因此只广播所有多播流量。考虑到每秒只有几个数据包,我不会太担心。为您的防火墙采用允许列表策略将大大帮助您隔离不需要的流量,并且可以使用它来控制 VRRP/AH+VRRP/IGMPv3。

相关内容