浅谈DHCP Relay


        相信很多正在学习网络的同学,对DHCP这个协议即熟悉又陌生,这个协议是我们正常生活中想要通过终端设备上网必备的协议。而今天我们就来好好唠唠这个既熟悉也陌生的上网协议。    

        动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种用于集中对用户IP地址进行动态管理和配置的技术。而在我们HCIA阶段学习该知识的时候,给的场景是很简单的----DHCP client和DHCP server在同一网段;而今天我们来普及下DHCP client和DHCP server不在同网段的场景下,如何让DHCP client可以获得ipv4地址的。

        

 image.png

 

        如上图所示:假如DHCP client与DHCP server中间的路由器设备没有开启DHCP Relay功能,那么DHCP client要获取ipv4地址此时会发送DHCP discover广播报文,此时由于中间的路由器是隔离广播的,那么此时DHCP client发送的discover广播报文是无法通过这个中间路由器传递给DHCP server的。这就导致DHCP client永远无法从DHCP server中获得ipv4地址的。那么为了解决这个问题,我们就让中间的路由器设备开启DHCP Relay中继功能,当中间路由器开启了中继功能后,其会将client发来的discover广播报文转换为单播报文转发给DHCP server,此后所有的DHCP client与中继路由器之间相互发送的广播报文,在经过中继路由器之后,中继路由器与DHCP server之间都是以单播的方式相互交流。

        接下来我们通过一个具体的实验来给大家演示上面的理论

        

 image.png

 

        实验场景描述:DHCP server和DHCP Relay之间属于10.1.1.0/24网段,DHCP Relay和DHCP client之间属于192.168.0.0/24网段,现在的目的就是让DHCP client PC1可以从DHCP server哪里获得一个192.168.0.x/24的ipv4地址,通过该地址可以进行上网。

        此时我们在R1的接口G0/0/1抓包

 image.png

 

        此时我们在R2的接口G0/0/2抓包

 image.png

 

        如上面两个抓包截图所示:DHCP Relay和DHCP client之间discover和Request报文都是广播,而这两个报文在DHCP server和DHCP Relay之间确实单播报文,这正好验证了前面关于报文的理论的。那么PC1到底有没有获得192.168.0.x/24的ipv4地址呢?是怎么获得的呢?PC1发送discover广播报文到了dhcp中继路由器R1上,dhcp中继路由器R1由将该discover报文变为单播报文传给了dhcp server上,而DHCP server通过这个discover报文中的“relay agent ip address=192.168.0.1“并且自己的服务器也有192.168.0.0/24的地址池。此时dhcp server就知道该给DHCP client分配一个192.168.0.x/24的地址了。如下图所示,最终PC1获得了一个192.168.0.254/24的地址。

 image.png

      最后我给大家留两个思考题:

1.DHCP server是通过什么判断应该分配哪个网段的ipv4地址?

2.根据我们实验client192.168.0.0/24这个网段中,而服务器在10.1.1.0/24这个网段中,那么server怎么知道应该给客户端分配是192.168.0.0/24这个网段ip地址而不是分配10.1.1.0/24这个网段的ip地址的呢?

      

 

 


猜你喜欢

转载自blog.51cto.com/15134242/2662754