DHCP(Dynamic Host Configuration Protocol)

动态主机配合协议

其是一个位于局域网的应用层协议,也是一个UDP协议,主要就是对ip地址集中管理和分配。

DHCP的用途:

  给内部网络或网络服务供应商自动分配ip地址

  给用户或内部网管作为对所有PC做中央管理的手段

另外,DHCP是一个典型的CS模型:Server:UDP协议——67端口,Client:UDP协议——68端口。

 

DHCP的工作原理:


DHCP工作原理_第1张图片

【图1】


交互过程:

 ①Client以广播的形式发出Discover报文。

②所有的Server都能收到Client发出的报文,所有的Server都会给出响应,向Client发送一个Offer报  文。(Offer中已有S提供给C的ip地址;S端会存在一个已分配ip的记录)

③Client只能处理一个Offer报文,一般原则为,处理最先收到的Offer报文。然后,C会发出一个广播  的Request报文,在选项字段中写入其选中的S的ip和需要的ip

④Server收到Request报文后,会判断首选字段中的ip是否与自己的相同。若不同,其只清除刚才的相  应的IP地址分配记录;若相同,S会向C响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用  租期信息。

 

Server配置:

 Server(config)#service dhcp                     //启用DHCP服务

 Server(config)#ip dhcp pool [名字]             //定义dhcp地址池

 Server(config)#network [网段]  [子网掩码]       //定义dhcp网段及掩码

 Server(config)#default-router  [网关]           //定义网关

 Server(config)#dns-server [ip地址]            //DNS服务器地址

可选操作:

 Server(config)#ip dhcp excluded-address [ip地址] 

  //DHCP分配ip时不包含的ip

 

 Client配置:

 Client(config)#no ip routing

 Client(config)#int f0/0

 Client(config-if)#no shutdown

 Client(config-if)#ip add dhcp

 

 Client(config)#show ip interface brief       // 查看端口配置信息

 

 

上述说到,Client-Server之间的报文传输都是广播报文,当C和S不处于同一个广播域时,C发出的Discover报文广播会被阻断,此时,需要用到DHCP Relay(中继),其会将C发出的广播转换成单播发送给S。

 

DHCP工作原理_第2张图片

      【图2】                       

 

 上图中,中继功能配置在三层交换机上的SVI接口vlan 10中,因为C属于Vlan10。


补充:看视频,看CCNA书本时,在学习DHCP工作原理时,关于DHCP Server给Client发送的Offer和ACK报文到底是广播还是单播,还是存在争议的。在从网上寻找答案时,发现其报文到底是广播还是单播是由报文中的一个关键决定的——BROADCAST的置位情况。当置位为1时,报文是广播报文;当置位是0时,报文是单播报文。参考链接:https://blog.csdn.net/luozhi2009/article/details/5682032

(补充日期:2018.05.12)