文章目录
一、DHCP中继原理
-
当企业的内部网络规模较大时,通常被划分为多个不同的子网,网络内配置了VLAN,VLAN能隔离广播,而DHCP协议使用广播
-
例如:
DHCP 服务器在 VLAN 100 中,就只有 VLAN 100 内的客户机能从 DHCP 服务器那里获取 IP 地址。如果 VLAN 2 或 VLAN 3 的客户机就无法通过这台 DHCP 服务器来获取 IP 地址。 -
针对以上问题,一般有两种解决方案:
- 为每个网段安装一台 DHCP 服务器,但这种方式的弊端是:资源浪费与不利于管理;
- 在连接不同网段的设备上开启DHCP 中继功能,将DHCP 这种特殊的广播信息在VLAN之间转发,让其他 VLAN 的客户机也能从 DHCP 服务器获取 IP 地址,如图所示。
二、DHCP中继实验
2.1 实验需求
通过配置DHCP服务器,使VLAN 20 或 VLAN 30 的客户机通过这台 DHCP 服务器来获取 IP 地址。
2.2 DHCP中继配置命令
[SW1]dhcp enable '开启dhcp服务'
[SW1]int vlan 10 '进入vlanif 10 接口配置'
[SW1-Vlanif10]dhcp select relay '配置dhcp中继'
[SW1-Vlanif10]dhcp relay server-ip 192.168.100.100 '提供dhcp中继的IP地址为192.168.100.100'
2.3 DHCP中继实验环境
一台三层交换机,一台二层交换机,一台DHCP服务器,两台pc
2.4 实验过程
1.配置二层交换机SW2
<Huawei>undo terminal monitor '关闭终端告警或日志显示'
<Huawei>sys '进入系统失视图模式'
[Huawei]sysn SW2 '配置二层交换机名称为SW2'
[SW2]vlan batch 10 20 100 '创建vlan'
[SW2]int e0/0/2 '进入接口'
[SW2-Ethernet0/0/2]port link-type access '配置为access口'
[SW2-Ethernet0/0/2]port default vlan 10 '将接口划入vlan 10'
[SW2-Ethernet0/0/2]q '退出'
[SW2]int e0/0/3
[SW2-Ethernet0/0/3]port link-type access
[SW2-Ethernet0/0/3]port default vlan 20
[SW2-Ethernet0/0/3]q
[SW2]int e0/0/4
[SW2-Ethernet0/0/4]port link-type access
[SW2-Ethernet0/0/4]port default vlan 100
[SW2-Ethernet0/0/4]q
[SW2]int e0/0/1
[SW2-Ethernet0/0/1]port link trunk
[SW2-Ethernet0/0/1]port trunk allow-pass vlan all
[SW2-Ethernet0/0/1]q
2.配置二层交换机SW2
<Huawei>undo terminal monitor '关闭终端告警或日志显示'
<Huawei>sys '进入系统失视图模式'
[Huawei]sysn SW1 '配置二层交换机名称为SW1'
[SW1]vlan batch 10 20 100 '创建vlan'
[SW1]int g0/0/1 '进入接口'
[SW1-GigabitEthernet0/0/1]port link trunk '配置为trunk口'
[SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW1-GigabitEthernet0/0/1]q
[SW1]int vlan 10
[SW1-Vlanif10]ip add 192.168.10.1 24
[SW1-Vlanif10]q
[SW1]int vlan 20
[SW1-Vlanif20]ip add 192.168.20.1 24
[SW1-Vlanif20]q
[SW1]int vlan 100
[SW1-Vlanif100]ip add 192.168.100.1 24
[SW1-Vlanif100]q
[SW1]dhcp enable '开启dhcp服务'
[SW1]int vlan 10 '进入虚拟接口vlanif 10'
[SW1-Vlanif10]dhcp select relay '配置dhcp中继'
[SW1-Vlanif10]dhcp relay server-ip 192.168.100.100 '提供dhcp中继的IP地址为192.168.100.100'
[SW1-Vlanif10]q '退出'
[SW1]int vlan 20
[SW1-Vlanif20]dhcp select relay
[SW1-Vlanif20]dhcp relay server-ip 192.168.100.100
[SW1-Vlanif20]q
[SW1]int vlan 100
[SW1-Vlanif100]dhcp select relay
[SW1-Vlanif100]dhcp relay server-ip 192.168.100.100
[SW1-Vlanif100]q
3.配置CentOS 7 DHCP中继服务
'先连接网络(我自己连接的是NAT模式)'
[root@localhost ~]# rpm -q dhcp '查看有没有安装DHCP软件包'
未安装软件包 dhcp
[root@localhost ~]# yum -y install dhcp* '安装DHCP软件包'
'安装dhcp服务后更换VMnet3网卡(仅主机模式)'
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 '进入ens33网卡进行修改'
XY_METHOD=none
BROWSER_ONLY=no
BOOTPRO=static '启用地址协议设置为static:静态协议'
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=3cae1424-fc31-4f04-874b-e2bb66dfc8c1
DEVICE=ens33
ONBOOT=yes '系统启动时自动加载,改为yes'
IPADDR=192.168.100.100 '设置网卡IP地址'
NETWORK=255.255.255.0 '网卡子网掩码'
GATEWAY=192.168.100.1 '网卡网关地址'
DNS1=8.8.8.8 '域名解析服务地址'
':wq保存退出'
[root@localhost ~]# service network restart '重启网卡'
Restarting network (via systemctl): [ 确定 ]
[root@localhost ~]# ifconfig '查看网卡IP地址是否更改成功'
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.100 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::d80b:cb4a:4fe5:254b prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f4:24:29 txqueuelen 1000 (Ethernet)
RX packets 32441 bytes 47757573 (45.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8291 bytes 529703 (517.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
......
[root@localhost ~]# ping 192.168.100.1 '此时可以ping一下网关,可以ping通,Ctrl+C退出'
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
64 bytes from 192.168.100.1: icmp_seq=1 ttl=255 time=30.6 ms
64 bytes from 192.168.100.1: icmp_seq=2 ttl=255 time=41.7 ms
64 bytes from 192.168.100.1: icmp_seq=3 ttl=255 time=33.3 ms
[root@localhost ~]# ping 192.168.10.1
[root@localhost ~]# ping 192.168.20.1
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf '查看,复制模板/usr/share/doc/dhcp*/dhcpd.conf.example'
# see /usr/share/doc/dhcp*/dhcpd.conf.example
......
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf '将/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example中内容复制到/etc/dhcp/dhcpd.conf中'
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf '进入/etc/dhcp/dhcpd.conf修改’
':set nu显示行号'
27 subnet 192.168.10.0 netmask 255.255.255.0 { '从第一个subnet开始设置三台主机的IP地址'
28 range 192.168.10.128 192.168.10.200; '自动分配地址的地址池范围'
29 option routers 192.168.10.1; '网关'
30 option domain-name-servers 8.8.8.8; '域名'
31 }
32 subnet 192.168.20.0 netmask 255.255.255.0 {
33 range 192.168.20.128 192.168.20.200;
34 option routers 192.168.20.1;
35 option domain-name-servers 8.8.8.8;
36 }
37 subnet 192.168.100.0 netmask 255.255.255.0 {
38 range 192.168.100.128 192.168.100.200;
39 option routers 192.168.100.1;
40 option domain-name-servers 8.8.8.8;
41 }
[root@localhost ~]# systemctl start dhcpd '开启dhcp服务'
[root@localhost ~]# setenforce 0 '关闭核心防护'
[root@localhost ~]# iptables -F ‘清空防火墙规则’
4.实验验证
1、设置pc1为dhcp模式,点击应用
自动获取IP地址
可以ping通dhcp服务器
2、设置pc2为dhcp模式,点击应用
自动获取IP地址
可以ping通dhcp服务器
实验完成