preloader image
论网络中,如何指定计算机获取哪个DHCP服务器的地址池

论网络中,如何指定计算机获取哪个DHCP服务器的地址池

偶然看到QQ群里说,在两个dhcp服务器里保证获取第一个服务器怎么做?瞬间来了兴趣,想了想方案,发现百度也没有答案,因此我写了一个解决方案

如何让计算机获取指定DHCP,这个要从DHCP的 协议原理以及 交换机高级特性说

环境展示

要求:PC1指定获取R2的IP地址,PC2不限制获取哪个IP

如何解决?DHCP服务器指定?若提供DHCP服务的不是服务器而是其他设备呢?

先看DHCP协议报文交互原理

1.计算机网卡运行时,由于网卡未配置IP地址,会向网络中寻找DHCP服务器,这个过程,数据报文叫做 DHCP-Discover(DHCP发现报文)

由于计算机还没有IP地址,所以源地址0.0.0.0,目标地址255.255.255.255。由于不知道服务器地址,所以目的地址也是广播地址,目的端口68,服务器监听68端口

为了防止一个网络里出现了多个DHCP服务器而计算机无法区分哪个报文是哪个服务器发送的,DHCP交互报文中封装了 随机的事务ID

3.服务器收到后,由于客户端也还没有IP地址,也会发送目的地址255.255.255.255,源是服务器自己IP地址的数据包,目标端口67,计算机监听67端口,收到的 事务ID不变,这个数据过程叫 DHCP-Offer(DHCP提供报文)

DHCP-Offer报文里包含里要给予的,没有被记录使用的IP地址、子网掩码、网关地址、DNS地址、地址租期等内容

4.由于DHCP的工作原理是计算机按先后顺序,先收到谁的 DHCP-Offer ,就向哪个服务器发送 DHCP-Request(DHCP请求报文),事务ID不变,去向DHCP服务器确认该地址可用

DHCP-Request报文源地址还是0.0.0.0,目的地址255.255.255.255,这样的目的是不用向网络中的每一个DHCP服务器单播发送DHCP请求报文,节省了交互时间

5.此时多个服务器均会收到 DHCP-Request,然后根据报文中的 事务ID去辨别是否是发给我的请求,若不是发给我的则丢弃。若是发给我的,则回复 DHCP-Ack(DHCP确认报文)告知计算机可以使用该IP地址了,目的地址255.255.255.255,源是服务器

6.计算机收到 DHCP-Ack后,也会发送 免费ARP,这个 免费ARP源是给予的IP地址,目的也是这个地址。用来确认该网络中没有存在相同的IP地址,若存在,则向服务器发送 DHCP-Decline(DHCP拒绝报文),此时计算机会重新发送 DHCP-Discover进行新的开始

7.若计算机发现地址不存在冲突,则进行使用。

至此,DHCP的交互流程结束。地址续约及释放不在讲解,接下来回到题目要求进行操作

基于拓扑图可以分析出来, DHCP-Snooping技术无法使用,因为要求中写到PC2可以获取任意地址,设置哪个端口为Trust都无法进行PC1要求的控制。

也无法划开VLAN进行隔离,要求就是同一个广播域中。

所以此操作基于华为 MQC技术(模块化QOS命令行),也可以说是流策略。进行控制

在SW2上,配置

acl number 3000

rule permit ip source 20.0.0.254 0

#

traffic classifier 20

it-match 3000

#

traffic behavior 20

deny

#

traffic policy 20

classifier 20 behavior 20

#

interface GigabitEthernet0/0/2

traffic-policy 20 outbound

配置思路:

既然无法划开VLAN,那就对 DHCP报文交互过程进行限制,以计算机收到的第一个Offer报文进行控制。

为什么要进行三层控制,如果控制了二层,那计算机获取地址后就无法和R2进行交互,也不符合要求。

在SW2中,ACL定义了源地址为R2 20.0.0.254,就是定义了DHCP-Offer报文的返回数据帧。

在流分类中挂载ACL,为什么ACL是 permit?因为如果是 deny的话,流行为控制将不会挂载该条数据包

最后用流策略匹配流分类及流行为,应用在连接计算机的接口出方向即可。

此时效果为:PC1的DHCP请求报文可以被R2接收,R2也会发DHCP提供报文给计算机,该DHCP提供报文可以被SW2接收,但是不会下发给PC1,至此PC1仅能收到R1的DHCP报文。

这就完成了指定获取DHCP地址的控制。

若没有要求同一个VLAN进行控制,其实也可以通过 MUX VLAN进行控制(思科系叫 Private VLAN)

将主VLAN设成R2的接口VLAN,互通型VLAN设计成R1与PC2的接口。在将隔离型VLAN配置为PC1的接口。

所有互通型VLAN和隔离型VLAN均可和主VLAN交互,隔离型VLAN不可访问其他VLAN,而互通型VLAN,也就是PC2和R1的接口,既可以互访也可以访问主VLAN-R2的接口。

这也是另一种办法获取指定DHCP地址的解决方案。

Copyright © 2088 下一次世界杯_世界杯巴 - xbpifu.com All Rights Reserved.
友情链接