| DHCP - - > Dynamic Host Configuration Protocol 动态主机配置协议
背景
任何一个需要上网的设备,都必须得有IP地址,子网掩码,网关,等等网络参数。比如:手机,电脑,智能手表,智能眼镜。。。
一个设备获取IP地址等网络参数的办法有两种:
- 手动配置
- 自动获取。所谓的自动获取,就会让终端设备通过DHCP协议的方法来自动的去寻找“DHCP服务器”然后呢,请求获得相对应的IP地址;
DHCP的工作角色,分为三个:
- DHCP客户端:用于请求IP地址等网络参数的终端设备
- DHCP服务器:用于分配IP地址等网络参数的服务器
- DHCP中 继:用于将一个DHCP客户端发送的报文,转发给DHCP服务器,也就是说,当DHCP客户端和DHCP服务器不在同一网段的时候,才会需要DHCP中继。
DHCP的工作原理/报文类型
- Discover报文:客户端通过广播的方式发送,用于寻找DHCP服务器来请求IP地址
- Offer报文:服务器通过单播的方式回应客户端,其中包含的是分配的IP地址
- Request报文:客户端通过广播的方式发送,用于和DHCP服务器确认得到的IP地址
- ACK报文:DHCP服务器通过单播的方式回应客户端的,用于对客户端的“确认”应答
基于全局的DHCP配置
拓扑:
需求
按照下列要求,确保PC可以自动获取IP地址
思路
1.配置PC - - - > 设置成自动获取IP地址
2.配置DHCP服务器
- 地址池
- 网关
- DNS
- 租期
配置命令:
PC1/PC2
双击打开 - - > 上方的基础配置下边 - - - > IPv4配置 - - - > ©DHCP - - - > 应用
DHCP Server
undo terminal monitor
system-view
sysname DHCP Server
dhcp enable
interface g0/0/0
ip address 192.168.1.254 24
dhcp select global //开启全局配置,此命令的意思就是我就是DHCP服务器
quit
ip pool 1
network 192.168.1.0 mask 24
// 设置发给客户端的IP地址网段和子网掩码
gateway-list 192.168.1.254
// 设置给客户端的网关IP地址是谁,是多少
dns-list 8.8.8.8
// 设置给客户端的DNS-IP地址是谁,是多少
lease day 3
// 设置给客户端发的IP地址和相应的网络参数保留几天,取值范围:0- 999 天
quit
验证方法:
PC>ipconfig 查看当前网络参数
或者
PC>ipconfig /renew //重新获取IP地址等网络参数
PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:feca:3c69
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.1.253 //IP地址
Subnet mask.......................: 255.255.255.0 //子网掩码
Gateway...........................: 192.168.1.254 //网关IP地址
Physical address..................: 54-89-98-CA-3C-69 //MAC地址
DNS server........................: 8.8.8.8 //DNS地址
基于DHCP的工作原理,我们知道了DHCP Discover报文的发送方式是:广播
这样一来的话呢,如果想让客户端获取IP地址的话,就只能要求:在每个DHCP客户端所在的网段,都分别建立一个DHCP服务器,这样一来,成本就嘎嘎高,所以,我们通常情况下,都会在整个网络中,部署一个DHCP服务器,有且只有一个,为整个网络中所有部门的DHCP客户端【终端】来分配IP地址。但是,如此一来,DHCP客户端以广播的方式发送DHCP报文,就无法到达DHCP服务器,所以,此时我们需要依靠“DHCP中继”。
所以总结:只有当DHCP客户端和DHCP服务器不在同一网段的时候,才需要中继。并且,在DHCP客户端所在的网段中,只有一种类型的设备,才可以做为中继- - - > “网关”。
DHCP中继
拓扑
需求:
如图配置设备接口的IP地址且确保PC可以自动获取IP地址等网络参数。
思路:
- 配置DHCP客户端Client
- 配置DHCP服务器Server
- 配置DHCP中继Relay
- 配置客户端到中继之间的传输网络- - >交换机
- 配置中继到服务器之间的传输网络- - >路由器
- 测试验证
配置命令
DHCP Client - -> DHCP - - >应用
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
接下来配置DHCP服务器要
* 基本配置
* DHCP enable
* 接口IP地址并且开启DHCP全局功能
* 配置用于发给客户端的地址池
DHCP Server
undo terminal monitor
system-view
sysname DHCP Server
dhcp enable
interface g0/0/0
ip address 10.10.10.1 24
dhcp select global
quit
ip pool vlan10
network 192.168.1.0 mask 24
gateway-list 192.168.1.254
dns-list 114.114.114.114
lease day 1
quit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
配置DHCP Eelay 中继
* 基本配置
* 接口IP地址
* 开启DHCP服务
* 在DHCP客户端所在的网段的网关,也就是192.168.1.0的网关,192.168.1.254在这里开启中继
并且指定DHCP服务器在哪里
DHCP Relay
undo terminal monitor
system-view
sysname DHCP Relay
dhcp enable
interface g0/0/0
ip address 10.10.10.2 24
quit
interface g0/0/1
ip address 192.168.1.254 24
dhcp select relay
// DHCP类型设置为中继
dhcp relay server-ip 10.10.10.1
// DHCP中继指定DHCP服务器的IP地址是谁
quit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
配置客户端到中继之间的传输网络
* 基本配置
* 创建VLAN并且设置链路类型
LSW1
undo terminal monitor
system-view
sysname LSW1
vlan 10
quit
port-group group-member g0/0/1 g0/0/2
port link access
port default vlan 10
quit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
验证:此时,我们使用PC自动获取IP地址
DHCP Client>ipconfig
这时我们发现获取不到IP地址
PC>ipconfig /renew
IP Configuration
Can't find DHCP server! //找不到DHCP服务器
为什么呢?
原因分析:
首先,我们要确定PC - - > LSW1 - - - > DHCP Relay 是没有问题的,怎么确定呢?
此时,我们可以给PC设置一个静态IP地址,去ping一下
PC>ping 192.168.1.254
结果:通
那接下来,我们用PC去访问一下DHCP服务器呗
PC>ping 10.10.10.1
结果:不通
那么,ping不通DHCP服务器,这属于什么通信故障 - - -> 路由呗
接下来,我们在用PC去追踪一下10.10.10.1的路由
PC>tracert 10.10.10.1
traceroute to 10.10.10.1, 8 hops max
(ICMP), press Ctrl+C to stop
1 192.168.1.254 46 ms 110 ms 78 ms
2 * * *
3 * * *
结果,我们发现路由追踪到了网关后,就没有回应了,我们去排查,是哪里出了问题
经过我们在DHCP Server Gi0/0/0口抓包,发现DHCP Server是可以收到PC的请求包的
但是,回不去,为什么呢?我们在DHCP Server上display ip routing-table 192.168.1.0
经过我们检查DHCP Server的路由表,我们发现没有去往192.168.1.0的路由
解决办法:
没有就添加呗:
DHCPServer
ip route-static 192.168.1.0 24 10.10.10.2
此时,我们把PC1设置为DHCP,再次获取IP地址等网络参数
PC>ipconfig
Link local IPv6 address...........: fe80::5689:98ff:fe26:61ce
IPv6 address......................: :: / 128
IPv6 gateway......................: ::
IPv4 address......................: 192.168.1.253
Subnet mask.......................: 255.255.255.0
Gateway...........................: 192.168.1.254
Physical address..................: 54-89-98-26-61-CE
DNS server........................: 114.114.114.114
此时,PC已经可以获取IP地址啦
那,各位,经过我们的学习,以及实验,我们得到了以下结论:
1.DHCP动态获取IP地址,是需要客户端到- - - >服务器的通信的畅通的
2.DHCP动态获取IP地址,如果不在同一网段,是需要中继来转发DHCP报文的