前言
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
目录
你可能需要看:
①在Centos快速搭建dhcp服务器,详细讲解
②Debian10常用国内源
一、系统环境
1.1、OS版本
root@nodeDebian:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
二、服务安装
2.1、源配置
阿里源官方教程
2.2、安装
配置完源之后,执行下面的命令进行安装
apt install isc-dhcp-server -y
安装完成之后,会提示无法启动服务,这是正常现象,因为dhcp需要根据自身环境进行配置
三、配置
3.1、配置isc-dhcp-server
1)默认内容及作用
首先查看该配置文件的默认内容
cat /etc/default/isc-dhcp-server
从结果可以看到,默认只有两个参数是没有注释,所以这是必须配置的,具体作用如下
-
INTERFACESv4="" #需要监听的IPV4设备
-
INTERFACESv6="" #需要监听的IPV6设备
2)配置方法
监听设备是必须的,但是监听协议却是可选的,由于现在都是使用IPV4,所以IPV6可以不进行配置。
首先需要获取设备名(网卡名),执行下面的命令
ip a
在这里我有两个物理网卡:
-
ens33
-
ens34
因为第一个网卡使用的是桥接,所以DHCP服务我不好操作,所以选择第二块网卡(NAT),命令如下:
sed -i 's/INTERFACESv4.*/INTERFACESv4=\"ens34\"/g' /etc/default/isc-dhcp-server
命令解析
ens34是我的网卡设备名,所以只需要把这个ens34改成自己的网卡设备名即可
修改之后内容如下:
3.2、配置格式
dhcpd.conf通常包括三部分:parameters(参数)、declarations (声明)和option(选项)。
3.2.1、parameters(参数)
作用:表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。
参数对照表
作用 | 参数释义 | |
ddns-update-style | 指定DHCP服务器对DNS服务器进行更新时采用的更新类型,可选参数:ad-hoc、interim、none; | ad-hoc方式基本上已经不再采用,interim表示DNS互动更新模式,none表示不支持动态更新,一般设置为none |
default-lease-time | 该参数的作用是定义默认的IP地址租约时间,其单位为秒。 | |
max-lease-time | :该参数用来指定最大租赁时间长度,单位是秒。 | |
:server-name | 通知DHCP客户服务器名称。 | |
hardware | 指定客户端的硬件接口类型和硬件地址。其格式如下: hardware ethernet 0:0:c0:5d:bd:95; | |
fixed-address | 指定为客户端分配一个或者多个固定IP地址,该参数只能出现在host声明语句中。 | 如果指定了多个IP地址,那么当客户端启动时,它会被分配到相应子网中的那个IP地址上。 |
3.3、配置dhcpd.conf
3.3.1、配置文件备份
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
3.3.2、场景模拟
主机网卡:
-
ens33:管理网卡
-
ens34:DHCP-SERVER网卡
DHCP服务要求:
-
使用DHCP-SERVER网卡(ens34)作为dhcp设备网卡
-
保留部分IP用于服务器使用(1-50)
-
固定DNS服务器地址
实现需求:
配置格式:
ddns-update-style none;
subnet ${子网:10.1.1.0} netmask ${子网掩码:255.255.255.0}{
range ${开始IP:10.1.1.100} ${10.1.1.200};
option subnet-mask ${子网掩码:255.255.255.0};
option routers ${网关地址:10.1.1.2};
option domain-name "${域名:dhcp.com}";
option domain-name-servers ${DNS服务器IP地址:114.114.114.114};
default-lease-time 3600;
max-lease-time 7200;
}
根据上面的需求那我的配置参数就是:
ddns-update-style none;
subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.100 10.1.1.200;
option subnet-mask 255.255.255.0;
option routers 10.1.1.2;
option domain-name "pipci.com";
option domain-name-servers 114.114.114.114;
default-lease-time 3600;
max-lease-time 7200;
}
配置完成之后,重启dhcp服务
systemctl restart isc-dhcp-server.service
3.3.3、验证
由于VM默认提供了DHCP服务,所以要先把这个dhcp服务关闭先
编辑->虚拟网络编辑器-
选择网卡模式->取消DHCP服务->应用
为了更好的验证,现在也把debian的DHCP服务关闭,然后让另一台虚拟机尝试获取IP地址
systemctl stop isc-dhcp-server.service
然后回到宿主机查看IP信息,此时宿主机无法获取IP地址
然后开启debian的DHCP服务
systemctl start isc-dhcp-server.service
至此,dhcp服务就配置完成了