DHCP(动态主机配置协议):
八种报文
(1)Discover:(客户机探索)
DHCP客户端寻找DHCP服务器位置时所使用的报文。DHCP请求客户端时,因不知服务器位置,便在本地网络中以广播形式发送Discover请求报文。所有收到该报文的DHCP服务器会发送应答报文,以此知道服务器在网络中的位置。
(2)Offer(服务器回应)
DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如网关 DNS服务器等),构造一个Offer报文,发送给DHCP客户端,告知用户本服务器可以为其提供IP地址。但这个报文只是告诉DHCP客户端可以提供IP地址,但最终还需要客户端通过ARP来检测该IP地址是否重复。

(3)Request(客户机询问能否使用)
DHCP客户端可能会收到很多Offer请求报文,所以必须在这些应答中选择一个。通常是第一个Offer应答报文对应的服务器作为自己的目标服务器,并向该服务器发送一个广播的Request请求报文通告选择的服务器。希望获得所分配的IP地址。另外,DHCP客户端在成功获取IP地址后,在地址使用租期到达50%时,会向DHCP服务器发送单播Request请求报文延续租约,如果没有收到ACK报文,在租期达到87.5%时,会再次发送广播的Request请求报文以请求延续租约。

(4)ACK(服务器再次确认可以使用)
DHCP服务器收到Request请求报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录,如果有则发送ACK应答报文,通知用户可以使用分配的IP地址。

(5)NAK(拒绝)
如果DHCP服务器收到Request请求报文后,没有发现有相应的租约记录,或者由于某些原因无法正常分配地址,则向DHCP客户端发送NAK应答报文,通知用户无法分配合适的IP地址。

(6)Release(释放IP)
当DHCP客户端不再需要使用分配IP地址时(一般出现在客户端关机,下线等状况)就会主动向DHCP服务器发送RELEASE请求报文,告知服务器用户不再需要分配IP地址,请求DHCP服务器释放对应的IP地址。

(7)Decline(地址冲突)
DHCP客户端收到DHCP服务器ACK应答报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则会向DHCP服务器发送Decline请求报文,通知服务器所分配的IP地址不可用,以获得新的IP地址。

(8)Inform(记录其他信息)
DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则向DHCP服务器发送Inform请求报文;DHCP服务器在收到该报文后,将根据租约进行查找到相应的配置信息后,向DHCP客户端发送ACK应答报文。

DHCP工作原理
(1)客户机请求IP地址:DHCP客户机在网络广播中一个DHCP Discover,请求IP地址,DHCP Discover包的源地址为0.0.0.0。目的地址为255.255.255.255。
(2)服务器响应请求:当DHCP服务器接收到客户机请求IP地址信息时,就在自己的库中查找是否有合法的IP地址提供给客户,如果有,将此IP标记,广播一个DHCP offer包。这个包中包含:客户机的MAC地址、提供的合法IP、子网掩码、租约期限、服务器标示、其他参数等。因为客户机没有IP地址,所以还是以广播发送,源地址:0.0.0.0目的地址255.255.255.255。
(3)客户机选择IP地址:DHCP客户机接收到第一个DHCP offer包中选择IP地址,并在次广播一个DHCP request包到所有服务器,该包中包含为客户机提供的IP配置的服务器的服务标示符(IP地址),服务器查看标示符,以确定自己提供的IP地址是否被IP地址是否被客户机选中,如果客户机接受IP,则发出IP地址的DHCP服务器将该地址提供给另外一个DHCP。如果拒绝,提供给下一个IP租约请求。这个源地址仍然是0.0.0.0目的地址255.255.255.255。
(4)服务器确认IP租约:DHCP租约的最后一步,服务器确认租约,发送一个DHCP ack/DHCP NACK包。服务器收到DHCP request包后,以DHCP ack包向客户机广播出去,当客户机收到后,就配置了IP地址,完成初始化,就可以在TCP/IP网络上通信了。客户机收到DHCP nack包会重新发送DHCP Discover包,这次源地址是服务器的IP地址,目的地址时255.255.255.255。

DHCPV6(Dynamic Host Configuration Protocol for IPV6):

IPV6无状态自动配置(SLAAC)的问题:
(1)不记录主机地址信息。
(2)无法获取DNS等信息。

DHCP Snooping:
因为在多服务器的情况下先收到谁的offer报文就用谁的地址,所以要采用信任接口的形式保证安全(接口分为信任接口和非信任接口,非信任接口发送过来的信息直接丢弃)
开启DHCP Snooping功能后,设备能够通过分析DHCP的报文交互过程,生成DHCP Snooping绑定表,绑定表项包括客户端的MAC地址、获取到的IP地址、与DHCP客户端连接的接口及该接口所属的VLAN(Virtual Local Area Network)、租期等信息。

DHCPV6概述:
(1)有状态自动分配:地址、前缀、DNS等
(2)无状态自动分配:前缀、DNS(可能可以可能不行)等,主机地址通过RA消息自动生成。

DHCPV6监听的组播地址:FF02::1:2、FF05::1:3。
客户机和中继用FF02::1:2,中继和服务端:FF05::1:3。
服务器直接发给客户机也是FF02::1:2。(可以不用中继)
DHCP设备唯一标识符DUID。

身份联盟(IA)
身份联盟IA(Identity Association)包含:
(1)唯一的IAID
(2)一个或多个IPV6地址信息
(3)首选生存期
(4)有效生存期
(5)续租时间点T1,推荐值为首选生存期的0.5倍。
(6)续租时间点T2,推荐值为首选生存期的0.8倍。

中继器作用:PC和服务器不在一个链路上,所以需要中继器来帮忙发送FE05::3:1来向服务器请求地址。

分配原则:
1.确定地址池:
接口绑定地址池,则直接选择
接口不绑定地址池,根据客户端所在链路范围选择地址池。

2.选择地址:
根据地址DUID,有指定分配地址的,直接分配。
客户端IA报文携带了地址(续租),优先分配该地址。若不可用,则分配其他空闲地址。
保留地址,冲突地址,已分配地址,不分配。
(绑定就分绑定,没绑定就从小开始分,IPV4从大往小分)

DHCPV6服务器(配置命令):
(1)dhcp enble \\开启dhcp功能
(2)ipv6 \\开启ipv6功能

(3)dhcpv6 pool NAME \\创建地址池
(4)address prefix 2000::/64 \\分配地址前缀
(5)dns-server 2222::2 \\分配dns服务器
(6)excluded-address 2000::2 \\保留地址

(7)int g 0/0/0
(8)dhcpv6 server NAME rapid-commit
\\接口启用dhcpv6服务,并使用快速交互模式。

(9)undo ipv6 nd ra halt
(10)ipv6 nd autoconfig managed-address-flag
(11)ipv6 nd autoconfig other-flag
\\开启RA消息,并将M/O置位。

DHCPv6 PD服务器:
(1)dhcp enble \\开启dhcp功能
(2)ipv6 \\开启ipv6功能

dhcpv6 pool PD
prefix-delegation 2000::/32 48
\\PD服务端可根据客户端期望(hint),在配置范围内(32-48)分配合适的前缀长度

int g 0/0/1
dhcpv6 server PD allow-hint
\\接口调用地址池,并允许客户端期望。若无期望参数,则分配48位前缀。
dhcpv6 PD客户端:
dhcpv6 enble
ipv6

int g0/0/0
dhcpv6 client pd spoto gint ::/32
\\上连PD服务器的端口配置位客户端
\\将的前缀信息命名为spoto
\\期望收到32位前缀信息
int g 0/0/1
ipv6 address spoto 0:0:34::3/64
\\客户端的其他接口,可以直接调用前缀名称spoto。
无论配置的ipv6地址为多少,前缀都自动覆盖,所以一般将会覆盖的部分用0填充。