You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在Ubuntu 22.04路由器上部署DHCP服务器:Netplan是否参与其中?

在Ubuntu 22.04路由器上部署DHCP服务器:Netplan是否参与其中?

我来帮你理清Netplan和DHCP服务的关系,以及如何在你的Ubuntu 22.04路由器上部署DHCP并配置MAC-IP绑定:

Netplan与DHCP服务的分工

首先明确:Netplan完全不负责DHCP服务的配置或提供。它的核心作用是管理你的系统网络接口——比如你现在配置的桥接br0、各个网卡的DHCP开关、静态IP地址这些,都是Netplan的职责范畴。而DHCP服务是由独立的软件组件来实现的,和Netplan是相互独立的,但Netplan配置的网络接口是DHCP服务运行的基础(比如你的br0就是DHCP服务要监听的LAN/WAP侧接口)。

部署DHCP服务器的具体步骤(以常用的isc-dhcp-server为例)

1. 安装DHCP服务器

先更新软件源并安装服务:

sudo apt update && sudo apt install isc-dhcp-server

2. 指定DHCP服务监听的接口

编辑/etc/default/isc-dhcp-server文件,找到INTERFACESv4选项,设置为你的桥接接口br0

INTERFACESv4="br0"

3. 配置DHCP地址池与网络参数

编辑主配置文件/etc/dhcp/dhcpd.conf,根据你br0上的两个网段(10.1.0.0/22和10.2.0.0/22)添加以下配置:

# 全局基础配置
option domain-name "your-local-domain"; # 替换成你的本地域名(可选)
option domain-name-servers 10.1.0.1, 8.8.8.8; # 可以用本地路由器作为DNS,也加个公共DNS备用
default-lease-time 600; # 默认租期10分钟
max-lease-time 7200; # 最大租期2小时
authoritative; # 声明这是LAN内的权威DHCP服务器,避免冲突

# 配置10.1.0.0/22网段的DHCP参数
subnet 10.1.0.0 netmask 255.255.252.0 {
  range 10.1.0.100 10.1.3.254; # 动态分配的IP范围,避开你要静态绑定的IP
  option routers 10.1.0.1; # 网关地址就是br0的对应IP
  option subnet-mask 255.255.252.0;
}

# 配置10.2.0.0/22网段的DHCP参数(如果需要给这个网段分配IP的话)
subnet 10.2.0.0 netmask 255.255.252.0 {
  range 10.2.0.100 10.2.3.254;
  option routers 10.2.0.1;
  option subnet-mask 255.255.252.0;
}

4. 配置MAC地址与IP的静态绑定

dhcpd.conf文件的末尾,为需要固定IP的设备添加主机条目,格式如下:

# 示例:绑定"living-room-tv"的MAC到10.1.0.10
host living-room-tv {
  hardware ethernet aa:bb:cc:dd:ee:ff; # 替换成设备的实际MAC地址
  fixed-address 10.1.0.10; # 你想要分配的固定IP
}

# 可以添加多个这样的条目,对应不同设备
host office-pc {
  hardware ethernet 11:22:33:44:55:66;
  fixed-address 10.1.0.15;
}

5. 启动并启用DHCP服务

完成配置后,启动服务并设置开机自启:

sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server

如果启动失败,可以查看日志排查问题:

sudo journalctl -u isc-dhcp-server

额外注意事项

  • 确保你的Netplan配置已经生效:运行sudo netplan apply确认br0接口已经正确获取到设置的静态IP。
  • 避免DHCP服务冲突:如果你的系统上之前安装了dnsmasq或其他DHCP相关服务,要先停止并禁用它们,防止端口冲突。
  • 防火墙配置:如果启用了ufw,要允许DHCP的UDP端口(67和68):
    sudo ufw allow in from any to any port 67,68 proto udp
    

备注:内容来源于stack exchange,提问作者Bram

火山引擎 最新活动