我的服务器:
- 华擎 B450M/ac (RealTek 8111/8168/8411)
- 锐龙 5 3400G
- 64GB 系统内存
- Rosewill RC-411v3 (RealTek 8111/8168/8411)
我的电脑:
- 锐龙 7 2700X
- 32GB 系统内存
- MSI X470 Gaming Pro Carbon(英特尔 I211)
我正在尝试设置网络绑定我的服务器处于模式 6(balance-alb),并且大部分情况下我都能让它正常工作。我遇到一个问题,其中一个或两个网卡会随机获得 IPv4 和/或 IPv6 地址。我认为 IPv6 地址并不重要,但当它们获得 IPv4 地址时,它们会破坏绑定,我会失去与服务器的所有连接。我当前的配置如下;
network:
version: 2
renderer: networkd
ethernets:
enp5s0:
link-local: [ ]
#dhcp4: no
#dhcp6: no
enp4s0:
link-local: [ ]
#dhcp4: no
#dhcp6: no
bonds:
bond0:
addresses: [192.168.0.102/24]
gateway4: 192.168.0.1
nameservers:
addresses: [1.1.1.1, 1.0.0.1]
dhcp6: no
interfaces: [enp5s0, enp4s0]
parameters:
mode: balance-alb
mii-monitor-interval: 1
我尝试过 networkd 和 NetworkManager。我还尝试过 netplan 0.99 和 0.100。使用此配置无法禁用本地地址,尽管网络计划说应该。如何禁用这些接口上的本地地址?
编辑:删除了 dhcp 行,因为它们似乎什么都不做。更新一些细节以供重现。禁用 IPv6 似乎可以消除将 IPv4 地址添加到任一卡的问题。如果netplan apply
再次运行此修复程序,则再次失效。但是,有时在运行此修复程序后,两张卡都会在一段时间内无法获得 IP。这使我能够运行速度测试并证明其有效,但并非完美无缺。更改配置后,最好重新启动,但重新启动后不久,IP 就会添加到其中一张卡上。通常为 169.254.xx 这不会破坏所有内容,但平衡似乎会因同一次传输(上传或下载)而中断。例如,我同时上传和运行速度测试(两者都将数据发送到服务器)。其中一张卡不会接收任何数据,另一张卡将以 500mbit/s 的速度分割两个连接。当同时运行上传和下载时,这似乎不是问题。
更新:哎呀,我放弃了,重新安装了操作系统。我专门安装了 Ubuntu 20.04.1 LTS。安装了所有东西,并在上面的 netplan 配置中放入了东西。它就起作用了,我甚至不必启用绑定,它自己就启用了。自从我重新安装操作系统以来,两张卡都没有添加任何 IP。虽然我的问题已经解决,但我仍然不知道最初添加这些 IP 的是什么。好像另一个程序正在追溯添加 IP。我发现另一篇帖子也有人提到了这种怀疑。
答案1
请参阅下面的注释,因为额外的 IP 又回来了。所以我相信我找到了问题所在,以及如何阻止他们获取额外的 IP。
我把这个写成答案是因为当我尝试使用 netplan 时,我得到的连接不稳定,并且我的网卡上出现了额外的 IP。
在 20.04 LTS 上使用内核 5.4.0-54-generic。
使用ifupdown
和设置/etc/network/interfaces
文件,因为我把 netplan 全部转储到了一起。
安装ifupdown
和ifenslave
sudo apt install ifupdown ifenslave
删除了 netplan:
sudo apt remove netplan.io
接下来,我停止了systemd-networkd
和systemd-networkd.socket
:
systemctl stop systemd-networkd.service
systemctl stop systemd-networkd.socket
systemctl disable systemd-networkd.service
systemctl disable systemd-networkd.socket
检查/etc/modules
以下几行:
loop
lp
rtc
bonding
我也进行了设置,因此我不会对我的以太网卡使用预测命名。 我听别人说它可能不好,但对我来说它一直很有效。
将以下内容添加到/etc/default/grub
文件中,然后运行sudo update-grub
并重新启动以使更改生效。
GRUB_CMDLINE_LINUX_DEFAULT="nosplash net.ifnames=0 biosdevnames=0"
然后将我的接口添加到/etc/network/interfaces
绑定设置中balance-alb
:
# 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
auto eth0
iface eth0 inet manual
bond-master bond0
auto eth1
iface eth1 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
address 10.0.0.220
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.1
bond-mode balance-alb
bond-miimon 100
bond-slaves eth0 eth1
我也这样做了,所以我的resolv.conf
不再受存根或其他任何东西的控制。
sudo unlink /etc/resolv.conf
echo "nameserver 10.0.0.1" | sudo tee /etc/resolv.conf
您可以将名称服务器更改为您的路由器的名称,或者更改为想要使用 8.8.8.8。
您tee -a
还可以添加更多名称服务器resolv.conf
:
echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf
2021 年 2 月 25 日 注意: 我最近更新了我的系统,结果我的卡又开始接收额外的 IP。为了解决这个问题,我不得不denyinterfaces eth0 eth1
在文件中添加内容/etc/dhcpcd.conf
。下面是我的/etc/dhcpcd.conf
文件。 根据您的网络需要进行更改。
denyinterfaces eth0 eth1
interface bond0
static ip_address=10.0.0.220/24
static routers=10.0.0.1
static domain_name_servers=9.9.9.9 149.112.112.112
应用这些网络设置:
sudo /etc/init.d/networking restart
检查ifconfig
并检查/proc/net/bonding/bond0
ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 10.0.0.220 netmask 255.255.255.0 broadcast 10.0.0.255
ether bc:5f:f4:79:66:fe txqueuelen 1000 (Ethernet)
RX packets 85381 bytes 12752852 (12.7 MB)
RX errors 0 dropped 5 overruns 0 frame 0
TX packets 125655 bytes 156764973 (156.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether bc:5f:f4:79:66:fe txqueuelen 1000 (Ethernet)
RX packets 76259 bytes 10724189 (10.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12520 bytes 4905475 (4.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether c8:3a:35:d6:ec:a0 txqueuelen 1000 (Ethernet)
RX packets 9122 bytes 2028663 (2.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 113135 bytes 151859498 (151.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 55907 bytes 158911787 (158.9 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 55907 bytes 158911787 (158.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
和
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: bc:5f:f4:79:66:fe
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: c8:3a:35:d6:ec:a0
Slave queue ID: 0