arp 表填滿
我有一個 CentOS 5 系統,用作我的網路和幾個遠端網路之間的 IPSec VPN 連接器。最近它每天都會遇到一兩次這個問題,因為它的 ARP 記憶體被填滿了。
這傢伙所在的本地網路是
10.51.0.0/16
IPSec 將其連接到10.53.0.0/16
和10.54.0.0/16
。它有 2 個介面,eth0
連接到網際網路,並eth1
使用 ip 連接到本地網路10.51.1.15
。ARP 記憶體被諸如此類的地址填滿,
10.51.119.x
並且似乎有條不紊地繼續完全填滿它。我在它發生時執行了 tcpdump 並看到所有這些不存在的地址的 ARP 請求來自本地 ip10.51.1.15
,所以這幾乎就像有人在進行網路掃描,但我如何確定它的來源?它實際上不太可能來自盒子本身,沒有人應該從它執行這樣的掃描,但它可能來自 IPSec 網路?我怎麼知道它來自哪裡?問題已解決:卡巴斯基防毒軟體在我們的網路上進行系統發現。
為了讓掃描程序獲得任何資訊(除了創建 DOS 攻擊),他必須接收數據包。如果掃描似乎來自本地連接的子網,那麼他就不能在源和源之間的路由上的任何地方,因為在 CentOS 機器和 10.51.1.15 之間沒有任何東西。
你可以:
- 帶頭執行
tcpdump
。-e
這將告訴您掃描發起者的 MAC 地址。- 在不同的時間 Ping 10.51.1.15,看看 arp antry 是否對應於 tcpdump 中保存的鏈路層標頭。
- 如果您有託管交換機,則可以登錄它並查看幀來自何處。這將告訴您掃描器插入的插座。如果掃描器真的只想淹沒您的 ARP 記憶體,此方法也將起作用。
掃描不太可能源自 10.51.0.0/16 網路之外。典型的防火牆規則會丟棄聲稱來自本地連接網路但通過錯誤介面的數據包。然後,也許你有非典型的防火牆規則;)。
我不確定我的問題是否正確,但如果 10.51.1.15 是 CentOS 機器的 IP,那麼除了
tcpdump -e
上述想法之外,沒有任何意義。如果數據包似乎來自本地盒子,那麼它有數據包要傳遞到這些地址。在這種情況下,您可以設置 iptables 規則,將數據包記錄到 10.51.0.0/16 網路的無效地址。無效地址是指尚未分配給任何主機的地址。如果有東西試圖訪問它們,那麼它可能沒有合法的理由這樣做。這樣的日誌記錄規則(具有相應的限制規則以防止日誌填充)將告訴您此類數據包的來源——如果它來自本地機器,或任何遠端網路。如果數據包似乎來自 CentOS 機器本身,您還可以
ps
在可疑掃描期間查看輸出,並將其與ps
沒有掃描時保存的輸出進行比較。也許你會找到一些顯而易見的答案。