DHCP动态主机配置协议
技术背景:
手动配置IP地址过于繁琐,且当局域网内的主机数量增加,手动配置可能会导致IP地址重复配置。所以DHCP服务器可以为局域网中的主机自动配置IP地址
相关概念:
从BOOTP协议发展而来
UDP封装
客户端68端口,服务器67端口:使用固定的端口,看数据发送的方向
C->S 67->68 :客户端的67端口访问服务器的68端口
S->C 68->67:服务端的68端口访问服务器的67端口
在抓包软件中中要搜索bootp才可以看到DHCP
DHCP的系统组成角色:
客户端
服务器
中继器
(为什么需要中继,因为DHCP是广播发送的,只有在广播域中才可以传输
客户端和服务器不在一个广播域,那么就需要中继器)
DHCP的报文类型:
报文发送方式:广播发送,单播发,广播发送,单播发送,广播发送
拓展报文类型:
DHCP Decline:当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址。
DHCP Inform:客户端已经获得了IP地址,发送此报文的目的是为了从服务器获得其他的一些网络配置信息,比如网关地址、DNS服务器地址等。
地址池:
接口地址池为连接到同一网段的主机或终端分配IP地址。可以在服务器的接口下执行dhcp select interface命令,配置DHCP服务器采用接口地址池的DHCP服务器模式为客户端分配IP地址。
全局地址池为所有连接到DHCP服务器的终端分配IP地址。可以在服务器的接口下执行dhcp select global命令,配置DHCP服务器采用全局地址池的DHCP服务器模式为客户端分配IP地址。
接口地址池优先级大于全局地址池
DHCP交互过程:
收到的DHCP服务器的回应,先到先得(DHCP域中可能不止一个DHCP服务器)
DHCP租期更新:
IP租期达到50%的时候,DHCP客户端就会像DHCP服务器重新请求IP地址租约
DHCP重绑定:
IP地址租约时间到87.5%的时候,DHCP客户端还没有收到服务器响应,会申请重新绑定IP
IP地址释放:
如果IP租约到期还没有收到服务器的响应,客户端会停止使用该IP地址
如果DHCP客户端不再想使用分配的IP地址,也可以主动发送DHCP Release主动释放该地址
细节问题:
DHCP的交互过程中客户端发送DHCP Discover之后,服务器回复DHCP offer,但是此时客户端主机并没有分配到IP地址,所以在第二次发送的时候源地址和目的地址还是0.0.0.0 /255.255.255.255
DHCP碰到的问题:
1.路由器和交换机连接的时候:一个可以在接口上直接配置IP地址,一个是可以指定端口类别
(1)可以在交换机连接路由器的接口上配成vlan1,
(2)配成access接口,并且指定vlan
2.中继的时候要注意一个事情,DHCP服务器要有到DHCP客户段的路由,(access接口发送数据是不带vlan标签)
下图是根据vlanif接口去配置的分别再SW2上配置了vlanif10和vlanif20的网关地址
dis ip pool interface vlanif10 all(这里是基于接口地址,所以用的是三层虚拟接口地址)
对应的广播域下面的对应接口才可以收到DHCP服务器发送的报文
DHCP问答题:
DHCP报文我们都知道有5种报文,能否具体描述一下DHCP服务器什么时候发送DHCP ACK,什么时候发送DHCP NAK?你能否举出1-2个场景来描述DHCP NAK报文?
DHCP的报文类型
DHCP报文分为8种类型,DHCP服务器和客户端之间通过这8种类型的报文进行通信。
(1)DHCP DISCOVER:这是DHCP客户端首次登录网络时进行DHCP过程的第一个报文,用来寻找DHCP服务器。
(2)DHCP OFFER:DHCP服务器用来响应DHCPDISCOVER报文,此报文携带了各种配置信息。
(3)DHCP REQUEST:此报文用于以下三种用途。
①客户端初始化后,发送广播的DHCPREQUEST报文来回应服务器的DHCPOFFER报文。
②客户端重启初始化后,发送广播的DHCPREQUEST报文来确认先前被分配的IP地址等配置信息。
③当客户端已经和某个IP地址绑定后,发送单播的DHCPREQUEST报文来延长IP地址的租期。
(4)DHCPACK:服务器对客户端的DHCPREQUEST报文的确认响应报文,客户端收到此报文后,才真正获得了IP地址和相关的配置信息。
(5)DHCPNAK:服务器对客户端的DHCP REQUEST报文的拒绝响应报文,比如服务器对客户端分配的IP地址已超过使用租借期限或者客户端移到了另一个新的网络。
(6)DHCP Release:客户端可通过发送此报文主动释放服务器分配给它的IP地址,当服务器收到此报文后,可将这个IP地址分配给其它的客户端。
(7)DHCP Decline:当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址。
(8)DHCP Inform:客户端已经获得了IP地址,发送此报文的目的是为了从服务器获得其他的一些网络配置信息,比如网关地址、DNS服务器地址等。
以上8种类型报文的格式相同,只是某些字段的取值不同。DHCP报文格式基于BOOTP报文格式。
DHCP Sever 主动发送的DHCP OFFER,ACK和NAK报文,里面主要包含什么信息和参数,是广播还是单播发送?为什么这样设计?(也就是问广播和单播你觉得那种好?好在哪里?为什么这样设计?华为是怎么设计的?)举出一个场景来阐述DHCP OFFER,ACK和NAK设计成广播和单播有什么差异?
DHCP OFFER报文和DHCP ACK报文里面包含的内容除了DHCP消息类型不同外,其他的内容相同。包含为客服端分配的IP地址、客户端的MAC地址、消息类型、服务器ID、子网掩码、租期、域名、网关、DNS服务器等内容。以单播方式发送。OFFER消息和ACK消息是发送给客户端的,提供以及确认为客户端分配的IP地址。此时服务器可以认为客户端的IP地址为自己分配给客户的IP地址,二层封装为单播。
DHCP NAK报文里面包含DHCP消息类型的DHCP NAK;客户端的MAC地址等内容。以广播发送。NAK消息是发送给客户端的,拒绝客户端请求的IP地址。此时服务器不知道客户端的IP地址,用255.255.255.255代替,二层封装为广播地址。
DHCP OFFER报文和DHCP ACK报文是发送给客户端的,如果设计成广播,会让同一个广播域不需要收到该报文的设备处理这些报文。
DHCP NAK报文是发给客户端的,但是是拒绝客户端请求的IP地址。如果此时设计成单播,在IP封装的目的IP地址写哪个IP地址都不合适。