Day08
DHCP
| 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报文的
纯文本
案例:- - - >交换网络中DHCP综合运用
拓扑
需求
LSW1作为VLAN10/20的DHCP服务器
PC都自动获取IP地址
确保不同PC之间可以互通
思路
配置DHCP Client
配置DHCO Server
配置客户端到服务器之间的传输网络 - - - >交换网络
配置命令
PC --> DHCP--> 应用
DHCP Server - - - > LSW3
undo terminal monitor
system-view
sysname LSW3
vlan batch 10 20
dhcp enable
interface vlanif 10
ip address 192.168.10.254 24
dhcp select global
quit
interface vlanif 20
ip address 192.168.20.254 24
dhcp select global
quit
ip pool vlan10
network 192.168.10.0 mask 24
gateway-list 192.168.10.254
dns-list 114.114.114.114
quit
ip pool vlan20
network 192.168.20.0 mask 24
gateway-list 192.168.20.254
dns-list 114.114.114.114
quiy
port-group group-member g0/0/1 g0/0/2
port link trunk
port trunk allow-pass vlan all
quit
在配置DHCP地址池的时候,有些同学可能网关地址会配置不上,会提示
IP Address status error
那怎么办呢?
返回用户视图
<DHCP Server>rest ip pool name x all
y
那,我们要知道,为什么会出现这种问题
因为我们先做的vlanif地址
然后去做ip pool的时候,该IP地址已经不在地址池中了,所以,我们需要重置以下地址池即可
~~~~~~~~~~~~~此时,服务器已经设置完毕,接下来配置LSW2/3的交换网络即可 ~~~~~~~~~~~~~~~~~~
LSW2
undo terminal monitor
system-view
sysname LSW1
vlan batch 10 20
port-group group-member e0/0/2 e0/0/3
port link access
port default vlan 10
quit
interface e0/0/1
port link trunk
port trunk allow-pass vlan all
quit
LSW3
undo terminal monitor
system-view
sysname LSW3
vlan batch 10 20
port-group group-member e0/0/2 e0/0/3
port link access
port default vlan 20
quit
interface e0/0/1
port link trunk
port trunk allow-pass vlan all
quit
~~~~
验证:
PC>ipconfig
~~~~~
此时我们发现PC已经可以获取IP地址了,如果报错,那么我们的排错思路应该是怎样的呢?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~排错思路~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一步:首先给PC设置静态IP地址,然后去访问自己的网关,如果报错,提示目标不可达,那就是vlan的链路
没有设置好,在该交换机里display port vlan 查看以下各个端口的链路状态
第二步:能够ping通,但是PC不能正常获取IP地址,首先,我们去看一下vlanif里面的网关IP地址设置的对
不对,有的同学会把vlanif10的网关地址设置为192.168.10.254,但是把ip pool vlan10里面
的network的网段设置为了192.168.1.0,那能获取到就有鬼了,所以,指定分配不了
第二个,我们去看看vlanif里面的dhcp select global设置了没有
第三个,我们去看一下ip pool 里面分配的network地址和gateway-list地址对不对
纯文本
Ipconfig /renew 无法获取如何解决
第一种