如何確定存在 IP 衝突?抓個包包就行

今天分享二層環路的基礎知識。



IP衝突的危害
如下拓撲:



這是非常非常典型的場景,不管是搞網路、弱電還是運維,絕對清楚有兩種IP衝突的狀況:

網路中存在設備與網關IP衝突:影響危害極大,會導致所有終端無法正常上網。
網路中的設備終端彼此IP衝突:衝突設備網路異常。
IP衝突致網路異常的原理
網關IP衝突:

所有上網終端會學到錯誤的ARP網關表項,如上述拓樸中所有內部網路設備的閘道ARP條目都可能會學成PC3的,這樣上網封包就會交給PC3導致上網異常 。


終端IP衝突:

其它終端存取某個IP時就會學到非預期設備的ARP表項(如要存取PC1但實際ARP表學到的是PC2),導致存取目標錯誤;
同理,出口閘道也會學錯衝突設備的ARP表項,本來要給PC1的包錯誤的給了PC2,導致合法終端設備上網異常
如何確認存在IP衝突
因為ARP問詢和免費ARP都是廣播包,所以這種同一區域網路的網路下隨便找個交換器口子插入PC,打開抓包工具Wireshark抓包即可:
例如簡單抓五分鐘後,過濾“ARP”,你就能看到“Duplicate IP address configured (X.X.X.X)”的描述,表示“X.X.X.X IP位址偵測到衝突”,這是Wireshark直接解析好的:



然後比較一下來源MAC,一下子就找出來了哪些終端配了相同的IP位址:



其它方式
抓包分析是一種本源分析數據包的辦法,一點也不復雜,華為/H3C/銳捷等設備命令也是通過獲取數據包給你總結並顯示出來的,但很多場景下你可能是設備不支持、沒操作權限等尷尬處境,依賴設備不如靠自己。

還有一些像是ARP掃描的小工具,往往要多次操作掃描並記錄MAC和IP的對應情況才能完整的找出來,我個人覺得挺麻煩