關於ARP信息介紹:
ARP表是一個動態表,存儲在計算機當中,目的是做一個ip地址與mac地址的對應。
假設在同一子網段,計算機A與計算機B通信
計算機A的ip地址: 192.168.0.11 MAC地址AA-AA-AA-AA-AA-AA
計算機B的ip地址: 已知192.168.0.12 MAC地址未知
那么計算機A就要發起一個ARP查詢,“誰能告訴我,192.168.0.12的MAC地址是多少?”
很顯然通過交換機的時候,交換機並不能看懂ip地址,所以要廣播這個信息,就把這個查詢信息發到除發送端的其它所有端口。(當然,交換機還要記住192.168.0.11主機的mac地址)
其它所有的計算機看到這個廣播發現目的ip不是自己,就把這個數據丟棄,只有192..168.0.12的計算機B會響應,並發送回執,告訴計算機A,“我是192.168.0.12,我的MAC地址是AA-AA-AA-AA-AA-AB”當通過交換機,交換機記住從計算機B端口過來的MAC地址,並通過已知的A計算機MAC地址,發動到連接計算機A的端口。(此時不再廣播)計算機A與計算機B都知道對方的ip和MAC地址,開始通信。
假設在同一子網段,計算機A與計算機B通信
計算機A的ip地址: 192.168.0.11 MAC地址AA-AA-AA-AA-AA-AA
計算機B的ip地址: 已知192.168.0.12 MAC地址未知
那么計算機A就要發起一個ARP查詢,“誰能告訴我,192.168.0.12的MAC地址是多少?”
很顯然通過交換機的時候,交換機並不能看懂ip地址,所以要廣播這個信息,就把這個查詢信息發到除發送端的其它所有端口。(當然,交換機還要記住192.168.0.11主機的mac地址)
其它所有的計算機看到這個廣播發現目的ip不是自己,就把這個數據丟棄,只有192..168.0.12的計算機B會響應,並發送回執,告訴計算機A,“我是192.168.0.12,我的MAC地址是AA-AA-AA-AA-AA-AB”當通過交換機,交換機記住從計算機B端口過來的MAC地址,並通過已知的A計算機MAC地址,發動到連接計算機A的端口。(此時不再廣播)計算機A與計算機B都知道對方的ip和MAC地址,開始通信。
服務器網絡環境中,因為路由交換層禁用了ARP的廣播限制,造成KEEPALIVE主備協議無法通過廣播的方式進行通信,造成主備兩台服務器都強占HAVIP地址,出現同時兩台服務器都有VIP地址的情況出現,必須通過配置來指定IP的兩台服務器間進行通訊。
解決方法:
一 防火牆設置:
a) firewalld 開啟vrrp 協議
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
注釋: eth0 為設備網卡, 224.0.0.18 為vrrp組播地址
firewall-cmd --reload
b)iptables
master(本地:192.168.0.11)
-A INPUT -i em1 -p vrrp -s 192.168.0.12 -j ACCEPT #(192.168.0.12 對端IP)
backup (本地:192.168.0.12)
-A INPUT -i em1 -p vrrp -s 192.168.0.11 -j ACCEPT #(192.168.1.11 對端IP)
二 keepalived 來指定IP的兩台服務器間進行通訊。
添加配置如下:
priority 100 ##主服務100 備服務90只要小於100就可以
unicast_src_ip 192.168.0.11##(本地IP地址)
unicast_peer {
192.168.0.12##(對端IP地址)此地址一定不能忘記
}
unicast_src_ip 192.168.0.11##(本地IP地址)
unicast_peer {
192.168.0.12##(對端IP地址)此地址一定不能忘記
}