IP地址是查找设备的位置的网络通讯地址,那么当我们链接网络的时候会被配置一个IP地址,那么这些IP地址是如何分配给我们的设备的呢?
- 1.配置IP地址
如何配置一个IP地址呢?在Linux下,我们可以使用ifconfig或ip addr进行配置,设置完成后,相应的启动网卡即可,下面给予个简单的配置的例子
# 使用net-tools(ifconfig命令)
$ sudo ifconfig eth1 10.100.165.3/24
$ sudo ifconfig eth1 up
# 使用iproute2(ip addr 命令)
$ sudo ip addr add 10.100.165.4/24 dev eth2
$ sudo ip link set up eth2
需要注意的是,在配置的时候一定要配置自己网段的,并且是不与别人冲突的。不与别人冲突很容易理解,那么配置自己网段的是怎么一回事呢?例如,自己网段的ip地址都是10.100.165.x,如果配置一个10.110.100.x的,虽然配置不会出现问题,但是实际上是无法使用网络的。
下面咱们分析下为什么无法进行联网,众所周知,只要在网络上跑的包,一定是完整的,可以有下层没有上层,但是不能只有上层,没有下层。在产生网络请求的时候,虽然知道源IP以及目标IP,但是MAC地址是没有填的。在发出请求的时候,Linux会先判断要去的地址和自己是一个网段的吗,或者和我的网卡是统一网段的吗?只有是一个网段的他才会进行ARP请求获取MAC地址,如果发现不是一个网段的,它便不会直接发出去,而是先尝试发送到网关。这里有会产生两种情况,一是设置了网关,Linux会获取网关的MAC地址,然后将包发出去,这就产生了一个尴尬的情况,包内的IP是我的,但是MAC地址却不是我的,那么到时候回来的响应,虽然IP是我的,但是MAC不是我的,我也不会吧包收过来;二是没有设置网关,这种情况包压根就出不去,所以也不需要详细的说明了。
所以当手动配置自己的静态IP的时候,一定要确定是正确的IP地址。当然一般情况下配置的时候,是不需要自己输入命令配置的,是在一个配置文件中,可能是配置格式不同,但是无非也就是CIDR/网关/子网掩码等。
- 2.DHCP
从上面知道,配置一个IP并不是那么简单的随随便便的事,那么如果我电脑关机,每次都需要找公司IT确定一个可用的ip,估计这样的话,公司的IT会被累死。因此我们需要一个自动配置的协议,可以自动的把可用IP地址分配给设备,这就是DHCP。
有了这个协议之后,网络管理员就可以通过设置一段共享的IP地址,自动的分配个每一个接入到网络中的设备。每一台机器进入网络都去这里申请,用完了就还回去给其他机器用,循环往复。可以类比租房,DHCP就是大房东,接入的客户端就相当于租客,暂时用一下,用完换回去就行。
- 3.DHCP 的工作方式
当一台新的设备加入网络中时,第一步必须进行的是DHCP Discover,简单的说就是,“新人来了,大喊一声,我是新人,我的身份证是这个,我还没有位置,请帮我分配一个位置”。计算机处理过程就是,新设备使用0.0.0.0地址发送一个目标地址为255.255.255.255的广播包,其中广播包封装在UDP中,UDP封装在BOOTP中。
第二步广播包提交到了DHCP Server中,“他看了眼这个新来的人的身份证,发现是个新人,就给他找了个地方坐下,并给新人记录了签到信息”。计算机处理的过程就是,DHCP Server获取包中的MAC地址信息,对比自己缓存中的信息,发现这个设备还没有对应的IP,便租用给设备一个临时IP,这个过程叫DHCP Offer,同时DHCP Server将这个MAC对应的IP进行存储,保证不会将这个IP分配个其他设备。注意,当网络中有多个DHCP Server的时候,设备会取其中一个Server给的信息,并告诉所有Server它接受的是那个Server的Offer的IP地址,告诉其他Server 撤销他们的分配。
第三步,DHCP Server最后确认,当Server收到设备发来的DHCP request后,发送DHCP ACK消息包,表明已经接收到了设备的选择和确认,将IP的租用信息以及其他的配置信息发送个设备,达成最后,确认加入到局域网,并且广播以下,让局域网内其他设备都知道新加入了一台设备。注意,在DHCP Server没有做左后确认的时候,设备的IP地址还是0.0.0.0,以目标地址为255.255.255.255进行广播着。
- IP地址的回收和续租
DHCP为一台设备分配IP是有租期的,如果租期到了就会将这个IP进行回收。那么会产生两种情况,一种是不用了,另一种是还需要接着用。
不用了的情况,这种处理很简单,收回就收回去了。那当还要接着用的时候,该如何告知DHCP Server这个IP地址还需要继续的租用呢?实际上,设备会在租期过去50%的时候,自动向DHCP Server发送消息包,然后Server会回应DHCP ACK消息报,设备通过包中提供的新租期一起新的一些TCP/IP的参数更新自己的配置,就可以完成续租了。
- 5.介绍个有意思的东西
这个有意思的东西叫做 预启动执行环境(PXE),可以实现的是当一台空机设备加入网络的时候,就自动给设备安装系统,这件事看起来还是挺有难度的,不止要分配一个IP,还要给装一个操作系统。
如果有兴趣的同学可以去了解下,下面是几个别人写的相关博客。
https://zh.wikipedia.org/wiki/%E9%A2%84%E5%90%AF%E5%8A%A8%E6%89%A7%E8%A1%8C%E7%8E%AF%E5%A2%83
https://blog.csdn.net/nirendao/article/details/76012939
https://linux.cn/article-4902-1.html
总结下:
1.DHCP协议 可以自动给 新入网的设备分配一个IP地址
2.IP地址可以自己配置
3.一个有意思的 PXE 协议,在云计算领域有很大的用途
网友评论