IP衝突導致遠端連線不穩?靜態ARP

前幾天去客戶端上設備,習慣性用Ping掃描,結果發現已經有設備使用待上設備的IP,預期接下來會有IP衝突狀況發生。雖然反應了,不過客戶並沒有掌握那些設備資訊,認為沒有被用到,於是就果不其然的發生IP衝突。

IP衝突為什麼會導致網路斷斷續續的?因為ARP機制。

ARP是個將IP與MAC做一對一綁定,除了一開始會有廣播詢問,問到之後紀錄IP與MAC就能以單播傳送封包。

IP衝突即單一IP有兩個以上MAC出現,而ARP只能一對一綁定,因此就會出現有時候ARP對應的是A MAC,有時候是B MAC。因此單一IP目的的資料,會往存在A MAC的Port或是往存在B MAC的Port送,設備A收到給B的資料會看不懂,反之亦然,能不能順暢收發資料就是看機緣了。

IP衝突會導致兩設備遠端連線皆不穩,那就沒有辦法先「遠端連線」至其中一台改IP,所以大部分就是選擇讓要保留IP的設備下線,再把在線設備的IP更改,接著下線設備重新上線,就能錯開IP。

第二招,因為遠端連線不行,所以只好近端接線進CLI介面更改,缺點就是設備上架的位置不見得好操作,人一定要在設備旁邊,費工費時。

一般來說,對兩台設備都會有管理權,所以第一招執行起來很輕鬆。要是行不通,還能直接用第二招來停損。要是其中一台設備沒有管理權,也不能下線,另一台設備是要拿梯子爬上去接線,有沒有辦法輕鬆地改呢?

回到概念,ARP是做IP與MAC一對一綁定,甚麼IP綁定甚麼MAC是透過別台設備的ARP回應決定的,在IP衝突環境中,同IP會有兩台設備MAC回應,然後自己的ARP被影響,反覆跳。要不如就靜態指定,不要透過詢問去決定。

透過詢問後收到回應的方式記錄ARP是動態ARP,手動設定一對一為靜態ARP。

要是沒有特別需求,基本上不會做ARP設定,一旦設定將IP與MAC綁定,之後設備換IP或是換設備MAC,就會因為ARP而導致網路不通。

ARP的作用範圍只有同網段內的,因此靜態ARP要下在最後一跳的L3上面,如果同網段就下在自己身上。

LAB

先起一台設備,不斷ping 168.95.1.1,再把Aruba AP更改至相同網路IP設定,發生IP衝突現象。

因為Aruba AP跟Controller間是以tunnel溝通,因此可以看到tunnel介面反覆up/down,然後也會導致AP up/down。

開始在Controller刷指令reprovision ap,在up/down的瞬間,永遠趕不上把指令完整送到AP更改,遠端控制失敗。

如果AP與Controller同網段,可以在Controller設定靜態ARP

如果AP與Controller同網段,在Controller設定靜態ARP,過一陣子,AP就會穩定上線,這時候就能慢慢修改IP。

一旦修改好IP,記得刪掉對應的ARP。