DHCP基本概念
为解决传统的手工配置方式的不足,DHCP(动态主机配置协议)应运而生,其可以实现网络动态合理地分配IP地址给主机使用。
DHCP采用C/S架构,主机无需配置,从服务器端获取地址,可实现接入网络后即插即用。
DHCP优点
统一管理
- IP地址由服务器端的地址池中获取,服务器端会记录维护IP地址的使用状态,做到IP地址统一分配、管理。
地址租期
- DHCP提出了租期的概念,可有效提高地址利用率。
- 对于已分配的IP地址,若终端超过租期仍未续租,服务器端判断该终端不再需要使用该IP地址,将IP地址回收,可继续分配给其他终点。
DHCP工作原理
注:DHCP客户机和服务器必须处在同一个广播域才能完成地址的分配,DHCP是一种应用层的协议,DHCP四种报文单播还是广播取决于设计。
1.DHCP客户端发送DHCP Discover广播报文(255.255.255.255),用于发现当前网络中端DHCP服务器端。
2.DHCP服务器端收到之后,发送DHCP Offer(单播或广播),用于携带分配给客户端的IP地址。 至于Offer是单播还是广播分情况。
3.DHCP客户端发送DHCP Request广播报文,用于告知服务器端自己将使用该IP地址。
4.DHCP服务器端收到之后,回复DHCP Ack(广播)报文,用于最终确认,告知客户端可以使用该IP地址。
5.DHCP客户端收到后,会做免费ARP,检测地址有没有被其他终端使用。确定不冲突后,才可以使用。
这是整体DHCP工作过程。
如果有多台DHCP服务器同时给客户端地址,客户端优先使用先发送地址的服务器。
DHCP Offer,DHCP ACK可以是单播,也可以是广播。
如果DHCP Discover/offer报文中, bootp flags -1 ,则服务器通过广播来和客户端交互, bootp flags -0 ,则服务器通过单播来和客户端交互。
DHCP offer报文中,如果DHCP服务器使用MAC和IP绑定的地址分配方式,也可以单播交互。
offer是单还是广,就看PC的实现,如果PC想要单播,设置Discovery的bootp flags=0
如果PC想要广,设置Discovery的bootp flags=1,纯粹是PC实现不同。
对eNsP、linux主机来说,Discovery的bootp flags=0,所以offer是单:
对windows.主机来说,Discovery的bootp flags-1,所以offer是广.
DHCP request,可以广播,也可以单播
在首次获取地址时,request通过广播来发送,
在续租地址,request单播。
DHCP租期更新
DHCP Request(单播):向服务器端请求继续使用该IP地址,延长使用期限。
DHCP Ack(单播):告知客户端可以继续使用该IP地址,可使用时间刷新到租期市场。
50%单播发送request报文续租,如果在50%租期时客户端未得到原服务器端的回应,则客户端在87.5%租期时会广播发送DHCP Request,任意一台DHCP服务器端都可回应,该过程称为重绑定。
配置命令介绍(1)
配置命令介绍(2)
DHCP中继
AR1配置
[AR1]dhcp enable [AR1]int LoopBack 0 [AR1-LoopBack0]ip address 2.2.2.2 24 [AR1-LoopBack0]q [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip address 10.1.12.1 24 [AR1-GigabitEthernet0/0/0]dhcp select global [AR1-GigabitEthernet0/0/0]q [AR1]ip pool vlan10 [AR1-ip-pool-vlan10]network 10.1.10.0 mask 255.255.255.0 [AR1-ip-pool-vlan10]gateway-list 10.1.10.1 [AR1-ip-pool-vlan10]dns-list 8.8.8.8 [AR1-ip-pool-vlan10]q [AR1]ip pool vlan20 [AR1-ip-pool-vlan20]network 10.1.20.0 mask 255.255.255.0 [AR1-ip-pool-vlan20]gateway-list 10.1.20.1 [AR1-ip-pool-vlan20]dns-list 8.8.8.8 [AR1-ip-pool-vlan20]q [AR1]ip route-static 0.0.0.0 0 10.1.12.2
AR2配置
[AR2]dhcp enable [AR2]int g0/0/0 [AR2-GigabitEthernet0/0/0]ip address 10.1.12.2 24 [AR2-GigabitEthernet0/0/0]q [AR2]int g0/0/1.10 [AR2-GigabitEthernet0/0/1.10]ip address 10.1.10.1 24 [AR2-GigabitEthernet0/0/1.10]dot1q termination vid 10 [AR2-GigabitEthernet0/0/1.10]arp broadcast enable [AR2-GigabitEthernet0/0/1.10]dhcp select relay [AR2-GigabitEthernet0/0/1.10]dhcp relay server-ip 10.1.12.1 [AR2-GigabitEthernet0/0/1.10]q [AR2]int g0/0/1.20 [AR2-GigabitEthernet0/0/1.20]ip address 10.1.20.1 24 [AR2-GigabitEthernet0/0/1.20]dot1q termination vid 20 [AR2-GigabitEthernet0/0/1.20]arp broadcast enable [AR2-GigabitEthernet0/0/1.20]dhcp select relay [AR2-GigabitEthernet0/0/1.20]dhcp relay server-ip 10.1.12.1 [AR2-GigabitEthernet0/0/1.20]q [AR2]ip route-static 0.0.0.0 0 10.1.12.1
dhcp relay server-ip 10.1.12.1 是把过来的dhcp报文中继到dhcp服务器ip10.1.12.1上
SW1配置
[SW1]vlan batch 10 20 [SW1]int e0/0/3 [SW1-Ethernet0/0/3]port link-type access [SW1-Ethernet0/0/3]port default vlan 10 [SW1-Ethernet0/0/3]q [SW1]int e0/0/2 [SW1-Ethernet0/0/2]port link-type access [SW1-Ethernet0/0/2]port default vlan 20 [SW1-Ethernet0/0/2]q [SW1]int e0/0/1 [SW1-Ethernet0/0/1]port link-type trunk [SW1-Ethernet0/0/1]port trunk allow-pass vlan all
此时PC1和PC2可以全网互通。