Linux 搭建 dhcp 服务器

一、简介

DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于为计算机和其他网络设备分配 IP 地址以及其他网络配置信息。它允许网络中的设备自动获取 IP 地址,而无需手动配置每个设备的 IP 地址。

DHCP的工作原理如下:

  1. 设备启动时,它会发送一个 DHCP 请求广播,请求获取 IP 地址和其他网络配置信息。
  2. DHCP 服务器接收到广播请求后,从预先配置的地址池中选择一个可用的 IP 地址,并将其分配给设备。
  3. DHCP 服务器还可以提供其他网络配置信息,例如子网掩码、默认网关、DNS 服务器等。
  4. 设备接收到 DHCP 服务器的响应后,将使用分配的 IP 地址和其他配置信息配置自己的网络连接。

二、Centos安装dhcp

1. 安装

yum update && yum -y install dhcp

2. 配置

使用如下命令可以查看 dhcp 相关文件。

rpm -ql dhcp

需要修改 /etc/dhcp/dhcpd.conf 为如下内容,需要配置的一般是子网即 subnet 那块内容。

# 指定下发的dns
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
# 租约时间
default-lease-time 600;
# 最大租约时间
max-lease-time 7200;
# DHCP服务器在确认租约时是否尝试进行DNS更新
ddns-update-style none;
# 指定为权威DHCP服务
authoritative;
# 用于将 DHCP 日志消息发送到不同的日志文件,但要完成重定向,还需要修改 syslog.conf 文件
#log-facility local7;
# 子网示例,指定了 IP 地址范围、域名服务器(domain-name-servers)、域名(domain-name)、子网掩码(subnet-mask)、路由器(routers)、广播地址(broadcast-address)以及租约时间(lease-time)等选项
#subnet 10.5.5.0 netmask 255.255.255.224 {
#  range 10.5.5.26 10.5.5.30;
#  option domain-name-servers ns1.internal.example.org;
#  option domain-name "internal.example.org";
#  option subnet-mask 255.255.255.224;
#  option routers 10.5.5.1;
#  option broadcast-address 10.5.5.31;
#  default-lease-time 600;
#  max-lease-time 7200;
#}
# 定义一个子网
subnet 192.168.1.0 netmask 255.255.255.0 {
  interface eth0;
  range 192.168.1.100 192.168.1.200;
  option routers 192.168.1.1;
}
# 针对特定主机的配置
#host passacaglia {
#  hardware ethernet 0:0:c0:5d:bd:95;
#  filename "vmunix.passacaglia";
#  server-name "toccata.example.com";
#}
#host fantasia {
#  hardware ethernet 08:00:07:26:c0:a5;
#  fixed-address fantasia.example.com;
#}
# 根据客户端的类别为其分配不同的网络地址,以满足特定类别的客户端的需求。
#class "foo" {
#  match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
#}
#shared-network 224-29 {
#  subnet 10.17.224.0 netmask 255.255.255.0 {
#    option routers rtr-224.example.org;
#  }
#  subnet 10.0.29.0 netmask 255.255.255.0 {
#    option routers rtr-29.example.org;
#  }
#  pool {
#    allow members of "foo";
#    range 10.17.224.10 10.17.224.250;
#  }
#  pool {
#    deny members of "foo";
#    range 10.0.29.10 10.0.29.230;
#  }
#}

3. 启动

设置开机自启动并现在立即启动。

systemctl enable dhcpd --now

三、Ubuntu安装dhcp

1. 安装

systemctl enable dhcpd --now

查看相关文件。

dpkg -L isc-dhcp-server

2. 配置

配置和 centos 配置一样,但是可以通过编辑 /etc/default/isc-dhcp-server 文件指定监听网卡。

3. 启动

设置开机自启动并现在立即启动。

systemctl enable isc-dhcp-server --now

四、Docker安装dhcp

docker run -d \
--name=dhcp \
-v /home/docker/dhcp:/var/lib/dhcp/ \
-v /home/docker/dhcp/dhcpd.conf:/etc/dhcp/dhcpd.conf \
--net=host \
--restart=always \
sirferdek/isc-dhcp-server

需要在 /home/docker/dhcp 目录下创建 dhcpd.conf,并填写必要的配置,还要创建数据库文件 dhcpd.leases 文件,该文件可以为空。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容