DHCP服务器搭建

实验搭建DHCP服务器

做了搭建 DHCP 服务器的实验,中途碰到了许多问题,踩了好几个坑
记录一下搭建过程

安装 DHCP 服务器

Arch Linux 安装 DHCP 服务器

1
pacman -S dhcp

RHEL 安装 DHCP 服务器

1
yum install dhcp

Arch Linux 的 配置文件为 /etc/dhcpd.conf,而 RHEL 的配置文件为 /etc/dhcp/dhcpd.conf

搭建最简单的 DHCP 服务器

编辑配置文件,写入一下内容

1
2
3
4
5
6
7
8
9
10
11
default-lease-time 21600; #全局变量,默认租期时间
max-lease-time 43200; #最长租期时间
option domain-name-servers 172.16.10.10; #DNS 服务器
option subnet-mask 255.255.255.0; #子网掩码

subnet 172.16.10.0 netmask 255.255.255.0 { #网段
range 172.16.10.50 172.16.10.100; #IP地址范围
option routers 172.16.10.10; #网关
default-lease-time 600;
max-lease-time 7200;
}

开启 DHCP 服务,搭建完成

1
systemctl start dhcpd

搭建超级作用域

超级作用域就是可以同时分配多个网段的IP地址,将他们作为一个整体进行管理
编辑配置文件,写入一下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
default-lease-time 21600; #全局变量,默认租期时间
max-lease-time 43200; #最长租期时间
option domain-name-servers 172.16.10.10; #DNS 服务器
option subnet-mask 255.255.255.0; #子网掩码

shared-network 10And20 { #超级作用域名字
subnet 172.16.10.0 netmask 255.255.255.0 { #网段
range 172.16.10.50 172.16.10.100; #IP地址范围
option routers 172.16.10.10; #网关
default-lease-time 600;
max-lease-time 7200;
}
subnet 172.16.20.0 netmask 255.255.255.0 { #网段
range 172.16.20.50 172.16.20.100; #IP地址范围
option routers 172.16.10.10; #网关
default-lease-time 600;
max-lease-time 7200;
}
}

在搭建的时候,这两个网段还是要在一个局域网下
如果实在 VMWare 下配置的,将地址网段设置为 172.16.0.0/16 即可,还有就是在配置 DHCP 服务器的时候,记得把 VMWare 自带的 DHCP 关闭

配置完成后,重启 DHCP 服务即可

1
systemctl restart dhcpd

搭建 DHCP 中继代理

DHCP 中继代理很少直接拿服务器来搭建,大多数是搭建在路由器等交换设备上的,不过既然都尝试着搭建了一下,也做个记录吧

DHCP 服务器

编辑 DHCP 服务端的配置

1
2
3
4
5
6
7
8
9
10
11
default-lease-time 21600; #全局变量,默认租期时间
max-lease-time 43200; #最长租期时间
option domain-name-servers 172.16.10.10; #DNS 服务器
option subnet-mask 255.255.255.0; #子网掩码

subnet 172.16.20.0 netmask 255.255.255.0 {
range 172.16.20.50 172.16.20.100;
option routers 172.16.20.1; #网关,中继代理服务器在目标网段的网卡设置为这个 IP
default-lease-time 600;
max-lease-time 7200;
}

中继代理服务器设置两张网卡,一个网卡在 DHCP 服务器所在的网段,另一个在目标网段下
如果是在 VMWare 下配置的话,如下设置网卡

DHCP 服务器使用 vmnet1 网卡,中继代理服务器使用两张网卡,客户端使用 vmnet2 网卡,并将自动分配IP地址关闭,否则DHCP服务器将无法正确分配IP地址

DHCP 服务器添加一条从中继代理服务器到达目标网络的路由记录

1
ip route add 172.16.20.0/24 via 172.16.10.1

中继代理服务器

安装好 DHCP 服务后,开启路由转发功能

临时有效,重启后关闭

1
echo 1 > /proc/sys/net/ipv4/ip_forward

若需永久有效,编辑文件 /etc/sysctl.conf,修改如下配置

1
net.ipv4.ip_forward = 1

立即生效

1
sysctl -p

可以直接使用 dhcrelay 命令来启动中继代理服务,但是使用起来不太方便

1
dhcrelay -d --no-pid 172.16.10.10 #DHCP 服务器地址

所以编辑 /etc/systemd/system/dhcrelay.service 文件

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=DHCP Relay Agent Daemon
Documentation=man:dhcrelay(8)
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
ExecStart=/usr/sbin/dhcrelay -d --no-pid 172.16.10.10

[Install]
WantedBy=multi-user.target

启动 dhcrelay 服务

1
2
systemctl --system daemon-reload
systemctl restart dhcrelay

至此,中继代理服务配置完成


为了做这个实验,看了许多博客,途中翻到了大量复制粘贴的博客,顿时感到自己搭建这个博客是正确的,把有用的东西收集并整理,自己以后就可以很方便的回顾这些知识,而不需要再像大海捞针一般,从各种连错误一起复制的“镜像”博客中寻找需要的东西
系统的学习了 Linux 服务器后,才发现和我自己随便玩玩的差别还是很大的,学到了更多有用的知识 ✧٩(ˊωˋ*)و✧