知道电脑怎么动态获取IP吗 自动获取ip地址怎么设置( 二 )


注意:从上面我们知道 DHCP 客户端经历了从DHCP 服务器动态获取 IP 地址,续租 IP 地址到最后释放 IP 地址的生命周期 。
4DHCP 报文类型和报文格式:

知道电脑怎么动态获取IP吗 自动获取ip地址怎么设置


DHCP 协议提供了多种类型的报文,但是基本格式是相同的,不同类型的报文只是报文中的某些字段值不同 。
DHCP 报文的基本格式如图所示:

知道电脑怎么动态获取IP吗 自动获取ip地址怎么设置


上图中每个字段含义如下:
  • op:报文的操作类型 。分为请求报文和响应报文 。客户端发送给服务器的包为请求报文,值为 1;服务器发送给客户端的包为响应报文,值为 2 。
  • htype:DHCP 客户端的 MAC 地址类型 。MAC 地址类型其实是指明网络类型,htype 值为 1 时表示为最常见的以太网 MAC 地址类型 。
  • hlen:硬件地址长度 。以太网 MAC 地址长度为 6 个字节,即 hlen 值为 6 。
  • hops:跳数,DHCP 报文经过的中继数量 。每经过一个路由器,该字段就会增加 1 。如果没有经过路由器,则值为 0(同一网内) 。
  • xid:事务 ID 。客户端发起一次请求时选择的随机数,用来标识一次地址请求过程 。在一次请求中所有报文的 xid 都是一样的 。
  • secs:DHCP 客户端从获取到 IP 地址或者续约过程开始到现在所过去的时间,以秒为单位 。在没有获得 IP 地址前,该字段始终为 0 。
  • flags:BOOTP 标志位 。只使用第 0 比特位,是广播应答标识位,用来标识 DHCP 服务器应答报文是采用单播还是广播发送 。其中,0 表示采用单播发送方式,1 表示采用广播发送方式 。其余位尚未使用 。
  • ciaddr:DHCP 客户端的 IP 地址 。仅在 DHCP 服务器发送的 ACK 报文中显示,在其他报文中均显示为 0 。这是因为在得到 DHCP 服务器确认前,DHCP 客户端还没有分配到 IP 地址 。
  • yiaddr:DHCP 服务器分配给客户端的 IP 地址 。仅在 DHCP 服务器发送的 Offer 和 ACK 报文中显示,其他报文中显示为 0 。
  • siaddr:为 DHCP 客户端分配 IP 地址等信息的其他 DHCP 服务器 IP 地址 。仅在 DHCP Offer、DHCP ACK 报文中显示,其他报文中显示为 0 。
  • giaddr:转发代理(网关)IP 地址,DHCP 客户端发出请求报文后经过的第一个 DHCP 中继的 IP 地址 。如果没有经过 DHCP 中继,则显示为 0 。
  • chaddr:DHCP 客户端的 MAC 地址 。在每个报文中都会显示对应 DHCP 客户端的 MAC 地址 。
  • sname:为客户端分配 IP 地址的服务器名称(DNS 域名格式) 。只在 DHCP Offer 和 DHCP ACK 报文中显示发送报文的 DHCP 服务器名称,其他报文显示为 0 。
  • file:DHCP 服务器为 DHCP 客户端指定的启动配置文件名称及路径信息 。仅在 DHCP Offer 报文中显示,其他报文中显示为空 。
  • options:可选选项,格式为“代码+长度+数据” 。
5DHCP 的应用场景:
在大型网络中,会有大量的主机或设备需要获取 IP 地址等网络参数时,使用 DHCP 协议动态分配地址 。
6实战:
DHCP 地址池
在做实验前先讲下 DHCP 地址池 。
DHCP 服务器的地址池是用来定义分配给主机的 IP 地址范围,DHCP 支持配置两种地址池,包括全局地址池和接口地址池 。
1、接口地址池为连接到同一网段的主机或终端分配 IP 地址 。
可以在服务器的接口下执行dhcp select interface命令,配置 DHCP 服务器采用接口地址池的 DHCP 服务器模式为客户端分配 IP 地址 。
2、全局地址池为所有连接到 DHCP 服务器的终端分配 IP 地址 。
可以在服务器的接口下执行dhcp select global命令,配置 DHCP 服务器采用全局地址池的 DHCP 服务器模式为客户端分配 IP 地址 。

推荐阅读