天天看點

ip沖突問題解決和複現過程

ip沖突導緻無法上網問題複現

目錄

  1. 問題及排除過程 1
  2. 複現過程: 2

    2.1. pc插拔網線後情況: 2

    2.2. 環境中存在pc的ip沖突的情況: 4

    2.3. 虛拟機的模拟 5

    2.4. 交換機的arp模式修改為learn all後的模拟 8

  3. 知識點: 9
  4. 問題及排除過程

    某天下午,接同僚回報,自己的pc192.168.205.66無法上網,要求解決。

    在路由器上進行抓包發現,該ip不停的收到syn+ack,而沒有響應消息ack和syn消息發出?

    ip沖突問題解決和複現過程
    核心交換機上檢視該ip對應的mac位址如下:
    ip沖突問題解決和複現過程

    感覺公司的pc裡沒有以000C打頭的mac位址,這一般都安裝vmware虛拟機的位址?下去到她工位上檢視。

    發現她的pc的mac是4CCC6AC85003,采用的dhcp擷取ip位址,檢視arp緩存中的網關mac正常存在,奇怪為什麼不能上網,執行arp –d後,ping網關,ping www.sina.com發現上網正常。

    判斷存在ip沖突,導緻交換機把回包發給了錯誤的mac位址上,正常測pc收不到syn+ack,導緻不停的發出syn消息,路由器删就能看到不停的收到外網的syn+ack消息(看不到syn和ack可能是路由器的跟蹤沒有做好,沒有跟蹤出來對應的包)。arp –d後,pc重新去擷取網關的mac位址,交換機的arp緩存會被更新,回包正常了,上網就正常了。

    檢視00oc2998002e在哪個交換機的端口上?結果如下:

    ip沖突問題解決和複現過程

    發現是另外一位同僚的ip位址,去他的pc上驗證,發現這個另個mac都是他的裝置上的,一個是pc,一個是虛拟機。

    把女同僚的ip改成192.168.206.33的固定ip後,回報上網沒有問題。

  5. 複現過程:

    問題解決後,考慮到pc有根據arp廣播消息來避免ip沖突的機制,決定複現一下問題,一種情況是pc和pc的ip沖突的情況。一種是pc和虛拟機發生ip沖突的情況。

    2.1. pc插拔網線後情況:

    第一種情況下,先看網線插拔後,pc的arp發出情況?

ip沖突問題解決和複現過程
ip沖突問題解決和複現過程
ip沖突問題解決和複現過程
綜上所述:當發生dhcp擷取ip或者插拔網線後,windows作業系統會用确定的ip進行ip沖突的檢測,發出三次廣播的arp包,詢問環境中是否存在相同的ip位址?沒有收到reply,再次發出免費的arp包(源ip和目的ip相同)的arp請求包,聲明自己使用這個ip位址。沒有沖突後,會發出确定網關mac位址的arp廣播包,擷取到網關mac後,就周期性進入網關是否線上的arp單點傳播探查消息,來确定網關線上。
  三次檢測ip沖突的包的特征:
           
ip沖突問題解決和複現過程

特征是源ip為空,表示自身ip還沒有确定使用。

免費arp包的特征:

ip沖突問題解決和複現過程

2.2. 環境中存在pc的ip沖突的情況:

已知環境中一台pc的ip為192.168.205.240,把另一台pc的ip由192.168.205.201改成205.240,抓包檢視arp的情況和pc的動作?

ip沖突問題解決和複現過程

可以看到,詢問是否存在沖突,已有ip主機回複自己mac位址,得到存在沖突後,網卡ip被置為169.254.xx.xx的無效ip位址,要求網關mac,網關不響應,此時,系統托盤的網卡标志位受限。

ip沖突問題解決和複現過程
ip沖突問題解決和複現過程
ip沖突問題解決和複現過程

此時,pc會用169.254的ip請求網關的mac位址,由于不是正常的mac位址,網關交換機不響應,pc此時無法擷取網關mac,導緻無法組包發出,是以無法上網。

2.3. 虛拟機的模拟

首先模拟虛拟機啟動後,arp的發送情況,已知pc為192.168.207.246,虛拟機vm安裝的centos7.0的eth0虛拟ip為192.168.207.245。

ip沖突問題解決和複現過程
ip沖突問題解決和複現過程

發現虛拟機沒有windows系統的三次探查是否有ip沖突,并将ip置為169.154網段的操作,僅僅發一個免費arp消息,已用的pc收到此消息,會報ip沖突,但不會改變ip為不可用ip,交換機收到此免費的arp消息,會改寫arp緩存表。如下圖:

ip沖突問題解決和複現過程
查發現此時pc彈出ip沖突的提示框,網卡标志變成internet标志,看抓包發現pc不停的發出單點傳播arp請求包,見下圖:
           
ip沖突問題解決和複現過程

但交換機的arp表項始終不變?

查詢arp的模式,如下圖:

ip沖突問題解決和複現過程

查詢資料得知:learn reply only是嚴格的學習arp表項設定,arp表項的更新隻在交換機自身發出arp的request消息得到響應後,而不響應更改收到arp請求消息,檢視在交換機的鏡像包裡,沒有交換機發出的arp查詢消息,但虛拟機發出的免費arp消息,交換機預設是學習enable态的,就是說,交換機收到虛拟機發出的免費arp包後,會把arp表項更改為虛拟機的mac位址,而不理睬pc發出單點傳播或者廣播arp消息(當arp表裡存在于對應的ip位址時)。

此時pc的發出的業務消息,交換機的回包均發給了虛拟機,導緻pc收不到回包,是以無法上網。

模拟執行arp -d,仍然不能改變arp緩存表裡的資料。那天同僚的pc執行arp -d後能夠上網,可能是arp緩沖時間到了,交換機給pc發來arp請求消息,pc應答了,或者此時虛拟機被關掉了才出現這樣的現象。當時沒有找到問題機子,是以沒有确認。

免費arp包的特征見下圖:

ip沖突問題解決和複現過程
ip沖突問題解決和複現過程

2.4. 交換機的arp模式修改為learn all後的模拟

把交換機的arp模式修改為learn-all後,發現pc的網口标志沒有受限,鏡像交換機對應端口的包,過濾arp消息,發現随着pc和虛拟機發出的arp請求和免費arp,交換機的arp随着改變。

ip沖突問題解決和複現過程

鏡像抓包中看到pc發出的單點傳播探查arp請求

ip沖突問題解決和複現過程

交換機裡查詢arp表項,發現是pc的mac位址

ip沖突問題解決和複現過程

虛拟機發出arp消息

ip沖突問題解決和複現過程

交換機裡更新arp表項

ip沖突問題解決和複現過程

生存時間被改寫

3. 知識點:

A. windows系統插拔網線,dhcp擷取到ip後或者網卡設定了靜态ip,都會發三次arp廣播消息,用于探查環境中是否存在ip沖突?不存在的,發出免費arp消息,存在,系統會把ip置為169.254網段的不可用ip,避免ip沖突。

B. 虛拟機之類的linux作業系統,網卡激活後,隻發免費的arp通知自己使用了這個ip位址,而沒有防止ip沖突的機制。

C. Pc網卡激活後,先廣播arp請求來擷取網關的mac位址,然後啟動單點傳播arp請求消息進行主動探查相鄰網關是否線上,而不是等待arp的老化時間到後,再發arp廣播消息。當兩次探查失敗,就會清除網關的arp表項,重新擷取。

D. 交換機的arp mode設定為arp learn reply,就是嚴格的學習arp表項,隻建立和更新自己發出的arp請求得到的應答消息裡的mac位址和ip對照關系。而對pc發出的arp請求不予理睬,但收到免費的arp消息會更新arp表項,導緻arp表發生變化。

Learn all模式是學習所有的arp消息,即受到arp廣播,單點傳播,免費的arp消息均生成或更新arp表項。

繼續閱讀