來自路由器的極高 arp 泛洪
我的子網是 10.162.0.0/16。我們有一個帶有幾個介面的路由器。我們這個子網的網關地址是10.162.0.1。
路由器在另一棟樓裡,我無法直接訪問它。來自路由器的線路連接到我的主二層交換機 D-Link DES-3550 (10.162.0.250) 和子網的其他部分連接到此交換機。
網路在短時間內(5 - 20 分鐘)執行良好,然後開始“攻擊”,問題再次出現。
“攻擊”的樣子:
我使用 Wireshark 來檢查問題。我可以看到我們的網關路由器 (10.162.0.1) 不斷地 ARP 從我的子網請求一個或幾個地址,例如:
10.162.0.1 廣播 ARP 60 誰有 10.162.8.75?告訴 10.162.0.1
10.162.8.75 沒有回答我的 ping。
我將其中一個被 ARPed 的地址分配給我的電腦。我的機器回復了 ARP 並發送了我的 mac。但路由器並不在意,繼續發送 ARP。
路由器每秒發送大約 10,000 - 25,000 個 ARP。因此,甚至無法從我子網的任何電腦上 ping 10.162.0.1。有時我的主開關 (10.162.0.250) 不響應 ping 或延遲約 3 秒。
當我重新啟動交換機 (10.162.0.250) 或斷開其某些埠時,攻擊停止了(在大多數情況下,斷開 10 和 11 埠會有所幫助,所以那裡可能發生了一些事情)。
當下一次攻擊開始時,ARP 請求已經是其他的了。似乎是隨機選擇 ARP 的地址。
為什麼我們的路由器會發送這麼多 ARP?不同子網上的電腦是否在攻擊路由器?如果源是來自 10.162.0.0/16 的電腦,那為什麼路由器會發送 ARP 請求(這個我看不懂)?我怎麼解決這個問題?
檢查是否有循環。
當交換機接收到廣播數據包(如 ARP)時,它會通過所有埠將其發送出去。如果您有一條環形電纜(從同一個廣播域中的一個埠到另一個埠),該數據包將返回交換機,並通過所有埠再次廣播(並再次返回,一次又一次,……)。
因此,基本上,檢查您是否有電纜從同一交換機上的一個埠連接到另一個埠,或者連接到連接到第一個埠的另一個交換機,然後斷開它。如果您有託管交換機,則應啟用 (r)STP 以避免此類問題 - 啟用 STP 後,您實際上可以通過循環實現冗餘 - 但當一切正常時,交換機本身將禁用一個連接)。