我计划部署几个keepalived
路由器来维护不同数据库集群的浮动 IP。VRRP instance
该计划是根据本指南在本地每个集群上部署一个单独的,因此每个集群上只有两个VRRP
路由器/实例。
CentOS 6x 存储库中可用的keepalived
软件包是 1.2.7,似乎keepalived
直到 1.2.8 版本左右单播才成为主要代码库的一部分。
Q1。
我想知道VRRP
多个路由器是否可以用多播广告淹没网络并导致一些性能问题?你会推荐在这种情况下使用单播吗?但是,我注意到以下与单播(Ref.)相关的警告:
vrrp:禁用单播用例的 TTL 健全性检查。为了防止任何数据包注入,VRRP 提供对 IP 标头 TTL 的完整性检查。此 TTL 必须等于 255,表示发送方和接收方都连接在同一以太网段上。现在,随着单播扩展,必须禁用此保护,因为 VRRP 广告将主要遍历不同的网段。!!! 警告 !!!在单播用例中使用 VRRP 以防止任何数据包注入时,最佳做法是使用 IPSEC-AH 身份验证方法,否则您将面临潜在的攻击者!
Q2。
为什么网络上不属于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
路由器并为所有数据库集群维护 VIP。
没有足够数量的 VRRP 路由器会导致任何问题,即使广告每秒发出一次,它也只是一个广播数据包。我不建议使用单播,因为它使 VRRP 设置比应有的更脆弱,每次需要重新配置对等 IP 地址时,都需要更新其他对等的配置,可能会导致停机。尽管如此,我还是建议在多播环境中使用 IPSEC-AH,除非您需要与不支持此类身份验证的硬件互操作(请记住,从安全角度来看,PASS 身份验证是无用的,IPSEC-AH 是唯一安全的身份验证类型)。
进入广播域(L2 相邻主机)的多播流量将广播到所有接口,除非您的网络硬件配置为可感知多播并尊重来自节点的 IGMP 请求。通常默认情况下,网络硬件不执行 IGMP 侦听,因此只广播所有多播流量。鉴于每秒只有几个数据包,我不会太担心。为您的防火墙采用白名单策略将大大有助于隔离不需要的流量,并且可以控制 VRRP/AH+VRRP/IGMPv3。