Proxmox Simple SDN配置
2024-2-21 13:52:0 Author: blog.upx8.com(查看原文) 阅读量:15 收藏

得益于ProxmoxVE的SDN功能,现在ProxmoxVE可以更方便的开通和管理NAT小鸡了,不再需要手动配置NAT相关的规则,直接在ProxmoxVE的WEB界面就能实现SNAT。除此之外还支持DHCP,并且ProxmoxVE还将DHCP与IP地址管理(IPAM)功能进行了整合。

从ProxmoxVE 8.1开始默认安装核心软件定义网络(SDN)软件包,如果你是从旧版本升级上来的,则需要在每个节点上安装libpve-network-perl软件包:

apt update
apt -y install libpve-network-perl

从ProxmoxVE 7.0及更高版本起默认安装ifupdown2软件包,如果你是从旧版本升级上来的,则还需要安装ifupdown2软件包:

apt -y install ifupdown2

此外还需要确保/etc/network/interfaces配置文件内有如下内容:

source /etc/network/interfaces.d/*

如需要使用DHCP功能,则还需要安装dnsmasq:

apt -y install dnsmasq

之后关闭dnsmasq默认的服务,proxmox会接管dnsmasq:

systemctl disable --now dnsmasq

转到“数据中心”->“SDN”->“区域”,创建一个新的简单(Simple)区域,要激活DHCP功能,你还需要在高级设置中勾选“自动DHCP”选项:

转到“VNets”,创建新的VNet(vnet1在本文的示例中)创建VNet时,“区”选择我们在上一步中创建的区域:

在同一界面中,现在需要在先前创建的VNet中创建子网。这可以通过选择VNet并单击右侧子网界面中的“创建”来完成。

输入你选择的本地子网(在本文的示例中10.0.0.0/24)。

你还需要指定一个IP当作网关,否则DHCP将无法工作(10.0.0.1在本文的示例中)。勾选“SNAT”选项以便为此VNet启用SNAT:

要使用DHCP,我们还需要为此子网创建DHCP范围,这可以通过切换到子网创建对话框中的“DHCP范围”选项卡来完成。我选择10.0.0.10和10.0.0.200作为DHCP范围的起始和结束地址:

现我们需要保存刚才的配置,转到“SDN”界面单击“应用”来完成保存:

确保网络重新加载任务成功完成。如果它完成且没有任何错误或警告,则说明一切正常:

[可选]防火墙配置。如果你启用了PVE的防火墙,则需要添加以下几条规则。

允许DHCP转发流量:

允许DNS查询流量:

[重要]为了避免把自己墙在外面,务必设置一个允许SSH流量的规则:

另外8006端口(PVEWEB面板)的流量也别忘记设置允许:

需要注意的是PVE的防火墙分为3个部分:数据中心级别、节点级别、VM级别。上面的规则建议直接在数据中心级别的防火墙设置:

接下来是创建VM时候的网络配置。我这里使用了系统模板,且模板使用了cloud-init来初始化。

首先你可以按照这篇文章来创建一个系统模板:https://lala.im/8911.html

在系统模板内添加一个网络设备,桥接vnet1(这是之前创建Vnets时指定的ID):

qm set 20000 --net1 virtio,bridge=vnet1

配置系统模板内的cloud-init使用dhcp来获取ipv4:

qm set 20000 --ipconfig1 ip=dhcp

克隆一台VM,检查VM内的网络和DNS:

如果不使用系统模板而是直接创建新VM,则在网络配置这里指定桥接vnet1即可:

如果选择创建CT(LXC容器),则在网络配置这里指定桥接vnet1,并且选中IPv4 DHCP:

检查CT内的网络和DNS:

现在你可以轻松在PVE的IPAM界面管理VM和CT的IP地址:


文章来源: https://blog.upx8.com/4063
如有侵权请联系:admin#unsafe.sh