PVE如何为多个网卡配置DHCP服务

需求

某个靶机作为web服务器需要添加双网卡,并且可通过dhcp获取192.168.1.0/24网段和192.168.2.0/24网段的IP地址。

方案

添加虚拟网桥

在PVE的网页端创建好2个虚拟网桥,vmbr2和vmbr3,并分别为其指定IP地址:

alt text

或者编辑/etc/network/interfaces文件添加网桥,修改完成后使用ifreload -a重载即可。

安装isc-dhcp-server

1
2
apt update
apt install isc-dhcp-server -y

监听接口

编辑/etc/default/isc-dhcp-server,将 INTERFACESv4 设置为需要监听的接口:

1
INTERFACESv4="vmbr2 vmbr3"

配置DHCP地址池

编辑 /etc/dhcp/dhcpd.conf,添加以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# vmbr2
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.1 192.168.1.253;
option routers 192.168.1.254;
option domain-name-servers 223.5.5.5, 223.6.6.6;
option subnet-mask 255.255.255.0;
}

# vmbr3
subnet 192.168.2.0 netmask 255.255.255.0
{
range 192.168.2.1 192.168.2.253;
option routers 192.168.2.254;
option domain-name-servers 223.5.5.5, 223.6.6.6;
option subnet-mask 255.255.255.0;
}

运行systemctl restart isc-dhcp-server使配置生效:

alt text

验证配置

为靶机添加网卡vmbr2和vmbr3:

alt text

然后进入靶机,查看IP获取情况即可:

alt text

联网配置

由于vmbr2和vmbr3没有绑定可上网的物理接口,因此这2网卡无法连接公网。但是vmbr0绑定卡了可上网的物理接口,所以可通过配置nat将流量转发给vmbr0处理:

1
sudo iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE

此方式无法解决域名解析问题,并且暂无解决办法。