Linux下檢測IP地址沖突及解決方法


 

問題說明:
在公司辦公網內的一台物理機A上安裝了linux系統(ip:192.168.9.120),在上面部署了jenkins,redmine,svn程序。由於是在辦公網內,這台機器和同事電腦都是在同一網段的。
突然某天問題出來了:有部分同事遠程ssh登陸不上這台linux系統的機器,jenkins/redmine/svn也登陸不上,其他部分同事可以正常使用。

后來發現,是因為這台linux機器的ip被人占用了,ip地址沖突引起的!!

下面介紹下檢查ip地址是否沖突的方法:
第一種方法(arping):

只需要在另一台同網段的linux機器B上(比如:129.168.9.200)上執行下面的命令(不能在本機arping檢驗自己的ip):

只需要在另一台同網段的linux機器B上(比如:129.168.9.200)上執行下面的命令(不能在本機arping檢驗自己的ip):
[root@dev ~]# arping 192.168.9.120
ARPING 192.168.1.120 from 192.168.9.200 eth0
Unicast reply from 192.168.9.120 [40:F4:EC:76:79:C2] 3.084ms
Unicast reply from 192.168.9.120 [50:7B:9D:25:29:59] 0.817ms
Unicast reply from 192.168.9.120 [50:7B:9D:25:29:59] 0.810ms

........

如果只檢查出一個MAC地址,則表示網內A機器的的IP:192.168.9.120是唯一的

如果有以上信息即查出兩個MAC地址,則表示網內有一台MAC地址為40:F4:EC:76:79:C2的主機IP地址與A機器相同。

這時可以通過ifconfig命令驗證A機器,如下發現:A機器的MAC地址是50:7B:9D:25:29:59 。
我們可以用局域網掃描軟件找到MAC地址為40:F4:EC:76:79:C2的主機,並將其隔離或更換IP地址。
[root@redmine ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 50:7B:9D:25:29:59
inet addr:192.168.9.120 Bcast:192.168.9.255 Mask:255.255.255.0
inet6 addr: fe80::527b:9dff:fe25:2959/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:573710854 errors:0 dropped:0 overruns:0 frame:0
TX packets:849943293 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:58543890628 (54.5 GiB) TX bytes:1248037935176 (1.1 TiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:17370722 errors:0 dropped:0 overruns:0 frame:0
TX packets:17370722 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:65642509325 (61.1 GiB) TX bytes:65642509325 (61.1 GiB)

================================================================
檢驗原理:
arping命令是以廣播地址發送arp packets,以太網內所有的主機都會收到這個arp packets,但是本機收到之后不會Reply任何信息。
當我們在linux主機端上執行下面的命令時:
arping 192.168.9.120  
會默認使用eth0,向局域網內所有的主機發送一個:
who has 192.168.9.120的arp request,tell 192.168.9.120 your mac address,

當這台windows主機端收到這個arp packets后,則會應答:
"I am 192.168.9.120 , mac是00:25:e4:6a:4b:f4",這樣我們會收到mac地址為00:25:e4:6a:4b:f4的windows主機的Reply信息。
================================================================

第二種方法(arp-scan)

arp-scan這個工具會在本地網絡發送ARP(Address Resolution Protocol)(地址解析協議)包來收集地址。如果有多個MAC地址聲稱擁有相同的IP地址,那么這里就存在沖突。

首先安裝arp-scan則輸入:
[root@dev ~]# yum install -y arp-scan
------------------------------------
如果報錯說沒有這個軟件包,則需要提前安裝epel軟件倉庫
centos5 64位:
rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

centos6 64位:
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

centos6 64位:
yum install -y http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
------------------------------------

要檢測IP沖突,運行下面的命令:

[root@dev ~]# arp-scan -l
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.2 with 256 hosts (http://www.nta-monitor.com/tools-resources/security-tools/arp-scan/)
192.168.9.1 00:25:b3:f9:16:3e Hewlett Packard
192.168.9.2 30:8d:99:ab:42:40 Hewlett Packard
192.168.9.4 24:26:42:a6:81:f9 SHARP Corporation.
192.168.9.7 f4:ce:46:3e:15:d6 Hewlett Packard
192.168.9.8 08:2e:5f:bd:0f:43 Hewlett Packard
192.168.9.9 00:21:5a:84:9d:0c Hewlett Packard
................
................
192.168.9.119 68:f7:28:d5:d4:26 LCFC(HeFei) Electronics Technology co., ltd
192.168.9.120 50:7b:9d:25:29:59 LCFC(HeFei) Electronics Technology co., ltd
192.168.9.120 40:F4:EC:76:79:C2 VMware, Inc. (DUP: 2)
192.168.9.121 00:23:24:9b:09:89 G-PRO COMPUTER
192.168.9.122 b8:88:e3:35:8e:74 COMPAL INFORMATION (KUNSHAN) CO., LTD.
...............
...............

110 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.2: 256 hosts scanned in 2.257 seconds (113.42 hosts/sec). 110 responded

由上面信息可知:192.168.9.120這個IP沖突了,因為它出現了兩次,並且可知這個ip被vmware虛擬機占用了。
需要找到使用這個ip的機器,將其ip更換即可!

1)“arp-scan -l” 命令表示查看與本機在同一局域網內的所有機器的ip使用情況
2)“arp-scan –I eth0 -l” 命令表示查看與本機在同一局域網內的所有主機的eth0網卡的ip使用情況

windows本機使用“arp -a”命令查看是否有ip沖突:

如果查出有兩個ip一樣,就說明ip沖突了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM