两台设备(手动)设置相同的局域网IP地址
1. 引入
现在的家庭路由器都配备了 「NAT 网络地址转换技术」,通过将私有(专用)网络地址转换为公有地址,从而对外隐藏「内部管理」的 IP 地址,有效地解决了IP地址不足的问题。
「内部管理」私有网络地址采用的 「DHCP 动态主机配置协议」,属于应用层协议,但是服务于网络层,局域网内的主机通过网络中的DHCP服务器动态获得IP地址
工作过程
-
主机以广播的形式发送「DHCP发现报文」,报文格式,源 ip 0.0.0.0,目标 ip 255.255.255.255
-
DHCP服务器从IP地址池中取一个地址「拟分配」给该计算机,同样以广播形式发送「DHCP提供报文」,
-
主机广播「DHCP请求报文」,DHCP允许网络上配置多台DHCP服务器,当主机发出DHCP发现报文时,有可能收到多个应答消息。这时,主机只会挑选其中的一个,通常挑选最先到达的。广播的目的是为了告诉未被选择的DHCP服务器,收回刚才的预分配。
-
DHCP服务器广播「DHCP确认报文」,正式将IP地址分配给主机。
上述工作过程的报文采用「UDP传输」(我的理解,因为是内网,网络情况较好,即便丢包也可以接受),工作方式采用的是「客户/服务器方式」(应用层协议有两种工作方式,另一种P2P方式)
2. 问题
在实际实践中遇到的一个问题,当前后端本地联调时,主机的 IP 地址偶尔会变化,并不是大问题,但如果 IP 地址能够固定不变,那可以减少一些不必要的麻烦,事实上 DHCP 确实允许手动设置 IP 地址,那么我就想到了一些问题:
Q1:自动分配的IP地址租赁期限多久?
这个期限并不是固定的,并且是可以通过路由器设置的,那么设置多久好呢?家用宽带路由器建议两天,由于在一半租用周期的时候要向路由器发送续租报文,这个周期可以保证第二天开机时重新租用,能够比较稳定的续租IP地址(DHCP更新租约 Q2 中提及),但租赁期并不是设置的越长越好,如果IP地址不够用的话,就会出现很多不在线的主机占用的IP地址,具体设置是长还是短,跟IP地址数的需求量有一定关系。
Q2:如果电脑不在网络内,那它的这个IP地址会释放出来给别人用吗?
如果过了租期,会。
如果未过租期,不会。
DHCP更新租约:
- DHCP客户端开机或重启的时候,会进行更新租约。
- 当租期过半的时候,会进行更新租约。
- 当租期过半无法更新租约,那么还能继续使用原先租到的IP地址,但是当租期到达7/8(87.5%)的时候,客户端再使用「DHCP请求报文」广播来向DHCP服务器更新租约,如果成功,则继续使用原先IP,租约也会更新,如果无法更新,则客户端放弃正在使用的IP,然后继续发「DHCP发现报文」广播请求新的IP地址。
Q3:两台设备(手动)设置相同的局域网IP地址,会发生什么情况?
主机此时网络配置如下
进行了手动设置IP地址(此IP已被另一台主机使用)
配置变成了这样
这个IP地址并不是家中路由器的WAN地址,查询后发现, 是一个随机分配的保留地址
总结:
-
能手动设置冲突的IP地址,但是从ipconfig显示的结果看,并没能成功分配(所以原来的主机上网未受影响)
-
会配置一个保留地址(这个过程应当是主机自己完成的,DHCP已经联系不上该主机了),但无法上网,192.168.1.1 也无法进入