这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

网络

配置PVE的网络

1 - 网络设备的命名约定

PVE网络中网络设备的命名约定

参考:

https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_network_configuration

3.3.2. Naming Conventions 一节。

命名约定

目前对设备名称使用以下命名约定:

  • 以太网设备:en*,systemd 网络接口名称。此命名方案用于自版本 5.0 以来的新 Proxmox VE 安装。
  • 以太网设备:eth[N],其中 0 ≤ N (eth0, eth1, …)此命名方案用于在5.0版本之前安装的Proxmox VE主机。升级到 5.0 时,名称将保持原样。
  • 网桥名称:vmbr[N],其中 0 ≤ N ≤ 4094 (vmbr0 - vmbr4094)
  • bond:bond[N],其中 0 ≤ N (bond0, bond1, …)
  • VLAN:只需将 VLAN 编号添加到设备名称中,用句点分隔(eno1.50、bond1.30)

下面是一个默认安装后的 /etc/network/interfaces 文件内容:

auto lo
iface lo inet loopback

iface enp7s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.0.18/24
        gateway 192.168.0.1
        bridge-ports enp7s0
        bridge-stp off
        bridge-fd 0

iface enp179s0 inet manual

iface enp179s0d1 inet manual

iface enp101s0 inet manual

iface enp101s0d1 inet manual

systemd 网络接口名称

Systemd 对以太网网络设备使用两个字符前缀 en。接下来的字符取决于设备驱动程序以及哪个架构首先匹配的事实。

  • o<index>[n<phys_port_name>|d<dev_port>] — 板载设备
  • s[<slot>f<function>][n<phys_port_name>|d<dev_port>] — 按热插拔 ID 划分的设备
  • [P<domain>]p<bus>s[<slot>f]<function>[n<phys_port_name>|d<dev_port>] — 按 bus id 划分的设备
  • x<MAC> — 按 MAC 地址划分的设备

最常见的模式是:

  • eno1 — 是第一个板载网卡
  • enp3s0f1 — 是 pcibus 3 插槽 0 上的网卡,并使用网卡功能 1。

有关详细信息,请参阅 可预测的网络接口名称

2 - ifupdown2工具

使用 ifupdown2 配置PVE网络

参考:

https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_network_configuration

使用推荐的 ifupdown2 软件包(自Proxmox VE 7.0以来的新安装默认),可以在不重新启动的情况下应用网络配置更改。如果通过 GUI 更改网络配置,则可以单击“应用配置”按钮。这会将更改从暂存接口.new 文件移动到 /etc/network/interfaces 并实时应用它们。

下面是自带的 ifupdown2 软件包的版本情况:

ifup --version
info: executing /usr/bin/dpkg -l ifupdown2
ifupdown2:3.2.0-1+pmx3

ifdown --version
info: executing /usr/bin/dpkg -l ifupdown2
ifupdown2:3.2.0-1+pmx3

3 - 网桥

PVE网络中的网桥

参考:

https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_network_configuration

3.3.4. Default Configuration using a Bridge 一节。

网桥

网桥就像在软件中实现的物理网络交换机。所有虚拟geust 可以共享单个网桥,也可以创建多个网桥来分隔网络域。每个主机最多可以有 4094 个网桥。

安装程序会创建一个名为 vmbr0 的单个网桥,该网桥连接到第一个以太网卡。/etc/network/interfaces 中的相应配置可能如下所示:

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.10.2/24
        gateway 192.168.10.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

虚拟机的行为就像它们直接连接到物理网络一样。反过来,网络将每个虚拟机视为具有自己的 MAC,即使只有一根网络电缆将所有这些 VM 连接到网络也是如此。

4 - 路由

PVE网络中的路由

参考:

https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_network_configuration

3.3.5. Routed Configuration 一节。

路由

大多数托管服务提供商不支持上述设置(网桥)。出于安全原因,一旦在单个接口上检测到多个 MAC 地址,它们就会禁用网络。

可以通过单个接口“路由”所有流量来避免此问题。这可确保所有网络数据包使用相同的 MAC 地址。

一种常见情况是,你有一个公共 IP(在本例中假定为 198.51.100.5),以及一个用于 VM 的额外 IP 块 (203.0.113.16/28)。对于此类情况,我们建议进行以下设置:

auto lo
iface lo inet loopback

auto eno0
iface eno0 inet static
        address  198.51.100.5/29
        gateway  198.51.100.1
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up echo 1 > /proc/sys/net/ipv4/conf/eno0/proxy_arp


auto vmbr0
iface vmbr0 inet static
        address  203.0.113.17/28
        bridge-ports none
        bridge-stp off
        bridge-fd 0

5 - NAT

PVE网络中的NAT

参考:

https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_network_configuration

3.3.6. Masquerading (NAT) with iptables 一节。

NAT

伪装(Masquerading)允许只有专用 IP 地址的 guest 通过将主机 IP 地址用于传出流量来访问网络。iptables 会重写每个传出数据包,使其显示为源自主机,并相应地重写响应以路由到原始发送方。

安装程序会创建一个名为 vmbr0 的单个网桥,该网桥连接到第一个以太网卡。/etc/network/interfaces 中的相应配置可能如下所示:

auto lo
iface lo inet loopback

auto eno1
#real IP address
iface eno1 inet static
        address  198.51.100.5/24
        gateway  198.51.100.1

auto vmbr0
#private sub network
iface vmbr0 inet static
        address  10.10.10.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0

        post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE

6 - Bond

PVE网络中的Bond

参考:

https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_network_configuration

3.3.7. Linux Bond 3.3.7. Linux Bond 一节。

Bond

Bond(也称为 NIC 组合或链路聚合)是一种将多个 NIC 绑定到单个网络设备的技术。可以实现不同的目标,例如使网络容错,提高性能或两者兼而有之。

高速硬件(如光纤通道)和相关交换硬件可能非常昂贵。通过执行链路聚合,两个 NIC 可以显示为一个逻辑接口,从而实现双倍速度。这是大多数交换机支持的本机 Linux 内核功能。如果您的节点有多个以太网端口,您可以通过将网络电缆连接到不同的交换机来分配故障点,并且在出现网络故障时,绑定连接将故障转移到一根电缆或另一根电缆。

聚合链接可以改善实时迁移延迟并提高Proxmox VE群集节点之间的数据复制速度。

有 7 种 bond 模式:

  • Round-robin (balance-rr):按顺序从第一个可用网络接口 (NIC) 到最后一个网络接口从属服务器传输网络数据包。此模式提供负载平衡和容错。
  • Active-backup (active-backup): bond中只有一个 NIC 从属设备处于活动状态。当且仅当活动从站发生故障时,另一个从站才会变为活动状态。单个逻辑绑定接口的 MAC 地址仅在一个 NIC(端口)上外部可见,以避免网络交换机失真。此模式提供容错。
  • Broadcast (broadcast): 在所有从属网络接口上传输网络数据包。此模式提供容错。
  • IEEE 802.3ad 动态链路聚合 (802.3ad)(LACP):创建共享相同速度和双工设置的聚合组。根据 802.3ad 规范利用活动聚合器组中的所有从属网络接口。
  • 自适应传输负载平衡(balance-tlb):不需要任何特殊网络交换机支持的 Linux 绑定驱动程序模式。传出网络数据包流量根据每个网络接口从属设备上的当前负载(相对于速度计算)进行分配。传入流量由一个当前指定的从属网络接口接收。如果此接收从站发生故障,另一个从站将接管发生故障的接收从站的MAC地址。
  • 自适应负载平衡 (balance-alb):包括用于 IPV4 流量的 balance-tlb 和接收负载平衡 (rlb),不需要任何特殊的网络交换机支持。接收负载平衡是通过 ARP 协商实现的。绑定驱动程序在输出时拦截本地系统发送的 ARP 回复,并使用单个逻辑绑定接口中其中一个 NIC 从属设备的唯一硬件地址覆盖源硬件地址,以便不同的网络对等方对其网络数据包流量使用不同的 MAC 地址。

如果您的交换机支持 LACP (IEEE 802.3ad) 协议,则我们建议使用相应的绑定模式 (802.3ad)。否则,通常应使用主动备份模式。

对于群集网络 (Corosync),我们建议使用多个网络对其进行配置。Corosync 不需要网络冗余绑定,因为如果网络无法使用,它可以自行在网络之间切换。