DHCP概述
DHCP是什么
- DHCP:Dynamic Host Configuration Protocol:动态主机配置协议
- DHCP是一种集中对用户IP地址进行动态管理和配置的技术
DHCP作用:
- 作用:实现IP地址的动态分配和集中管理
- 优势:避免手工配置IP地址,提高工作效率,避免出错,且能快速适应网络变化
DHCP角色
- DHCP客户端:需要获取IP地址的设备
- DHCP服务器:负责为DHCP客户端分配IP地址等网络参数的设备
- DHCP中继:负责DHCP服务器和DHCP客户端之间的DHCP报文
ps:企业网络中一般不需要部署DHCP中继
DHCP服务器给首次接入网络中的客户端分配网络参数的工作原理
- 发现阶段:客户端广播发送DHCP Discover报文(DHCP发现报文,客户端找DHCP服务器,请求IP地址)
- 提供阶段:服务端收到客户端发的报文后,会单播回复DHCP Offer报文(DHCP回应报文,服务器给客户端发IP地址、网关、DNS等)
- 选择阶段:客户端收到Offer报文后,会再次广播发送DHCP Request报文(DHCP请求报文,客户端广播告知所有的服务器,选择了某某IP地址)
- 确认阶段:服务器收到客户端发的报文后,会单播回复DHCP ACK报文(DHCP确认报文,确认分配结果,只有发了ACK报文,客户端才可以使用IP)
基于全局的DHCP实验
需求:PC1/PC2能够自动获取IP地址、网关、DNS
配置步骤:
第一步:在系统视图下开启DHCP功能
第二步:配置IP地址池
- 创建IP地址池
- 配置可分配的IP地址段
- 配置网关地址
- 配置DNS地址
- 配置租期
第三步:配置R1路由器接口的IP地址
- 这个接口接收客户端发的报文,这个接口的IP地址,即客户端的网关地址
- 在这个接口下开启基于全局的DHCP功能
第四步:验证结果
配置命令:
- [R1]dhcp enable //开启DHCP功能
- [R1]ip pool tedu //创建IP地址池
- [R1-ip-pool-tedu]network 192.168.1.0 mask 24 //配置可分配的地址段
- [R1-ip-pool-tedu]gateway-list 192.168.1.254 //配置网关地址
- [R1-ip-pool-tedu]dns-list 8.8.8.8 //配置DNS地址
- [R1-ip-pool-tedu]lease day 1 //配置租期
- [R1-ip-pool-tedu]quit
- [R1]int g0/0/0
- [R1-G0/0/0]ip address 192.168.1.254 24 //此接口IP地址和网关地址一致
- [R1-G0/0/0]dhcp select global //在接口下开启基于全局的DHCP
验证与测试:
- PC1和PC2选择获取地址的方式为DHCP
- 然后PC1和PC2在命令行中,使用ipconfig 命令查看IP地址
数据抓包
基于全局的dhcp:
- [R1]ip pool tedu
- [R1-ip-pool-tedu]excluded-ip-address 192.168.1.250 192.168.1.253 //在基于全局的IP地址池中做地址排除,排除的IP地址不做dhcp分发
- display ip pool name tedu all //查看全局IP地址池中全部地址信息
- display ip pool name tedu used //查看全局IP地址池中已分发的IP地址
基于接口的DHCP实验
配置命令:
- [R1]dhcp enable //开启dhcp功能
- [R1]int g0/0/0
- [R1-G0/0/0]ip address 192.168.1.254 24
- [R1-G0/0/0]dhcp select interface //开启基于接口的dhcp 功能
- [R1-G0/0/0]dhcp server dns-list 8.8.8.8
- [R1-G0/0/0]dhcp server lease day 1
DHCP中继实验
配置命令
配置DHCP服务器
- [R2-DHCP]dhcp enable //开启dhcp 功能
- [R2-DHCP]ip pool ntd //创建IP地址池
- [R2-DHCP-ip-pool-ntd]network 192.168.10.0 mask 24
- [R2-DHCP-ip-pool-ntd]gateway-list 192.168.10.254
- [R2-DHCP-ip-pool-ntd]dns-list 8.8.8.8
- [R2-DHCP-ip-pool-ntd]excluded-ip-address 192.168.10.253
DHCP中继配置:
- [R1-zj]dhcp enable
- [R1-zj]int g0/0/0
- [R1-zj-G0/0/0]ip add 192.168.20.10 24
- [R1-zj-G0/0/0]int g0/0/1
- [R1-zj-G0/0/1]ip add 192.168.10.254 24
- [R1-zj-G0/0/1]dhcp select relay //在接口上开启dhcp中继功能
- [R1-zj-G0/0/1]dhcp relay server-ip 192.168.20.20 //指定dhcp服务器的IP地址
接口上调用中继
- [R2-DHCP]int g0/0/0
- [R2-DHCP-GigabitEthernet0/0/0]ip add 192.168.20.20 24
- [R2-DHCP-GigabitEthernet0/0/0]dhcp select global
租期
租期T1:
- 当IP地址的租用时间到达50%时,客户机会以单播方式向服务器发送Request 请求报文,请求更新IP地址租期。
DHCP 服务器如果回复DHCP ACK确认报文给客户机,代表租期更新成功,从0开始
租期T2:
- 如果DHCP服务器一直没有回应,那么在IP地址的租用时间到达87.5%时,客户机会以广播方式向服务器发送Request 请求报文,请求更新IP地址租期
- DHCP服务器如果回复DHCP ACK 确认报文给客户机,代表租期更新成功,从0开始
恢复接口上VLAN的缺省配置(让access/trunk/顺利切换)
access接口恢复默认配置(缺省配置)
- SW1]vlan batch 10 20
- [SW1]interface g0/0/1
- [SW1-GigabitEthernet0/0/1]port link-type access
- [SW1-GigabitEthernet0/0/1]port default vlan 10
- [SW1-GigabitEthernet0/0/1]port link-type trunk //将接口模式修改为trunk(失败)
- Error: Please renew the default configurations. :错误:请更新默认配置
如何解决:如何恢复接口上VLAN的缺省配置
第一种方法:
- [SW1-GigabitEthernet0/0/1]port default vlan 1 //接口pvid恢复为vlan1
- [SW1-GigabitEthernet0/0/1]port link-type trunk //将接口模式修改为trunk(成功)
第二种方法:
- [SW1-GigabitEthernet0/0/1]undo port default vlan //恢复接口上VLAN的缺省配置
- [SW1-GigabitEthernet0/0/1]port link-type trunk //将接口模式修改为trunk(成功)
trunk接口恢复默认配置(缺省配置)
- [SW1]vlan batch 10 20
- [SW1]interface g0/0/1
- [SW1-G0/0/1]port link-type trunk
- [SW1-G0/0/1]port trunk allow-pass vlan 10 20
- [SW1-G0/0/1]port link-type access //将接口模式修改为access(失败)
- Error: Please renew the default configurations. :错误:请更新默认配置
如何解决:如何恢复接口上VLAN的缺省配置
- [SW1-G0/0/1]undo port trunk allow-pass vlan 10 20 //恢复默认
- [SW1-G0/0/1]port link-type access //将接口模式修改为access(成功
ps:
- [SW1-G0/0/1]undo port trunk allow-pass vlan all //删除所有vlan
- [SW1-G0/0/1]port link-type access //无法修改报错
Error: Please renew the default configurations.
如何解决:恢复默认配置: undo port trunk allow-pass vlan all 的时候把所有vlan 都干掉了,所以我们要恢复vlan1
第一种方法:
- [SW1-G0/0/1]undo port trunk allow-pass vlan 2 to 4094 //只删除2 to 4094 不删除vlan1
- [SW1-G0/0/1]port link-type access //修改成功
第二种方法:
- [SW1-G0/0/1]undo port trunk allow-pass vlan all //删除所有vlan
- [SW1-G0/0/1]port trunk allow-pass vlan 1 //补上vlan1,恢复默认
- [SW1-G0/0/1]port link-type access //修改成功