Multicast

Keepalived:多播與單播

  • September 7, 2021

我計劃部署幾個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。

**Q1。**我想知道多個 VRRP 路由器是否會通過多播廣告淹沒網路並導致一些性能問題?你會推薦在這種情況下使用單播嗎?

沒有足夠數量的 VRRP 路由器會導致任何問題,即使廣告每秒發出一次,它也只是一個廣播數據包。我不建議使用單播,因為它使 VRRP 設置比應有的更脆弱,每次需要重新配置對等 IP 地址時,都需要更新其他對等的配置,可能會導致停機。儘管如此,我還是建議在多播環境中使用 IPSEC-AH,除非您需要與不支持此類身份驗證的硬體進行互操作(請記住,從安全形度來看,PASS 身份驗證是無用的,IPSEC-AH 是唯一的安全身份驗證類型)。

**Q2。**為什麼網路上不屬於 vrrp.mcast.net 多播組的其他伺服器仍會收到 VRRP 通告?

進入廣播域(L2 相鄰主機)的多播流量將廣播到所有介面,除非您的網路硬體配置為可感知多播並尊重來自節點的 IGMP 請求。通常預設情況下,網路硬體不執行 IGMP 偵聽,因此只廣播所有多播流量。鑑於每秒只有幾個數據包,我不會太擔心。為您的防火牆採用白名單策略將大大有助於隔離不需要的流量,並且可以控制 VRRP/AH+VRRP/IGMPv3。

引用自:https://serverfault.com/questions/615727