DHCP 服务原理:Snooping和Relay

1、DHCP基础
    1.1 发现阶段,即DHCP客户端发现DHCP服务器的阶段。
    1.2 提供阶段,即DHCP服务器提供IP地址的阶段。
    1.3选择阶段,即DHCP客户端选择IP地址的阶段。
    1.4 确认阶段,即DHCP服务器确认所分配IP地址的阶段。
2、DHCP Snooping
3、DHCP Relay(中继)
4、一个关于DHCP Snooping与 DHCP Relay的小思考


1、DHCP 基础

       DHCP 全称动态主机配置协议(Dynamic Host Configuration Protocol),用于给终端设备如 PC、IPad、手机等自动分配 IP地址。
       工作过程简洁高效,易于掌握,首先借着一张图介绍 DHCP 基本的工作原理:

DHCP、DHCP Snooping及DHCP relay工作原理入门及实践

       从图上可以清晰看出,客户端通过 DHCP 协议获取IP地址等信息的过程可以分为四个步骤:

1.1 发现阶段,即 DHCP 客户端发现 DHCP 服务器的阶段。

       DHCP客户端发送DHCP DISCOVER报文来发现DHCP服务器。由于DHCP客户端不知道DHCP服务器的IP地址,所以DHCP客户端以广播方式发送DHCP DISCOVER报文(目的IP地址为255.255.255.255,源IP地址为0.0.0.0),同一网段内所有DHCP服务器都能收到此报文。

1.2 提供阶段,即 DHCP 服务器提供 IP 地址的阶段。

       服务器接收到 DHCP DISCOVER 报文后,选择跟接收 DHCP DISCOVER报文接口的 IP 地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给DHCP客户端。DHCP OFFER 报文里面携带了希望分配给指定MAC地址客户端的IP地址(DHCP报文中的 yiaddr 字段)及其租期等配置参数。

1.3选择阶段,即DHCP客户端选择IP地址的阶段。

       因为DHCP DISCOVER报文是广播发送的,所以如果同一网段内存在多个DHCP服务器,接收到DHCP DISCOVER报文的服务器都会回应DHCP OFFER报文。如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文,则DHCP客户端一般只接收第一个收到的DHCP OFFER报文。

       以广播方式发送DHCP REQUEST报文,是为了通知所有的DHCP服务器,它将选择某个DHCP服务器提供的IP地址,其他DHCP服务器可以重新将曾经分配给客户端的IP地址分配给其他客户端。

1.4 确认阶段,即DHCP服务器确认所分配IP地址的阶段。

       当DHCP服务器收到 DHCP 客户端发送的 DHCP REQUEST 报文后,DHCP服务器回应 DHCP ACK 报文,表示 DHCP REQUEST 报文中请求的IP地址分配给客户端使用。

小结:DHCP工作过程四个步骤涉及四种数据包,分别是DISCOVER、OFFER、REQUEST、ACK。


2、DHCP Snooping

      在企业实际网络环境中,经常会遇到电脑获取到错误IP地址等情况,导致无法正常上网,这是因为网络中非法接入了DHCP服务器(最常见的非法DHCP服务器就是TP-link家用路由器)。
这时候就需要在网络交换机上配置DHCP snooping功能来防止非法DHCP服务器给客户端分配IP地址。

      DHCP Snooping不论从配置上还是工作原理上也都很简单,继续用一张图说明:
DHCP、DHCP Snooping及DHCP relay工作原理入门及实践

      在二层网络接入设备(即交换机)启用DHCP Snooping场景中,一般将与合法DHCP服务器直接连接的接口设置为信任接口(如上图中的if1接口),其他接口设置为非信任接口(如上图中的if2接口),启用了DHCP Snooping功能的交换机会检测从每个接口收到的DHCP各类数据包,如果从非信任接口收到,则丢弃;使DHCP的四种数据包仅能从信任接口转发或者接受,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,私自架设的DHCP Server仿冒者无法为DHCP客户端分配IP地址。

小结:DHCP Snooping在交换机上启用,并将连接合法服务器的接口设置为信任接口,其他接口默认都是非信任接口。


3、DHCP Relay(中继)

      上面提到的DHCP客户端与服务器都在同一个网段,比较适用于家庭网络和小型企业网络。但在中到大型企业网络中,有很多网段,不推荐在每个网段都部署一个DHCP服务器,既不经济也不好管理。
       实际情况是,在大型网络中,往往采用一台高性能的服务器当作DHCP服务器,它只存在于一个网段。由于DHCP的工作高度依赖于广播,而我们知道广播包是不能跨网段传输的,所以正常情况下其他网段的客户端是无法获取IP地址的。

      DHCP Relay的出现就是为了解决这个问题,用一张图说明:

DHCP、DHCP Snooping及DHCP relay工作原理入门及实践
      还是之前熟悉的四个步骤,不过这次在客户端与服务器中间多了一个DHCP中继设备,通常DHCP中继为网络中每个网段的网关设备(即启用了DHCP Relay功能的三层交换机)。

      DHCP中继将从客户端接收到的广播报文转换成单播报文,这样报文就可以跨越网段进行传输。单播报文意味着明确且唯一的目的IP地址,所以开启DHCP中继的设备必须手工明确配置DHCP服务器的IP地址。
       有了DHCP中继,不论企业网络中有多少个IP网段,我们只需要在一个网段部署DHCP服务器,其他网段则由网关设备开启中继功能,这样整个网络都能通过DHCP服务器获取IP地址。

      小结:在三层交换机的各个网段开启DHCP Relay功能,并手动指定DHCP服务器的IP地址,可实现整网共享一台DHCP服务器。


4、一个关于DHCP Snooping与 DHCP Relay的小思考

      在一个部署了DHCP Relay的网络中,DHCP Snooping应该启用哪些设备上?
如图所示:
DHCP、DHCP Snooping及DHCP relay工作原理入门及实践
      其中有三个部门即三个网段,而DHCP服务器是一台路由器,不属于其中任意一个网段。
在这个网络中,每个包含DHCP客户端的二层网络中都应该启用DHCP Snooping,而仅包含 DHCP 服务器的二层网络是不需要启用DHCP Snooping的。

      备注:客户端二层网络启用 DHCP Snooping 很好理解,而 DHCP 服务器二层网络无需启用 DHCP Snooping 的背后原因稍显复杂。
具体原因是当部署了DHCP Relay后,DHCP 服务器收到的 DHCP 各种报文一定是中继设备转换后的单播报文,单播报文有明确且唯一的目的IP,这时就不会存在仿冒 DHCP 服务器的问题
      而实际上如果真的在 DHCP 服务器二层网络中的交换机上启用了 DHCP Snooping 功能,它也是不会影响DHCP正常工作的,因为从中继设备发过来的单播 DHCP 报文里面UDP层源端口号已经被中继设备修改成UDP 67(而原始报文里则为UDP 68),交换机一旦检测到这点变化,就会自动忽略,正常转发DHCP各类报文,不做 DHCP Snooping 额外处理。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

查里王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值