第十五篇:我们经常上网,有几个技术人知道上网IP是怎么来的呢?

说到我们的日常上网,就不得不提一个协议:DHCP协议。

DHCP全称Dynamic Host Configuration Protocol,动态主机配置协议。

DHCP与ARP一样是局域网的网络协议。在分层模型里面,其属于应用层协议,底层使用的是UDP协议。

虽然DHCP是应用层协议,但是为了更好的阐述网络结构,更全面的描述我们的上网过程,我这里把DHCP放在网络层来讲。

前面我们说过,全世界IPv4的IP地址是有限的,并且每一台的电子设备在互联网上都有一个独一无二的身份证(IP地址);我们肯定不能自己随便设置我们电脑的上网IP地址,因为这样可能导致两台电脑IP地址重复。

1. 那怎么保证IP主机的IP地址唯一性呢?

答案当然是在我们上网的时候,由权威机构进行统一管理和分配了。

所有的IP地址都由国际组织NIC(Network Information Center)负责统一分配的,目前全世界共有三个这样的网络信息中心。

而我国申请IP地址要通过APNIC网络信息中心,APNIC的总部设在日本东京大学。比如中国申请的IP段有:61.129.*.*开始到61.191.*.*等;其中中国互联网络信息中心(China Internet Network Information Center,简称CNNIC)则管理中国国内IP的分配和规划。

2. DHCP的工作机制

当我们连接Wi-Fi的时候,电脑将使用DHCP协议寻找“IP分配”流程。

DHCP 协议报文采用 UDP方式封装,DHCP Server 侦听的端口号是 67 ,DHCP Client 的端口号是 68 。DHCP 设备通过发送和接收 UDP 67 和 UPD 68 端口的报文进行协议交互。DHCP 的基本工作流程分为 4 个阶段,即发现阶段、提供阶段、选择阶段、确认阶段。

1)发现阶段

即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCP discover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

2)提供阶段

即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息,并在本地记录下客户机的MAC地址和分配IP的记录。

3)选择阶段

即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址,未被选中的DHCP服务器将会把本地分配的IP记录删除。

注意:在给客户端分配IP地址前需要发送ICMP回送请求包,确认没有返回应答即IP没有分配出去。

4)确认阶段

即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址,并回复客户机DHCP nack消息。

  1. 客户机ARP确认IP地址是否可用

使用DHCP时,如果DHCP服务器发生故障,将导致无法自动分配IP地址,从而也导致网段内所有的主机之间无法进行TCP/IP通信。为了避免此类问题的发生,通常人们会架设两台或以上的DHCP服务器。不过启动了多个DHCP服务器,由于每个服务器都记录着IP地址分配情况的信息,因此可能导致几处分配的IP地址相互冲突。所以,在客户机使用DHCP服务器分配的IP之前,需要先发送ARP请求报文,确认没有返回应答才能使用。

5)重新登录

以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。

6)更新租约

DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。

3. DHCP 分配机制

DHCP 提供了两种地址分配机制,可以根据网络需求为不同的 Client 选择不同的分配策略。

  1. 动态分配机制:通过 DHCP 为 Client 分配一个有使用期限的 IP 地址。如果 Client 没有及时续约,到达使用期限后,这个地址可能会被其它 Client 使用。绝大多数 Client 使用的都是这种动态分配的地址。
  2. 静态分配机制:通过 DHCP 为特定的 Client 分配固定的 IP 地址。固定 IP 地址可以永久使用, Client 通常是打印机、服务器等设备。因为像服务器这类设备,IP不能变更,否则前端将无法访问。
  3. 分配逻辑:在实际情况中,我们发现 DHCP Client 重启后,也能获得相同的 IP 地址。DHCP Server 为 DHCP Client 分配 IP 地址时,采用如下的顺序:

DHCP Server 中与 DHCP Client 的 MAC 地址静态绑定的 IP 地址;DHCP Client 曾经使用过的 IP 地址;最先找到的可用 IP 地址。如果没找到可用的 IP 地址,就依次查询超过租期、发生冲突的 IP 地址,如果找到就进行分配,否则报错处理。

4. DHCP中继代理

家庭网络中大多只有一个以太网网段,与其连接的主机数也不多。因此一台DHCP服务器就足以应对IP地址分配的需求,而大多数情况下都由带宽路由器充当DHCP服务器的角色。

然而,一个企业或者学校等较大型的组织机构的网络环境当中,一般会有多个以太网网段;在这种情况下,如果每个网段都设置一台DHCP服务器,每台DHCP服务器都进行配置和管理,将给我们的工作带来庞大的工程。如此,我们有没有办法解决这个问题呢?

答案是肯定的,DHCP只能在局域网里面广播,那么,我们能不能,在中间加一个代理DHCP服务器,其不做过多工作,针对DHCP的广播,接收客户机发来的报文,然后将其单播到真正的DHCP服务器就可以了;如此就有了下面的结构:

1)中继代理工作原理
  1. 客户机发送 DHCP Discover 或 DHCP Request 广播报文,具有 DHCP 中继功能的网络设备收到后,根据配置将报文单播给指定的DHCP服务器;
  2. DHCP服务器进行 IP 地址的分配,单播发送给 DHCP 中继代理 ,DHCP 中继代理再将配置信息广播给客户机 ,完成对 客户机 的动态配置。

因此,DHCP 服务器即使不在同⼀个链路上也可以实现统⼀分配和管理IP地址。

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值