实训目的

6、掌握LINUX下DHCP中继代理的配置方法

项目设计

一、配置DHCP中继代理

DHCP中继代理

DHCPRelay(DHCPR)DHCP中继 也叫做DHCP中继代理。DHCP中继代理,就是在DHCP服务器和客户端之间转发DHCP数据包。当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息。DHCP中继代理的数据转发,与通常路由转发是不同的,通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容。而DHCP中继代理接收到DHCP消息后,重新生成一个DHCP消息,然后转发出去。

在DHCP客户端看来,DHCP中继代理就像DHCP服务器;在DHCP服务器看来,DHCP中继代理就像DHCP客户端。
DHCP Relay
DHCPRelay(DHCPR)DHCP中继(也叫做DHCP中继代理)是一个小程序,其可以实现在不同子网和物理网段之间处理和转发dhcp信息的功能。
如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的ip地址。如果不在同一个物理网段,则需要DHCP Relay Agent(中继代理)。

DHCP relay 原理

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 的动态配置。
事实上,从开始到最终完成配置,需要多个这样的交互过程。
1 dhcp relay设备修改dhcp消息中的相应字段,把dhcp的广播包改成单播包,并负责在服务器与客户机之间转换。
2 netcore路由器(2x05)可以作为dhcp relay 代理。

1、配置DHCP服务器,删除超级作用域句,修改第二个作用域的DNS及网关为192.168.112.254,重启服务

[root@centos-a1 ~]# vim /etc/dhcp/dhcpd.conf
shared-network mmnl {# A slightly different configuration for an internal subnet.
subnet 192.168.111.0 netmask 255.255.255.0 {range 192.168.111.200 192.168.111.200;option domain-name-servers 192.168.111.2;option domain-name "mmnl.edu";option routers 192.168.111.2;option broadcast-address 192.168.111.255;default-lease-time 3600;max-lease-time 7200;
}
subnet 192.168.112.0 netmask 255.255.255.0 {range 192.168.112.200 192.168.112.250;option domain-name-servers 192.168.112.2;option domain-name "mmnl.edu";option routers 192.168.112.2;option broadcast-address 192.168.111.255;default-lease-time 3600;max-lease-time 7200;
}
[root@centos-a1 ~]# systemctl restart dhcpd

2、配置DHCP服务器网关192.168.111.254(指向中继外网卡)

[root@centos-a1 ~]# ip route show
default via 192.168.111.254 dev ens33 proto static metric 100
192.168.111.0/24 dev ens33 proto kernel scope link src 192.168.111.21 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

3、中继服务器(A2)关机后添加一块网卡(VMnet1),并设置VMnet8网卡地址192.168.111.254,DNS及网关为192.168.111.2;设置VMnet1地址192.168.112.254,测试网络连通情况

[stu@centos-a2 ~]$ ip addr
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:5c:d8:f8 brd ff:ff:ff:ff:ff:ffinet 192.168.111.254/24 brd 192.168.111.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::4202:5ba2:2c88:691f/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::23b:9aee:39c1:5d22/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::fd14:f6b2:3ff6:5c59/64 scope link noprefixroute valid_lft forever preferred_lft forever
5: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:5c:d8:02 brd ff:ff:ff:ff:ff:ffinet 192.168.112.254/24 brd 192.168.112.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet6 fe80::cbea:8779:f328:a129/64 scope link noprefixroute valid_lft forever preferred_lft forever

4、中继服务器(A2)安装DHCP软件包

5、中继服务器(A2)配置系统文件,开启路由转发功能,并应用生效,测试查看确认

ip_forward与路由转发
出于安全考虑,Linux系统默认是禁⽌数据包转发的。所谓转发即当主机拥有多于⼀块的⽹卡时,其中⼀块收到数据包,根据数据包的⽬的ip地址将
数据包发往本机另⼀块⽹卡,该⽹卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。
开启路由转发功能,实现两台不同⽹段的主机实现

[root@centos-a2 stu]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@centos-a2 stu]# sysctl -p
net.ipv4.ip_forward = 1
[root@centos-a2 stu]# sysctl -a | grep forward
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.ens33.forwarding = 1
net.ipv4.conf.ens33.mc_forwarding = 0
net.ipv4.conf.ens37.forwarding = 1
net.ipv4.conf.ens37.mc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.virbr0.forwarding = 1
net.ipv4.conf.virbr0.mc_forwarding = 0
net.ipv4.conf.virbr0-nic.forwarding = 1
net.ipv4.conf.virbr0-nic.mc_forwarding = 0
net.ipv4.ip_forward = 1            #已开启
net.ipv4.ip_forward_use_pmtu = 0
sysctl: reading key "net.ipv6.conf.all.stable_secret"
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.mc_forwarding = 0
sysctl: reading key "net.ipv6.conf.default.stable_secret"
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.mc_forwarding = 0
sysctl: reading key "net.ipv6.conf.ens33.stable_secret"
net.ipv6.conf.ens33.forwarding = 0
net.ipv6.conf.ens33.mc_forwarding = 0
sysctl: reading key "net.ipv6.conf.ens37.stable_secret"
net.ipv6.conf.ens37.forwarding = 0
net.ipv6.conf.ens37.mc_forwarding = 0
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.mc_forwarding = 0
sysctl: reading key "net.ipv6.conf.virbr0.stable_secret"
net.ipv6.conf.virbr0.forwarding = 0
net.ipv6.conf.virbr0.mc_forwarding = 0
sysctl: reading key "net.ipv6.conf.virbr0-nic.stable_secret"
net.ipv6.conf.virbr0-nic.forwarding = 0
net.ipv6.conf.virbr0-nic.mc_forwarding = 0
[root@centos-a2 stu]# ping 192.168.112.254
PING 192.168.112.254 (192.168.112.254) 56(84) bytes of data.
64 bytes from 192.168.112.254: icmp_seq=1 ttl=64 time=0.038 ms
64 bytes from 192.168.112.254: icmp_seq=2 ttl=64 time=0.043 ms
^C
--- 192.168.112.254 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.038/0.040/0.043/0.006 ms

6、中继服务器(A2)开启DHCP中继服务(dhcrelay)

dhcrelay命令
dhcrelay命令可以提供中继DHCP和BOOTP请求,从一个没有DHCP服务器的子网直接连接到其它子网内的一个或多个DHCP服务器。该命令在DHCP中继服务器上使用,同时支持DHCPv4/BOOTP和DHCPv6协议。
语法格式: dhcrelay [参数] [DHCP服务器]

[root@centos-a2 stu]# dhcrelay 192.168.111.21
Dropped all unnecessary capabilities.
Internet Systems Consortium DHCP Relay Agent 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/ens37/00:0c:29:5c:d8:02
Sending on   LPF/ens37/00:0c:29:5c:d8:02
Listening on LPF/virbr0/52:54:00:06:05:6b
Sending on   LPF/virbr0/52:54:00:06:05:6b
Listening on LPF/ens33/00:0c:29:5c:d8:f8
Sending on   LPF/ens33/00:0c:29:5c:d8:f8
Sending on   Socket/fallback

isc-dhcp监听网口的实现步骤
LPF
全称Linux Packet Filter,主要适用一般linux系统。接收/发送报文使用raw socket,并在接收报文时通过setsockopt()过滤指定端口的报文。dhcpv4使用67端口,v6则使用547。

7、用户客户端(A3)设置网卡模式为VMnet1,并重新获取IP地址,测试查看确认

8、检查DHCP服务器租约数据库文件以及系统日志,测试确认

[root@centos-a1 ~]# vim /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.2.5lease 192.168.112.200 {starts 6 2022/06/25 13:56:04;ends 6 2022/06/25 14:56:04;tstp 6 2022/06/25 14:56:04;cltt 6 2022/06/25 13:56:04;binding state active;next binding state free;rewind binding state free;hardware ethernet 00:0c:29:a5:96:12;client-hostname "centos7-a3";
}
lease 192.168.111.200 {starts 6 2022/06/25 14:21:46;ends 6 2022/06/25 15:21:46;tstp 6 2022/06/25 15:21:46;cltt 6 2022/06/25 14:21:46;binding state active;next binding state free;rewind binding state free;hardware ethernet 00:0c:29:5c:d8:f8;client-hostname "centos-a2";
}
server-duid "\000\001\000\001*I\315\211\000\014)iR\256";lease 192.168.112.200 {starts 6 2022/06/25 14:46:48;ends 6 2022/06/25 15:46:48;cltt 6 2022/06/25 14:46:48;binding state active;next binding state free;rewind binding state free;hardware ethernet 00:0c:29:a5:96:12;client-hostname "centos7-a3";
}[root@centos-a1 ~]# tail -f /var/log/messages
Jun 25 22:49:39 centos-a1 avahi-daemon[6161]: Invalid legacy unicast query packet.
Jun 25 22:49:39 centos-a1 avahi-daemon[6161]: Received response from host 192.168.111.1 with invalid source port 56697 on interface 'ens33.0'
Jun 25 22:49:39 centos-a1 avahi-daemon[6161]: Received response from host 192.168.111.1 with invalid source port 56698 on interface 'ens33.0'
Jun 25 22:49:39 centos-a1 avahi-daemon[6161]: Received response from host 192.168.111.1 with invalid source port 56697 on interface 'ens33.0'
Jun 25 22:49:39 centos-a1 avahi-daemon[6161]: Invalid legacy unicast query packet.
Jun 25 22:49:39 centos-a1 avahi-daemon[6161]: Invalid legacy unicast query packet.
Jun 25 22:49:39 centos-a1 avahi-daemon[6161]: Invalid legacy unicast query packet.
Jun 25 22:49:40 centos-a1 avahi-daemon[6161]: Received response from host 192.168.111.1 with invalid source port 56697 on interface 'ens33.0'
Jun 25 22:49:41 centos-a1 avahi-daemon[6161]: Received response from host 192.168.111.1 with invalid source port 56697 on interface 'ens33.0'
Jun 25 22:49:43 centos-a1 avahi-daemon[6161]: Received response from host 192.168.111.1 with invalid source port 56697 on interface 'ens33.0'
Jun 25 22:50:01 centos-a1 systemd: Started Session 13 of user root.
Jun 25 22:50:03 centos-a1 dhcpd: DHCPREQUEST for 192.168.112.200 from 00:0c:29:a5:96:12 (centos7-a3) via 192.168.112.254
Jun 25 22:50:03 centos-a1 dhcpd: DHCPACK on 192.168.112.200 to 00:0c:29:a5:96:12 (centos7-a3) via 192.168.112.254

补习

网关——百度百科

网关

大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway) [1] 就是一个网络连接到另一个网络的“关口”。也就是网络关卡。
网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连 [1] 。
【说明:由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP】

那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)与主机的IP 地址作 “与” 运算的结果不同判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。这就是网络A向网络B转发数据包的过程。\

设你的名字叫小不点(很小,这里你就是一个url地址,指向某个网页资源),你住在一个大院子里,你的邻居有很多小伙伴,父母是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声

他的名字,他听到了就会回应你,并且跑出来跟你玩。
但是你家长不允许你走出大门,你想与外界发生的一切联系,都必须由父母(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家里也有父母(小明的网关)。但是你不知道小明家的电话号码,不过你的班主任老师有一份你们班全体同学的名单和电话号码对照表,你的老师就是你的DNS服务器。于是你在家里和父母有了下面的对话:
小不点:妈妈(或爸爸),我想找班主任查一下小明的电话号码行吗?家长:好,你等着。(接着你家长给你的班主任拨了一个电话,问清楚了小明的电话)问到了,他家的号码是211.99.99.99
小不点:太好了!妈(或爸),我想找小明,你再帮我联系一下小明吧。
家长:没问题。(接着家长向电话局发出了请求接通小明家电话的请求,最后一关当然是被转接到了小明家家长那里,然后他家长把电话给转到小明).
就这样你和小明取得了联系。
如果搞清了什么是网关,默认网关也就好理解了。就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。默认网关。默认网关一般填写192.168.x.1

Linux实训项目——第十章(下):配置DHCP中继服务相关推荐

  1. Linux实训项目——第九章:配置与管理Samba服务器

    Samba--跨平台网络文件共享系统 概述 Samba系统--百度百科 什么是samba Samba--维基百科 是种用来让UNIX系列的作业系统与微软Windows作业系统的SMB/CIFS(Ser ...

  2. linux配置dhcp中继服务

    linux配置dhcp中继服务 最近开始学习linux下面一些服务的配置及使用,今天刚好讲到dhcp服务,并在双星唐老师指导下进行了dhcp中继服务的实验.本次实验使用3台rhel6.3的虚拟机,进行 ...

  3. linux实训项目——飞鸽(一)

    目前完成UDP广播上线.用户间对话功能. 目录 目录 前言 一.基础知识 二."飞鸽"运行流程 1.用户运行程序后先设置用户名,即上线后别人看到的名字. 2.上线后进行UDP广播, ...

  4. Linux实训项目二 用户和组的管理

    实训项目 用户和组的管理 一.实训目的 ● 熟悉Linux用户的访问权限. ● 掌握在Linux系统中增加.修改.删除用户或用户组的方法. ● 掌握用户账户管理及安全管理. 二.项目背景 某公司有60 ...

  5. Linux实训项目——第十一章:基础DNS服务器与主从同步

    域名系统(DNS)的起源与发展.原理及解析流程 BIND是什么 WHO WHEN WHAT WHY WHERE HOW BUT 实训目的 1.掌握LINUX系统下主DNS服务器的配置 2.掌握LINU ...

  6. linux下配置DHCP中继代理

    假设一台计算机做软路由,有三个网卡,连接3个不同的网段,192.168.1.1/24, 192.168.2.1/24,192.168.3.1/24;其中192.168.1.1/24这个网段有一个DHC ...

  7. Cisco配置DHCP中继服务

    作用于网络中的终端通过发送DHCP广播的方式来获取IP地址信息.由于VLAN隔离广播,当终端与DHCP服务器不在同一广播域时,就需要用到DHCP中继. 路由器: Router(config)#inte ...

  8. 实训项目“你画我猜”总结_前端篇

    为期4周的实训就要结束了,感谢团队中的每一名同学,才有了我们今天的成果.我们这个5人小团队(产品一位,测试一位,开发三位(两名后台,一名前端)),来自不同的学校,带着刚毕业的学生气一起组成了我们的&q ...

  9. 山西高平地域文化导入美术设计实训项目的实践

    地域文化,是指某个地域的人们在特定的范围内,在自然环境的基础上,在长期的生产生活中创造的.人类活动的产物.山西高平是神农炎帝的故里,长平之战的发生地,是一个有着很深文化积淀的新兴城市,行政区域是国土面 ...

最新文章

  1. 夏天到了用TypeScript给自己开个小空调吧
  2. 压缩感知的阶段性总结
  3. 转HTML中的table转为excel
  4. java中map可以为空吗_检查NavigableMap是否在Java中为空
  5. 【SQL】查询DateTime类型的某一年数据
  6. mongodb 启动_精心总结--mongodb分片集群启动与关闭
  7. H - Great Cells Gym - 101194H(数学推导/思维)
  8. 通过Jedis API使用排序集
  9. 【机器学习】一般线性回归
  10. oracle参数文件spfile和pfile
  11. 怎么用计算机同步文件夹,DSynchronize同步电脑本地文件夹教程
  12. 二进制空间权重矩阵_Stata_ 空间权重矩阵的构建
  13. Java实现百度富文本编辑器UEditor
  14. Fedora13下编译libfetion的问题和解决办法
  15. 福师电子计算机主要以,福师《计算机应用基础》在线作业(6) 参考资料
  16. [TJOI2019]唱、跳、rap和篮球
  17. 仙剑奇侠传3 全开注册表改法
  18. 【每日一题】89. 格雷编码
  19. 1.Linux中超频及cpufreq相关汇总
  20. 从15亿到5000亿 eBay收购PayPal成硅谷传奇

热门文章

  1. WordPress主题 大前端 阿里百秀 XIU 小清新CMS高级主题[更新v4.0]
  2. Chapter6 面向对象编程(python for financial 学习笔记)
  3. 非主流伤感网名_好奇怪每次我隐身你才上线
  4. 映像文件处理——PowerISO v4.7 中文版
  5. nginx worker_processes 配置
  6. 一起来探讨Javascript垃圾收集机制
  7. hive创建永久函数失败,Failed to register youmeng.finderrorcount using class com.jinghang.hive.MyCoustom
  8. 人气爆棚 加速科技惊艳亮相ICCAD 2021
  9. 实用javascript
  10. 零基础程序员想要学好.Net,跟着这7个步骤学习就可以了