去年自己攒了一台 E5 2680v4 * 2, 16G RECC * 8
的机器,一开始主要作为远程开发机 & Docker-Compose。
最近跑 k3s 集群并把 Docker-Compose 的服务迁到 k3s 上,于是重新规划系统资源,本文记录在搭建过程中关于在PVE中网络的配置。
在配置虚拟网卡前建议使用 iperf3 或其他工具测试 Linux Bridge 提供的网络性能是否满足需求。
PVE 宿主安装 Open_vSwitch
,具体可参考官方文档。
apt update
apt install openvswitch-switch
宿主机的 System - Network
点击 Create 创建 OVS Bridge,默认名称应该是 vmbr1,可以调整或直接保存
到指定虚拟机的 Hardware 中添加 Network Device
虚拟机系统以 debian 10 为例,shell 进入虚拟机系统内。
# 查看网卡情况
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 4e:70:ec:64:03:41 brd ff:ff:ff:ff:ff:ff
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether a2:76:5e:67:9b:cc brd ff:ff:ff:ff:ff:ff
其中 ens18 是默认的 Linux Bridge 网卡,也就是vmbr0。ens19 是刚刚绑定的 OVS Bridge。
编辑网卡配置: sudo vim /etc/network/interfaces
,使两个网卡正常工作: vmbr0 用外部网络访问,vmbr1 用于虚拟机内部通信。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens18
iface ens18 inet dhcp
# This is an autoconfigured IPv6 interface
iface ens18 inet6 auto
# 设置 ens19
allow-hotplug ens19
iface ens19 inet static
# 绑定静态IP
address 10.0.0.2/24
gateway 10.0.0.1
netmask 255.255.255.0
up ip route del default dev ens19
其中,最后一个配置项: up ip route del default dev ens19
, 意思是:当该网卡被启用时,删除该网卡的 default 路由。 可以通过 ip route show
查看路由情况。
若不删除 ens19 的 default 路由,重启网络/系统后,虚拟机将无法访问外部网络。因为存在两张网卡,系统将生成两个 default 路由,所有流量将被 ens19 接管,由于 ens19 是内部网卡,无法访问外部网络,导致虚拟机也无法访问外部网络。
在任意两个虚拟机上安装iperf3
:
iperf3 -s
,运行 server 模式iperf3 -c 10.0.0.9 -t 10 -i 1
,其中 10.0.0.9 是前一台的 ens19 上的IPConnecting to host 10.0.0.9, port 5201
[ 5] local 10.0.0.9 port 50026 connected to 10.0.0.9 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 2.47 GBytes 21.2 Gbits/sec 0 1.48 MBytes
[ 5] 1.00-2.00 sec 2.27 GBytes 19.5 Gbits/sec 0 1.48 MBytes
[ 5] 2.00-3.00 sec 2.10 GBytes 18.0 Gbits/sec 0 1.65 MBytes
[ 5] 3.00-4.00 sec 2.01 GBytes 17.3 Gbits/sec 0 1.65 MBytes
[ 5] 4.00-5.00 sec 2.00 GBytes 17.2 Gbits/sec 0 1.80 MBytes
[ 5] 5.00-6.00 sec 2.04 GBytes 17.5 Gbits/sec 0 1.80 MBytes
[ 5] 6.00-7.00 sec 2.00 GBytes 17.1 Gbits/sec 0 1.80 MBytes
[ 5] 7.00-8.00 sec 2.01 GBytes 17.3 Gbits/sec 0 1.80 MBytes
[ 5] 8.00-9.00 sec 1.88 GBytes 16.1 Gbits/sec 0 1.80 MBytes
[ 5] 9.00-10.00 sec 1.93 GBytes 16.6 Gbits/sec 0 1.80 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 20.7 GBytes 17.8 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 20.7 GBytes 17.8 Gbits/sec receiver
iperf Done.