通过上面的分析我们发现DHCP过程中的报文几乎全是广播包,只能在同一个网段中传播,但是如果网络中划分了数个vlan呢?有两种解决方法:

1,  在每个vlan中安装一台DHCP server,这种方法适合在特别大型的网络中使用。

2,  只安装一台DHCP server,通过使用DHCP relay来中继DHCP报文。

DHCP relay原理:

DHCP Relay 为在DHCP Server 和DHCP Client 间传输DHCP 报文的设备。局域网内的Client 可以通过DHCP Relay 与其他子网的DHCP Server 通信,最终取得合法的IP 地址。这样,多个网络上的DHCP Client 可以使用同一个DHCP Server,既节省了成本,又便于进行集中管理。以下是DHCP relay的工作过程。

详解DHCP工程抓包的原理和过程

Client 和Relay 间的所有报文,从初始状态获取IP 地址时,discover和request都是广播的,offer 和ack 根据请求报文中的广播标志位来决定广播还是单播,如果请求标注位为广播,则offer 和ack 就是广播的,否则就是单播的。所以不能说一定就是广播的。到达50%lease 续租时,request 和ack 都是单播的。使用DHCP Relay 进行地址申请时的步骤与直接进行地址申请的步骤类似,只是Relay 路由器收到Client 的请求报文后,将收到该报文的接口的地址填入该报文,然后进行单播转发。Server 根据该接口的地址来确定分配给Client 地址的网段,即分配的IP 地址与Relay 路由器收到请求报文的接口的地址属同一网段。当收到来自Server 单播的DHCPoffer、DHCPack 或DHCPnak 报文时,DHCPRelay 路由器将会对Client 进行单播传送报文。当DHCP Client 启动并进行DHCP 初始化时,它在本地网络广播配置请求报文。如果本地网络存在DHCP Server,则可以直接进行DHCP 配置,不需要DHCP Relay。如果本地网络没有DHCP Server,但有DHCP Relay 设备,此设备收到该广播报文后,进行适当处理,即将收到报文的接口的地址填入该报文,并单播转发给指定的、其它物理子网的DHCP Server。DHCP Server 根据Client 提供的信息进行相应的配置,并通过DHCPRelay 将配置信息发送给Client,完成对Client 的动态配置。

为了更好的学习DHCP relay我构建了如下试验拓扑:

详解DHCP工程抓包的原理和过程

如上所示,ROUTER上架设了DHCP server,地址是192.168.2.1它有两个地址池分别是

  1. ip dhcp server pool fox1  
  2. network 192.168.1.0 255.255.255.0  
  3. default-router 192.168.1.1  
  4. ip dhcp server pool fox2  
  5. network 192.168.3.0 255.255.255.0  
  6. default-router 192.168.3.1 

在SW上有两个用户vlan,分别是vlan10 和vlan30,SW三层交换机)上,地址分别是192.168.1.5和 192.168.3.5 。用SW作DHCP relay


相关内容

    暂无相关文章