Keepalived:多播與單播
我計劃部署幾個
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。