發現問題:
沒動過路由表信息,查看時卻發現出現了一下的169.254.0.0的網絡地址路由。
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.1.254 0.0.0.0 UG 0 0 0 eth1
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
問題原因:
169.254.0.0原本是windows系統局域網環境下DHCP(Dynamic Host Configuration Protocol)服務在發生地址衝突時,產生的一個預設的ip地址網段。DHCP服務運行中就設置了地址衝突時的默認機制。
而對於linux也採用的這種機制,169.254.0.0存在,本事是無所謂的,因爲不能在互聯網上用。但是,169.254.0.0的出現,肯定是由於自己設置了IP地址而造成衝突產生的。
**
DHCP自動獲取IP地址時的原理:
01.主機開啓DHCP功能
02.主機會向交換網絡中發送DHCP請求數據包(廣播方式發送)
03.DHCP服務器接受到請求數據包,進行數據包響應
04.主機收到響應包配置地址信息,並回復DHCP確認包
05.DHCP服務器接收到數據包,會調整IP地址池信息
06.DHCP服務器根據租期時間信息,確認地址是否繼續使用,否,將地址回收.分配給其他主機使用
**
解決辦法:
linux線上環境:
在文件的末尾添加
# vim /etc/sysconfig/network
NOZEROCONF=yes
# systemctl restart network
VMware Workstation也會出現也一種情況:
一般發生在克隆多個主機時產生這種地址衝突問題,是由於兩臺以上的相同IP地址的虛擬機在運行,造成地址衝突,dhcp自動分配的一個地址段。
此時,關閉一臺也不好使,因爲默認機制其探測時間(Discover Time)是以1小時爲分割線。
NE80E/40E的實現中,如果發現衝突的IP地址,那麼在1小時以後我們可以對於此IP地址進行重新分配使用。當存在衝突IP地址時,且探測時間沒有超過1小時,則執行命令reset dhcp server conflict all釋放衝突IP地址。
解決辦法:
1.關閉可能衝突的多個主機(route -n查看哪些主機有該地址就關機)才能釋放該地址,單純的重啓網卡是不行的!!!
2.開啓其中一臺主機,重新設置一個全新的ip地址(必須全新!),爲了讓dhcp重新識別,地址池信息也自動更新,重啓網卡生效。
3.將剛纔設置的全新IP改成自己應該設置的IP,必須重啓主機(重啓網卡此時不生效)生效。
爲什麼?請看上面的DHCP默認機制。
4.依次開啓其他的主機。查看地址是否生效。如果沒有按照上面的方法繼續設置生效爲止。
懶人專用:睡一覺醒來什麼都會好的!!!
爲什麼?請看上面的DHCP默認機制。