已解决 - Ubuntu 16.04 lts 与 IEEE 802.3ad 动态链路聚合绑定

已解决 - Ubuntu 16.04 lts 与 IEEE 802.3ad 动态链路聚合绑定

Ubuntu 16.04 lts 服务器配备 4 个网卡,绑定在 IEEE 802.3ad 动态链路聚合上。

重新启动后,网络服务无法自动加载,必须使用以下方式手动启动sudo /etc/init.d/networking start

包括绑定在内的所有接口都具有自动加载功能/etc/network/interfaces

# 环回网络接口
自动档
iface lo inet 环回

# 主网络接口
自动 eth0
iface eth0 inet 手册
bond-master bond0

# 第二个网络接口
自动 eth1
iface eth1 inet 手册
bond-master bond0

# 第三个网络接口
自动 eth2
iface eth2 inet 手册
bond-master bond0

# 第四个网络接口
自动 eth3
iface eth3 inet 手册
bond-master bond0


# 绑定主网络接口
自动键0
iface bond0 inet 静态
        地址 192.168.1.201
        网络掩码 255.255.255.0
        网络 192.168.1.0
        广播 192.168.1.255
        网关 192.168.1.254
        dns 名称服务器 xx.xx.xx.x xx.xx.xx.xx
        dns 搜索 xxx.xxx.xxx.xx
        键合模式 4
        邦德-米蒙 100
        全部都是奴隶
        键主 eth1 eth2 eth3 eth0

这应该会在重启时启动网络服务,但事实并非如此。我该怎么做才能让网络在启动时启动?

编辑1

在此处输入图片描述

编辑2

输出dmesg | grep -i bond0

borgf003@CLD01:~$ dmesg | grep -i bond0
[ 12.110687] bond0:将 MII 监控间隔设置为 100
[ 12.121534] IPv6: ADDRCONF(NETDEV_UP): bond0: 链接尚未准备好
[ 12.191915] bond0: 添加从属 eno2
[ 12.348156] bond0: 将 eno2 用作具有下行链路的备份接口
[ 12.350247] bond0:添加从属 enp12s0f0
[ 12.608573] bond0: 将 enp12s0f0 用作具有下行链路的备份接口
[ 12.608598] bond0: 添加从属 enp12s0f1
[ 12.856531] bond0: 将 enp12s0f1 用作具有下行链路的备份接口
[12.856552]bond0:添加从属eno1
[ 12.980244] bond0: 将 eno1 用作具有下行链路的备份接口
[ 13.980065] bond0: 接口 eno2 的链路状态绝对正常,100 Mbps 全双工
[13.980071]bond0:现在运行时没有任何活动接口!
[ 13.980076] bond0: 接口 enp12s0f0 的链路状态绝对正常,100 Mbp 全双工
[ 14.080093] IPv6: ADDRCONF(NETDEV_CHANGE): bond0: 链路准备就绪
[ 14.280062] bond0: 接口 enp12s0f1 的链路状态绝对正常,100 Mbp 全双工
[ 14.680033] bond0: 接口 eno1 的链路状态绝对正常,100 Mbps 全双工
[ 194.727579] bond0: 删除从属 enp12s0f1
[ 194.727776] bond0: 释放活动接口 enp12s0f1
[195.010788] bond0: 删除从属 eno2
[195.010872] bond0: 释放活动接口 eno2
[ 195.010876] bond0: eno2 的永久 HWaddr - 00:1a:a0:06:f1:dd - 仍由 bond0 使用 - 将 eno2 的 HWaddr 设置为其他地址以避免冲突
[195.010879] bond0:第一个活动接口启动!
[ 195.207016] bond0: 删除从属 enp12s0f0
[ 195.207075] bond0: 释放活动接口 enp12s0f0
[195.207079] bond0: 第一个活动接口启动!
[ 195.278500] bond0: 删除从属 eno1
[ 195.278553] bond0: 删除活动聚合器
[195.278556] bond0: 释放活动接口 eno1
[ 195.293395] 绑定:bond0 正在被删除...
[ 195.293460] bond0(取消注册):释放所有从属设备
[ 195.358558] 粘合:正在创建 bond0...
[ 195.404957] bond0: 将 MII 监控间隔设置为 100
[195.407792] IPv6:ADDRCONF(NETDEV_UP):bond0:链接尚未准备好
[ 195.462566] bond0: 添加从属 eno1
[ 195.584227] bond0: 将 eno1 用作具有下行链路的备份接口
[ 195.665846] bond0: 添加从属 eno2
[ 195.796166] bond0: 将 eno2 用作具有下行链路的备份接口
[ 195.864614] bond0: 添加从属 enp12s0f0
[ 196.104464] bond0: 将 enp12s0f0 用作具有下行链路的备份接口
[ 196.167753] bond0: 添加从属 enp12s0f1
[ 196.408475] bond0: 将 enp12s0f1 用作具有下行链路的备份接口
[ 197.204043] bond0: 接口 eno1 的链路状态绝对正常,100 Mbps 全双工
[ 197.204052] bond0:现在正在运行,但没有任何活动接口!
[ 197.204110] IPv6:ADDRCONF(NETDEV_CHANGE):bond0:链路准备就绪
[ 197.504039] bond0: 接口 eno2 的链路状态绝对正常,100 Mbps 全双工
[ 197.504045] bond0: 接口 enp12s0f0 的链路状态绝对正常,100 Mbp 全双工
[ 197.804037] bond0: 接口 enp12s0f1 的链路状态绝对正常,100 Mbp 全双工
[ 1048.788210] bond0: 删除从属 enp12s0f1
[ 1048.788421] bond0: 释放活动接口 enp12s0f1
[ 1048.996159] bond0: 删除从属 enp12s0f0
[ 1048.996331] bond0: 释放活动接口 enp12s0f0
[1049.200059] bond0: 删除从属 eno2
[1049.200152] bond0: 释放活动接口 eno2
[ 1049.366490] bond0: 删除从属 eno1
[ 1049.366548] bond0: 删除活动聚合器
[1049.366551] bond0: 释放活动接口 eno1
[ 1049.377410] 绑定:bond0 正在被删除...
[ 1049.377479] bond0(取消注册):释放所有从属设备
[ 1049.449847] 粘合:正在创建 bond0...
[ 1049.507089] bond0: 将 MII 监控间隔设置为 100
[ 1049.510405] IPv6:ADDRCONF(NETDEV_UP):bond0:链接尚未准备好
[ 1049.554116] bond0: 添加从属 eno1
[ 1049.657057] bond0: 将 eno1 用作具有下行链路的备份接口
[ 1049.730913] bond0: 添加从属 eno2
[ 1049.849103] bond0: 将 eno2 用作具有下行链路的备份接口
[ 1049.914038] bond0: 添加从属 enp12s0f0
[ 1050.160523] bond0: 将 enp12s0f0 用作具有下行链路的备份接口
[ 1050.226176] bond0: 添加从属 enp12s0f1
[ 1050.476519] bond0: 将 enp12s0f1 用作具有下行链路的备份接口
[1051.312039] bond0: 接口 eno1 的链路状态绝对正常,100 Mbps 全双工
[ 1051.312049] bond0:现在正在运行,但没有任何活动接口!
[ 1051.312103] IPv6:ADDRCONF(NETDEV_CHANGE):bond0:链路准备就绪
[1051.612040] bond0: 接口 eno2 的链路状态绝对正常,100 Mbps 全双工
[ 1051.612046] bond0: 接口 enp12s0f0 的链路状态绝对正常,100 Mbp 全双工
[ 1051.912060] bond0: 接口 enp12s0f1 的链路状态绝对正常,100 Mbp 全双工
borgf003@CLD01:~$

编辑3

检查 bond0

borgf003@CLD01:~$ cat /proc/net/bonding/bond0
以太网通道绑定驱动程序:v3.7.1(2011 年 4 月 27 日)

绑定模式:IEEE 802.3ad 动态链路聚合
传输哈希策略:layer2(0)
MII 状态:已启动
MII 轮询间隔(毫秒):100
启动延迟(毫秒):0
下行延迟(毫秒):0

802.3ad 信息
LACP 速率:慢
最小链接数:0
聚合器选择策略(ad_select):稳定

从属接口:eno1
MII 状态:已启动
速度:100 Mbps
双工:全双工
链接失败次数:0
永久硬件地址:00:1a:a0:06:f1:db
从队列ID:0
聚合器 ID:1
参与者流失状态:监控
合作伙伴流失状态:监控
演员流失数量:0
合作伙伴流失数量:0

从属接口:eno2
MII 状态:已启动
速度:100 Mbps
双工:全双工
链接失败次数:0
永久硬件地址:00:1a:a0:06:f1:dd
从队列ID:0
聚合器 ID:1
参与者流失状态:监控
合作伙伴流失状态:监控
演员流失数量:0
合作伙伴流失数量:0

从属接口:enp12s0f0
MII 状态:已启动
速度:100 Mbps
双工:全双工
链接失败次数:0
永久硬件地址:00:15:17:4a:94:26
从队列ID:0
聚合器 ID:1
参与者流失状态:监控
合作伙伴流失状态:监控
演员流失数量:0
合作伙伴流失数量:0

从属接口:enp12s0f1
MII 状态:已启动
速度:100 Mbps
双工:全双工
链接失败次数:0
永久硬件地址:00:15:17:4a:94:27
从队列ID:0
聚合器 ID:1
参与者流失状态:监控
合作伙伴流失状态:监控
演员流失数量:0
合作伙伴流失数量:0
borgf003@CLD01:~$

由于使用了旧的 Cisco Catalyst Switch,因此链接速度很慢。

编辑4

● networking.service - 提升网络接口
   已加载:已加载(/lib/systemd/system/networking.service;已启用;供应商存在
  插入:/run/systemd/generator/networking.service.d
           └─50-insserv.conf-$network.conf
   活跃:自 2016-12-19 星期一 16:11:01 CET;4 分钟 10 秒前活跃(退出)
     文档:man:interfaces(5)
  进程:3783 ExecStop=/sbin/ifdown -a --read-environment (code=exited,status
  进程:3933 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=
  进程:3927 ExecStartPre=/bin/sh -c [ “$CONFIGURE_INTERFACES” != “no” ] && [
 主 PID:3933(代码=退出,状态=0/成功)
    任务:0
   内存: 0B
      CPU:0
   CGroup:/system.slice/networking.service

12 月 19 日 16:11:00 CLD01 systemd[1]: 正在开始提升网络接口...
12 月 19 日 16:11:00 CLD01 ifup[3933]: 等待绑定主设备 bond0 准备就绪
12 月 19 日 16:11:01 CLD01 systemd[1]:已开始提升网络接口。

在接口升起之前,粘合似乎已经开始

编辑5

问题已解决,请查看答案这里

答案1

已解决 - Ubuntu 16.04 lts 与 IEEE 802.3ad 动态链路聚合绑定

情况

Dell PowerEdge 2950 在 Ubuntu 16.04 lts 上运行 NextCloud 服务器,具有不稳定的绑定 802.3ad 动态链路聚合网络,存在间歇性运行超时和启动错误。

故障排除

通过了无数的服务器端配置测试(感谢乔治(支持)间歇性网络问题仍然存在。在 Ubuntu 16.04 lts 中绑定时,内置 Broadcom 和 pci Intel nics 之间存在兼容性问题。

硬件解决方案

2950 转接卡 pci 插槽上安装了两个双 Intel pci 网卡,清除了 nvram,并从 bios 中禁用了内置 broadcom。这样做是为了提高带宽,即 4 个 (1Gb) 网卡,而不是 2 个 (1Gb) 内置接口。

服务器解决方案

对于 Ubuntu 16.04 lts,存在相互冲突的绑定配置建议,而这对我有用。

1. 跑去ifconfig -a获取新的接口 bios 和 dev 名称

borgf003@CLD01:~$ ifconfig -a
..........
enp10s0f0 链路封装:以太网 HWaddr 00:15:17:4a:94:26
          上行广播运行从属多播 MTU:1500 度量:1
          RX 数据包:5161 错误:0 丢弃:0 超限:0 帧:0
          TX 数据包:361 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:1000
          RX 字节:809816 (809.8 KB) TX 字节:31274 (31.2 KB)
          中断:17 内存:fdae0000-fdb00000

enp10s0f1 链路封装:以太网 HWaddr 00:15:17:4a:94:26
          上行广播运行从属多播 MTU:1500 度量:1
          RX 数据包:11440 错误:0 丢弃:0 超限:0 帧:0
          TX 数据包:167 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:1000
          RX 字节:1963591 (1.9 MB) TX 字节:20970 (20.9 KB)
          中断:18 内存:fdaa0000-fdac0000

enp14s0f0 链路封装:以太网 HWaddr 00:15:17:4a:94:26
          上行广播运行从属多播 MTU:1500 度量:1
          RX 数据包:4769 错误:0 丢弃:4 超限:0 帧:0
          TX 数据包:3294 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:1000
          RX 字节:582742 (582.7 KB) TX 字节:1546925 (1.5 MB)
          中断:16 内存:fd6e0000-fd700000

enp14s0f1 链路封装:以太网 HWaddr 00:15:17:4a:94:26
          上行广播运行从属多播 MTU:1500 度量:1
          RX 数据包:3910 错误:0 丢弃:1 超限:0 帧:0
          TX 数据包:2548 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:1000
          RX 字节:497874 (497.8 KB) TX 字节:838297 (838.2 KB)
          中断:17 内存:fd6a0000-fd6c0000
..........

2因为我在运行之前已经预先配置了绑定sudo apt install --reinstall ifenslave

3. 检查启动时是否加载绑定sudo nano /etc/modules

环形
LP
粘合

注意:我删除了 rtc,因为它在 16.04 lts 中已贬值,而且我喜欢干净启动

4。在我的情况下停止联网我使用sudo /etc/init.d/networking stop

5. 编辑了 /etc/network/interfaces 接口,如下所示。请注意,您需要将接口名称更改为您自己的名称,包括 ips

# 此文件描述了系统上可用的网络接口
# 以及如何激活它们。有关更多信息,请参阅interfaces(5)。

源 /etc/network/interfaces.d/*

# 环回网络接口
自动档
iface lo inet 环回

# 主网络接口
自动 enp10s0f0
iface enp10s0f0 inet 手册
bond-master bond0

# 第二个网络接口
自动 enp10s0f1
iface enp10s0f1 inet 手册
bond-master bond0

# 第三个网络接口
自动 enp14s0f0
iface enp14s0f0 inet 手册
bond-master bond0

# 第四个网络接口
自动 enp14s0f1
iface enp14s0f1 inet 手册
bond-master bond0

# 绑定主网络接口
自动键0
iface bond0 inet 静态
        地址 xxx.xxx.xxx.xxx
        网络掩码 xxx.xxx.xxx.xxx
        网络 xxx.xxx.xxx.xxx
        广播 xxx.xxx.xxx.xxx
        网关 xxx.xxx.xxx.xxx
        # dns-* 选项由 resolvconf 包实现(如果已安装)
        dns 名称服务器 xxx.xxx.xxx.xxx
        dns-搜索 yourdomain.com
        键合模式 4
        邦德-米蒙 100
        全部都是奴隶

6. 重新加载内核 bond 模块sudo modprobe bonding

7. 创建了粘合/etc/modprobe.d/bonding.conf配置

别名 bond0 绑定
选项绑定模式=4 miimon=100 lacp_rate=1

8。重启网络,我使用sudo /etc/init.d/networking restart

9. 检查了债券cat /proc/net/bonding/bond0

10。重新启动以查看是否一切正常!

答案2

首先检查联网设置为在启动时运行:

sudo systemctl status networking

如果没有说已启用已加载行,那么你必须启用它在重启时启动,如下所示:

sudo systemctl enable networking

在此处输入图片描述

由于你们的结合,这些应该可以解决这个问题:

  1. 安装这个sudo apt install ifenslave
  2. 编辑您的/etc/modules文件:sudo vi /etc/modules
  3. 将这些添加到文件中(每行一个)
    • 环形
    • LP
    • 实时时钟
    • 粘合
  4. 停止联网:
    • sudo stop networking
  5. 加载bonding内核模块:
    • sudo modprobe bonding
  6. 编辑您的接口配置:
    • 你已经这样做了
  7. 将其添加到vim /etc/modprobe.d/bonding.conf

    alias bond0 bonding options bonding mode=4 miimon=100 lacp_rate=1

  8. 重新启动网络:

    • sudo systemctl restart networking
  9. 检查粘合接口是否一切正常
    • cat /proc/net/bonding/bond0
  10. 启动绑定接口:
    • ifup bond0

来源:UbuntuBonding

来源:服务器库

答案3

这样你就是在自寻死路。你的不兼容性可能只是设置和竞争条件。转变网卡特别的设置能力绑定驱动程序内核设置所有这些都需要检查,看看到底哪里出了问题。是时候抛弃之前的一切,开始认真对待systemd-networkd本身。

https://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html#

https://www.kernel.org/doc/Documentation/networking/bonding.txt

相关内容