DHCP中继代理(dhcp relay)

就是说如果dhcp客户端与服务器在同一个物理网段,则客户机可以正确地获得服务器端动态分配的ip地址。如果不在同一个物理网段,则需要中继代理。

用DHCP Relay代理,它可以传递消息到不在同一个物理子网的DHCP服务器,也可以将服务器的消息传回给不在同一个物理子网的DHCP客户机


DHCP中继代理 原理:

1、 当dhcp client 启动并进行dhcp 初始化时,它会在本地网络广播配置请求报文。

2、 如果本地网络存在dhcp server,则可以直接进行dhcp 配置,不需要dhcp relay。
3 、如果本地网络没有dhcp server,则与本地网络相连的具有dhcprelay 功能的网络设备收到该广播报文后,将进行适当处理并转发给指定的其它网络上的dhcp server。
4 、dhcp server 根据dhcp client 提供的信息进行相应的配置,并通过dhcp relay 将配置信息发送给dhcp client,完成对dhcp client 的动态配置。


一般应用

大型的企业网中会设置很多 vlan (校园网不算大但也差不多),每个vlan也有很多的也会连接有很多的端口,这些端口的地址管理就用到的dhcp 服务;但是vlan多了不可能在每个里面都设置 DHCP 服务器,所以就得像个办法,我为一个vlan dhcp服务器、、然后还能为其他 vlan 分配 IP 地址,

这样多节省各方面的资源、(网络 个人);当然也就引来了 vlan 间的通讯,vlan间的通讯是靠高层的、三层交换机路由器防火墙,它通信的实质就是拆分子接口然后分配各个vlan 端口;但是路由设备在处理网络流量的时候,是不允许广播包通过的;知道吧在网络里面是有三种流量;


一种是单播对特定的人发送广播(unicast),目标ip是一个真实可用的ip

一种是广播(broadcast),它的目标ip 255.255.255.255  变成以后总广播帧;

还有一种叫组播(multicast224.0.0.5 224.0.0.9 224.0.0.6 224.0.0.10

所以DHCP中继 实质就是把dhcp的广播包转化为单播包再进行传输;

(因为啊一般三层设备只能让单播和组播进行通过,广播是不被允许的。)


做个案例 :

当然也可以用虚拟设备进行模拟实验;对三个网段不同 vlan间进行通讯;

windows linux 都可以作为一个路由设备(能转发数据包就行),

在 Linux下只需要更改一些内核参数,在/etc/sysctl.conf 下更改;

而 windows 上是实现路由功能需要一个协议叫路由与远程访问协议(RAS),继而再把他们设置中继;


【模拟环境 】


第一个 :先用windows server 2003 做路由中继

看看简易拓扑图


DHCP 服务 (二)DHCP Relay_第1张图片


在 虚拟机 选择好一个 windows server 2003 做路由;

然后需要设置三块网卡 VM1 、2、 3 ,是为了对应一个服务器和两个分支;


DHCP 服务 (二)DHCP Relay_第2张图片


然后在各自网卡分别添地址 看看是不是有这三个直连网段:


DHCP 服务 (二)DHCP Relay_第3张图片


然后开始着手 把 windows server 2003 变为一个路由功能的数据转发,配置并启动;

循序渐进 截图如示:


DHCP 服务 (二)DHCP Relay_第4张图片


vlan路由


DHCP 服务 (二)DHCP Relay_第5张图片


添加 中继服务:


DHCP 服务 (二)DHCP Relay_第6张图片


给中继起端口


DHCP 服务 (二)DHCP Relay_第7张图片


添加中继服务器地址


DHCP 服务 (二)DHCP Relay_第8张图片


至此 ,中继路由就做好了 ;


接着 开始做 server,这是以 linux 机做服务器;

然后再服务器里做分支一、分支二的作用域

# tec.com    分支一作用域;

# mkt.com    分之二作用域;

还有一个本身的 空作用域;


图中的有个参数默认租约时间单词写错了;应该是 default-lease-time


DHCP 服务 (二)DHCP Relay_第9张图片


虚拟的情况就这一个配置好了接下里就是测试然后就启动 DHCP 服务器;


找台PC测试首先要先用指令 ipconfig/release  先释放地址

当然还要更改之前设置的三块网卡,分之一(tec.com)在第二块、分之三(mkt.com)再第三块,总部服务器还是自己的第一块网卡


然后再进行获取新的IP地址;ipconfig /renew


DHCP 服务 (二)DHCP Relay_第10张图片

DHCP 服务 (二)DHCP Relay_第11张图片


第二个 :先用linux 5.4 做路由中继

换成linux 5.4 后,(仍然是虚拟环境下的配置)

过程仍然要是有三块网卡,所以再新建两个(同样的分之一 tec.com 和分支二 mkt.com

进入系统之后执行setup 为每一块网卡执行相应的地址;

然后保存退出;重新启动网络(指令 :service network restart)。


打开超级终端 执行 setup 添加网卡 :


DHCP 服务 (二)DHCP Relay_第12张图片

DHCP 服务 (二)DHCP Relay_第13张图片

DHCP 服务 (二)DHCP Relay_第14张图片


以防万一 查看一下 路由表信息(看看有没添加进)



接着就要给 linux 作路由功能,需要在 /etc/ sysctl.conf   更改参数设置

设置 net.iipv4_forward = 1


按照默认设置,红帽企业 Linux 内核中的 IPv4 政策禁用了对 IP 转发的支持,这会防止运行红帽企业 Linux 的机器成为专用边缘路由器


DHCP 服务 (二)DHCP Relay_第15张图片


接下来看看更改是否起效;

sysctl 配置与显示在/proc/sys目录中的内核参数、 -p 从指定的文件加载系统参数


DHCP 服务 (二)DHCP Relay_第16张图片


linux 充当路由设备做好了、但要满足中继服务,还要安装  dhcp 的一个软件包;

还是先挂在挂载光盘 在安装 DHCP 服务;


DHCP 服务 (二)DHCP Relay_第17张图片


依然看看按章文件有什么重要的 需要了解没


DHCP 服务 (二)DHCP Relay_第18张图片


找到上面中继服务的配置脚本就要正在这里进行更改;做一些参数的改变:


DHCP 服务 (二)DHCP Relay_第19张图片

这 更改之 后;

DHCP 服务 (二)DHCP Relay_第20张图片


更改完成之后开始进行测试一下 行不行 :ping 192.168.30.100

(这个是 linux serevr 的地址, ok 了)

然后再 重新启动 中继服务;


DHCP 服务 (二)DHCP Relay_第21张图片


找台分支的PC 查看是不是获得了动态分配的 IP地址了 ;(这个分支二的)


DHCP 服务 (二)DHCP Relay_第22张图片



-----------------------》》》》》》》》》》》》

【 真实 设备 】


依然对着 拓扑图做:

DHCP 服务 (二)DHCP Relay_第23张图片



首先呢 也是Linux 服务器配置

配置完成依然是路由信息先看有没误差:


DHCP 服务 (二)DHCP Relay_第24张图片


接着 在server 添加作用域 :

(分支一(tec.com)、分支二(mkt.com )及自身 空作用域 )


DHCP 服务 (二)DHCP Relay_第25张图片

DHCP 服务 (二)DHCP Relay_第26张图片


按步骤 安装 DHCP ,接着重启 DHCP 服务;


ok ,至此 DHCP server算做好了



接着 配置 交互式网络 三层设备


【华为 S2000交换机】


添加vlan 端口

DHCP 服务 (二)DHCP Relay_第27张图片

查看有没添加成功 :


DHCP 服务 (二)DHCP Relay_第28张图片

DHCP 服务 (二)DHCP Relay_第29张图片


然后看一下  trunk 接口  :

Trunk 是 dot1q 封装 、还允许所有端口通过;


DHCP 服务 (二)DHCP Relay_第30张图片


路由【 华为 R2621


路由设备看看 配置信息:

( 是否 有中继功能 )


DHCP 服务 (二)DHCP Relay_第31张图片


配置完之后 成不成功 来测试:


DHCP 服务 (二)DHCP Relay_第32张图片

DHCP 服务 (二)DHCP Relay_第33张图片


路由交换 配置过程:


三层交换机配置 华为 S2000

Vlan 10

Port e1/0/10

Vlan 20

Port e1/0/20

Vlan 30

Port e1/0/22

Int e1/0/24

Port link-type trunk

Port trunk permit vlan all


确认参数指令:  dis vlan 10 20  30 ;

查看 trunk 接口指令:    dis  int e1/0/24


路由R2621

单臂路由先进行拆分

Int eth0.1

Vlan-type dot1q vid 10

Ip add 192.168.10.1 24

Int eth0.2

Vlan-type dot1q vid 20

Ip add 192.168.20.1 24

Int eth0.3

Vlan-type dot1q vid 30

Ip add 192.168.30.1 24

q

选择中继功能配置(进入两个分支端口开始选作中继)

Int eth0/0.1

Dhhcp select relay

Ip relay address 192.168.30.100

Int eth0/0.2

Dhhcp select relay

Ip relay address 192.168.30.100

q


注意

如果要用的防火墙代替路由器,要记得先取消防火墙的端口隔离功能

指令undo insulate ;,

所以就随便配置,别忘了最后把端口加上防火墙区域;