linux出现169.254.0.0

发现问题:

没动过路由表信息,查看时却发现出现了一下的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默认机制。

你可能感兴趣的:(linux出现169.254.0.0)