按照老师的例子搭了一个简单的拓扑,包括一个终端,两个路由器,如图:
路由器AR2
g0端口作为网关,地址:192.168.1.1 子网掩码:255.255.255.0
g1端口 地址 :192.168.2.2 子网掩码:255.255.255.0(可以看出路由器的两个端口分别是两个网络)
路由器AR4
作为dhcp服务器(dhcp服务器原来就是一个路由器,原来还以为是一台很大的主机。。。)
g0端口 地址:192.168.2.1 子网掩码 :255.255.255.0(和与它相连的那一端在一个网络中)
这个拓扑图中,客户机和dhcp服务器不在一个子网中,所以需要使用dhcp中继。
二、什么是dhcp中继?
早期的dhcp协议只适用语DHCP客户端和服务器处于同一个子网内的情况,不能跨网段。因此,为进行动态主机配置,需要在所有网段上都设置一个dhcp服务器,这显然是很不经济的。[1]
引入DHCP中继(DHCP Relay)可以使局域网的客户端与其他子网中的DHCP服务器通信。
工作原理:
当DHCP客户端启动并进行DHCP初始化时,它在本地网络广播配置请求报文。
如果本地网络存在DHCP服务器,则可以直接进行DHCP配置,不需要DHCP中继。
如果本地网络没有DHCP服务器,则与本网络相连的、带DHCP中继功能的网络设备受到该广播报文后,进行适当的处理并转发给指定的、其它网络上的DHCP服务器。
DHCP服务器根据客户端提供的信息进行相应的配置,并通过DHCP中继将配置信息发送给客户端,完成对客户端的动态配置。
在实际网络环境中,DHCP中继功能一般是在路由器某个具体的接口上实现的。这时需要为该接口配置IP中继地址,用来指定DHCP服务器。[1]
了解了dhcp中继,看下面完整的配置过程应该就可以理解了。
AR2上的配置:
首先进入系统视图
配置端口g0的ip地址
配置dhcp中继,指定dhcp服务器
配置端口g1的ip,并且配置静态路由
AR4(dhcp服务器)上的配置
1、分配ip
2、静态路由
3、配置地址池
1、端口g0的ip
2、配置静态路由
3、配置全局地址池
配置好以后可以先ping一下试试,ping DHCP服务器都可以ping通,应该是没问题的。
接下来终端使用dhcp,抓包看看是否可以获得ip
下图为在192.168.1.1(网关上抓的包),可以看出来,动态分配ip成功了,嘻嘻。
下图是在DHCP服务器上抓的包
其实从这个例子中可以发现问题:
DHCP地址池中的网关是192.168.1.1,而DHCP relay的地址也恰好是这个,根据[1]中的DHCP中继的工作原理,客户端是在网络上广播配置请求的报文的,所以,网关和DHCP relay的地址不一定是相同的?(没验证,自己试试)
[1]华为路由器DHCP配置手册