DHCP总结
DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、 Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。
报文封装格式
OP:若是 client 送给 server 的封包,设为 1 ,反向为 2。
HTYPE:硬件类别,Ethernet 为 1。
HLEN:硬件地址长度, Ethernet 为 6。
HOPS:若封包需经过 router 传送,每站加 1 ,若在同一网内,为 0。
TRANSACTION ID:DHCP REQUEST 时产生的数值,以作DHCPREPLY 时的依据。
SECONDS:Client 端启动时间(秒)。
FLAGS:从 0 到 15 共 16 bits ,最左一 bit 为 1 时表示 server 将以广播方式传送封包给client ,其余尚未使用。
ciaddr:要是 client 端想继续使用之前取得之IP 地址,则列于这里。
yiaddr:从 server 送回 client 之 DHCP OFFER 与 DHCPACK封包中,此栏填写分配给client 的 IP 地址。
siaddr:若 client 需要透过网络开机,从server 送出之 DHCP OFFER、DHCPACK、DHCPNACK封包中,此栏填写开机程序代码所在 server 之地址。
giaddr:若需跨网域进行 DHCP 发放,此栏为 relayagent 的地址,否则为 0。
chaddr:Client 之硬件地址。
sname:Server 之名称字符串,以 0x00 结尾。
file:若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。
options:允许厂商定议选项(Vendor-SpecificArea),以提供更多的设定信息(如:Netmask、Gateway、DNS、等等)。其长度可变,同时可携带多个选项,每一选项之第一个 byte 为信息代码,其后一个 byte 为该项数据长度,最后为项目内容。CODE LEN VALUE 此字段完全兼容 BOOTP ,同时扩充了更多选项。
工作原理
DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口。
- DHCP Client以广播的方式发出DHCP Discover报文。
- 所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址,且DHCP Server会将自己的IP地址放在“option”字段中以便DHCP Client区分不同的DHCP Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。
- DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
- DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。
- DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用[qK1] 。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCP Server发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。
- DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。
需要说明的是:DHCP客户端可以接收到多个DHCP服务器的DHCP OFFER数据包,然后可能接受任何一个DHCP OFFER数据包,但客户端通常只接受收到的第一个DHCP OFFER数据包。另外,DHCP服务器DHCP OFFER中指定的地址不一定为最终分配的地址,通常情况下,DHCP服务器会保留该地址直到客户端发出正式请求。
正式请求DHCP服务器分配地址DHCP REQUEST采用广播包,是为了让其它所有发送DHCP OFFER数据包的DHCP服务器也能够接收到该数据包,然后释放已经OFFER(预分配)给客户端的IP地址。
如果发送给DHCP客户端的地址已经被其他DHCP客户端使用,客户端会向服务器发送DHCP DECLINE(谢绝)信息包拒绝接受已经分配的地址信息。
在协商过程中,如果DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已经过期,DHCP服务器会发送DHCPNAK消息给DHCP客户端,让客户端重新发起地址请求过程。
抓包过程
DHCP inform报文是客户端广播给所有的服务器自己此次获得的IP地址是什么,包含了此次DHCP具体的信息。
Your(Client)IP address是指服务器能够提供给客户端的IP,在客户端发送给服务器的方向,如discover、request报文,此项都为0.0.0.0;
Client IP是指客户端当前的IP
Option(3):默认网关的ip地址
Option(6):DNS服务器的ip地址序列
Option(51):租约
Option(53):dhcp报文类型
Option(50):想要申请的ip
Option(54):dhcp服务器地址
Option(61):客户端mac
Option(58):Renewal Time Value
Option(59):Rebinding Time Value
Option(1):Subnet Mask
Option(3):Router
Option(255):End
Discover报文(69.46S):
Offer报文(70.46S):
Request报文(71.42S):
Ack报文(71.42S):
租约
DHCP分配的地址是有使用期限的,到期后,还要使用的话,是要续租的。
当到达租约期限的1/2时:客户端向服务器单播dhcp-request报文。同意继续使用此ip则回ACK报文,更新ip租约。不同意,则回NAK报文。
当到达租约期限的7/8时:客户端向DHCP广播Dhcp-request报文。服务器处理同上。
1.以PC作为DHCP客户端为例(租约为60S),租约期限到达1/2时,同意继续使用此IP:
过程:DHCP的四步报文结束之后,PC发送广播inform报文,次报文中包含了客户端获得的IP地址等信息;到达租约30秒(1/2)之后,PC发送request单播,服务器收到之后,发送ACK单播报文,让PC继续使用分配到的IP,再过30秒(租约的1/2),PC和服务器重复上述过程。
2. .以PC作为DHCP客户端为例(租约为4分钟),租约期限到达1/2时,同不同意继续使用此IP时,是通过看PC有没有发送免费ARP,如果发送了,且收到回复,则此IP不能使用,若没有收到回复,则能使用,每隔1/2租期,发送request报文和ack报文。
3. 以PC作为DHCP客户端为例(租约为4分钟),租约期限到还未达1/2时,断开交换机和路由器之间的网线(使路由器不能为PC提供DHCP服务),当到达1/2时,PC发送单播的request报文,当到达7/8时间时,发送广播的request报文,当最终的租约时间结束之后,PC不断的发送discover报文,时间间隔是4S 8S 16S 32S,以此时间间隔不断发送下去。如果都没有得到DHCP Server的回应,客户机会从169.254.0.0/16这个自动保留的私有IP地址中选用一个IP地址。并且每隔5分钟重新广播一次,如果收到某个服务器的响应,则继续IP租用过程。
租约为2分钟:
157秒时距离上一个ACK时间为60秒(1/2租约),发送request单播报文,且以间隔4、8、16、32的间隔发送,因此下一个request报文时4秒之后,161秒时;到205秒时,距离上一个ACK报文的时间为105左右(7/8租约),发送request广播,以间隔4、8、16、32的间隔发送;到达223秒时,租约已过期,一直发送discover广播报文。
DHCP Relay DHCP中继
DHCP Relay:由于在IP地址动态获取过程中采用广播方式发送请求报文,因此DHCP只适用于DHCP客户端和服务器处于同一个子网内的情况。DHCP中继功能的引入解决了这一难题:客户端可以通过DHCP中继与其他网段的DHCP服务器通信,最终获取到IP地址。
DHCP中继的典型组网应用:
DHCP中继的工作过程:
DHCP中继的工作过程为:
(1) 具有DHCP中继功能的网络设备收到DHCP客户端以广播方式发送的DHCP-DISCOVER或DHCP-REQUEST报文后,将报文中的giaddr字段填充为DHCP中继的IP地址,并根据配置将报文单播转发给指定的DHCP服务器。
(2) DHCP服务器根据giaddr字段为客户端分配IP地址等参数,并通过DHCP中继将配置信息转发给客户端,完成对客户端的动态配置。
[qK1]如何判断能否使用服务器提供的IP地址??
[qK2]为什么没有1/2时间的单播request,什么时候有release报文发送??
端口镜像
基本概念
端口镜像通过将指定端口、VLAN或CPU的报文复制到与数据监测设备相连的端口,使用户可以利用数据监测设备分析这些复制过来的报文,以进行网络监控和故障排除。
镜像源是指被监控的对象,该对象可以是端口、VLAN或CPU,我们将之依次称为源端口、源VLAN和源CPU。经由被监控的对象收发的报文会被复制一份到与数据监测设备相连的端口,用户就可以对这些报文(称为镜像报文)进行监控和分析了。镜像源所在的设备就称为源设备。
镜像目的是指镜像报文所要到达的目的地,即与数据监测设备相连的那个端口,我们称之为目的端口,目的端口所在的设备就称为目的设备。目的端口会将镜像报文转发给与之相连的数据监测设备。
由于一个目的端口可以同时监控多个镜像源,因此在某些组网环境下,目的端口可能收到对同一报文的多份拷贝。例如,目的端口Port 1同时监控同一台设备上的源端口Port 2和Port 3收发的报文,如果某报文从Port 2进入该设备后又从Port 3发送出去,那么该报文将被复制两次给Port 1。
镜像组是一个逻辑上的概念,镜像源和镜像目的都要属于某一个镜像组。根据具体的实现方式不同,镜像组可分为本地镜像组、远程源镜像组和远程目的镜像组三类。
配置
1. 创建本地镜像组:
2. 配置源端口:
3. 配置目的端口:
4. 查看配置镜像组的信息:display mirroring-group group-ID(all,显示所有镜像组信息)