14 KiB
DHCP
一、DHCP概述
-
DHCP是什么
- DHCP:Dynamic Host Configuration Protocol :动态主机配置协议
- DHCP是一种集中对用户IP地址进行动态管理和配置的技术
-
DHCP的作用
- 作用:实现IP地址的动态分配和集中管理
- 优势:避免手工配置IP地址,提高工作效率,避免出错,且能快速适应网络的变化
-
DHCP角色
-
DHCP客户端:需要获取IP地址的设备,如:计算机、服务器、手机、IP电话等
-
DHCP服务器:负责为DHCP客户端分配IP地址等网络参数的设备
-
DHCP 中继(中转站-可选):负责DHCP服务器和DHCP客户端之间的DHCP报文(房地产中介公司)
企业网络中一般不需要部署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的配置
[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地址
-
-
数据抓包
-
配置地址排除
[R1]ip pool tedu [R1-ip-pool-tedu]excluded-ip-address 192.168.1.250 192.168.1.253 //在基于全局的IP地址池中做地址排除,排除的IP地址不做dhcp分发
-
查看IP地址池
<R1>display ip pool name tedu all //查看全局IP地址池中全部地址信息 <R1>display ip pool name tedu used //查看全局IP地址池中已分发的IP地址
四、基于接口的DHCP实验
-
需求
PC1/PC2能够自动获取IP地址、网关、DNS
-
配置步骤
- 第一步:在系统视图下开启DHCP功能
- 第二步:配置基于接口的DHCP
- 配置接口的IP地址和掩码
- 在接口下开启基于接口的DHCP功能
- 在接口下配置DNS地址
- 在接口下配置租期
-
配置命令
-
R1配置
[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
-
-
验证与测试
PC1和PC2选择获取地址的方式为DHCP 然后PC1和PC2在命令行中,使用ipconfig 命令查看IP地址
五、DHCP中继代理原理
-
问题
当客户机和DHCP服务器不在一个广播域时,DHCP服务器无法接收到客户机的DHCP discover广播数据包,客户机就无法获得IP地
-
解决
在客户机所在的广播域中,寻找一台路由器,这台路由器一个端口在客户机所在的广播域,另外一个端口在DHCP服务器所在的广播域,让这台路由器主动接收客户机的DHCP discover数据包,然后由这台路由器代替客户机向DHCP服务器申请IP地址,得到地址后,再把这个地址交给客户机,这台服务器称之为DHCP中继代理服务器
-
DHCP中继实验
-
需求
- 希望PC1/PC2自动获取到IP地址,网关、DNS等网络参数
- Server1 服务器手工配置一个静态IP地址,192.168.10.253,这个地址是专门给服务器使用的,所以这个地址不能通过DHCP分发,避免IP地址冲突
-
配置步骤
- 第一步:配置R2-DHCP服务器
- 在系统视图下开启DHCP功能
- 在R2-DHCP服务器中配置基于全局的DHCP
- 创建IP地址池:ntd
- 定义网段:192.168.10.0/24
- 定义网关:192.168.10.254
- 定于DNS:8.8.8.8
- 定义排除地址:192.168.10.253 这个IP地址不做DHCP分发
- 在接口上配置IP地址,开启基于全局的dhcp
- 第二步:配置DHCP中继
- R1中继设备开启DHCP功能
- 配置R1中继设备的接口IP地址
- 在R1设备连接客户端的接口上开启DHCP中继,指向DHCP服务器:192.168.20.20
- 第三步:配置静态路由
- 在R2配置去往192.168.10.0网段的路由,下一跳为192.168.20.10
- 第四步:验证与测试
- 第一步:配置R2-DHCP服务器
-
配置命令
-
第一步:配置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 [R2-DHCP-ip-pool-ntd]quit [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
-
-
第二步:配置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.2 //指定dhcp服务器的IP地址
-
第三步:在DHCP服务器上配置去往中继设备的回程路由
[R2-DHCP]ip route-static 192.168.10.0 24 192.168.20.10
-
第四步:验证与测试
在PC1和PC2中设置IP地址的获取方式为DHCP 在PC1和PC2中命令行中输入命令
-
-
经验证发现
PC1的IP地址是192.168.10.252 PC2的IP地址是192.168.10.251 192.168.10.253这个地址,已经被排除,没有被DHCP分发
-
六、三层交换机部署DHCP
-
需求
vlan10和vlan20的pc自动获取IP地址
-
配置步骤
- 第一步:在sw1部署dhcp
- 创建vlan
- 配置trunk链路-交换机互联接口做trunk
- 配置vlanif 虚接口地址--每个vlan的网关地址
- 开启dhcp 功能
- 创建IP地址池
- 定义网段
- 定义网关
- 定义dns
- 在vlanif 虚接口下,开启dhcp select global
- 第二步:配置sw2和sw3接入层交换机
- 创建vlan
- 接口加入vlan,交换机和pc互联的接口做access
- 交换机和交换机互联的接口做trunk
- 第三步:验证与测试
- 第一步:在sw1部署dhcp
-
配置命令
-
第一步:在sw1部署dhcp
-
DHCP服务器配置
[SW1-DHCP]vlan batch 10 20 [SW1-DHCP]port-group group-member g0/0/1 g0/0/2 [SW1-DHCP-port-group]port link-type trunk [SW1-DHCP-port-group]port trunk allow-pass vlan all [SW1-DHCP-port-group]quit [SW1-DHCP]ip pool vlan10 [SW1-DHCP-ip-pool-vlan10]network 192.168.10.0 mask 24 [SW1-DHCP-ip-pool-vlan10]gateway-list 192.168.10.254 [SW1-DHCP-ip-pool-vlan10]dns-list 8.8.8.8 [SW1-DHCP-ip-pool-vlan10]quit [SW1-DHCP]ip pool vlan20 [SW1-DHCP-ip-pool-vlan20]network 192.168.20.0 mask 24 [SW1-DHCP-ip-pool-vlan20]gateway-list 192.168.20.254 [SW1-DHCP-ip-pool-vlan20]dns-list 8.8.8.8 [SW1-DHCP-ip-pool-vlan20]quit [SW1-DHCP]dhcp enable [SW1-DHCP]int vlanif 10 [SW1-DHCP-Vlanif10]ip address 192.168.10.254 24 [SW1-DHCP-Vlanif10]dhcp select global [SW1-DHCP-Vlanif10]int vlanif 20 [SW1-DHCP-Vlanif20]ip address 192.168.20.254 24 [SW1-DHCP-Vlanif20]dhcp select global
-
-
第二步:配置sw2和sw3接入层交换机
-
SW2配置
[SW2]vlan batch 10 20 [SW2]port-group group-member g0/0/2 g0/0/3 [SW2-port-group]port link-type access [SW2-port-group]port default vlan 10 [SW2-port-group]quit [SW2]int g0/0/1 [SW2-G0/0/1]port link-type trunk [SW2-G0/0/1]port trunk allow-pass vlan all
-
SW3配置
[SW3]vlan batch 10 20 [SW3]port-group group-member g0/0/2 g0/0/3 [SW3-port-group]port link-type access [SW3-port-group]port default vlan 20 [SW3-port-group]quit [SW3]int g0/0/1 [SW3-G0/0/1]port link-type trunk [SW3-G0/0/1]port trunk allow-pass vlan all
-
-
第三步:验证与测试
-
在PC1和PC2中设置IP地址的获取方式为DHCP
-
在PC1和PC2中命令行中输入命令
ipconfig /release //释放当前IP地址 ipconfig /renew //更新IP地址(获取IP地址)
<SW1-DHCP>display ip pool name vlan10 all //查看地址池中全部IP信息 <SW1-DHCP>display ip pool name vlan10 used //查看地址中已使用的IP地址 <SW1-DHCP>display ip pool name vlan20 all //查看地址池中全部IP信息 <SW1-DHCP>display ip pool name vlan20 used //查看地址中已使用的IP地址
<S3>reset ip pool name vlan10 192.168.10.253回收已分配的IP地址 <S3>reset ip pool name vlan10 all
-
-
七、租期
1)租期T1: 当IP地址的租用时间到达50%时,客户机会以单播方式向服务器发送Request 请求报文,请求更新IP地址租期。 DHCP 服务器如果回复DHCP ACK确认报文给客户机,代表租期更新成功,从0开始
2)租期T2 如果DHCP服务器一直没有回应,那么在IP地址的租用时间到达87.5%时,客户机会以广播方式向服务器发送Request 请求报文,请求更新IP地址租期 DHCP服务器如果回复DHCP ACK 确认报文给客户机,代表租期更新成功,从0开始
-
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(成功)
-
备注:
[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 //修改成功
-
-