编辑

编辑

我有一台服务器,其中 4 个接口(eno1..4)绑定在一起。到目前为止一切顺利。

使用配置中的 VLAN,当我启动网络服务时,它会返回错误:

$ service networking status
● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2017-09-04 11:04:11 -03; 7min ago
     Docs: man:interfaces(5)
  Process: 1989 ExecStop=/sbin/ifdown -a --read-environment --exclude=lo (code=exited, status=0/SUCCESS)
  Process: 2180 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
  Process: 2175 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (code=exited, status=0/SUCCESS)
 Main PID: 2180 (code=exited, status=1/FAILURE)

如果我注释掉 auto bond0.20/30 并重启网络,就不会出现错误。但如果我 ifup bond0 20,就会出现错误:

$ ifup bond0.20
RTNETLINK answers: File exists
ifup: failed to bring up bond0.20

这是我的配置:

# The loopback network interface
auto lo
iface lo inet loopback

# Bonding interfaces

allow-hotplug eno1
iface eno1 inet manual

allow-hotplug eno2
iface eno2 inet manual

allow-hotplug eno3
iface eno3 inet manual

allow-hotplug eno4
iface eno4 inet manual

# Main bonding interface
auto bond0
iface bond0 inet static
        address 10.10.0.1
        gateway 10.10.0.254
        netmask 255.255.255.0
        dns-nameservers 10.10.0.254
        dns-search mydomain.local
        bond-mode 802.3ad
        bond-miimon 100
        bond-downdelay 200
        bond-updelay 200
        bond-lacp-rate 1
        bond_xmit_hash_policy layer2+3
        bond-slaves eno1 eno2 eno3 eno4

auto bond0.20
iface bond0.20 inet static
        address 10.20.0.1
        gateway 10.20.0.254
        netmask 255.255.255.0

auto bond0.30
iface bond0.30 inet static
        address 10.30.0.1
        gateway 10.30.0.254
        netmask 255.255.255.0

编辑

我的新桥梁设置:

auto eno1
iface eno1 inet manual

auto eno2
iface eno2 inet manual

auto bond0
iface bond0 inet manual
    slaves eno1 eno2
    bond-mode 802.3ad
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    bond-lacp-rate 1
    bond_xmit_hash_policy layer2+3

auto bond0.20
iface bond0.20 inet manual

auto br20
iface br20 inet static
    address  192.168.100.1
    netmask  255.255.255.0
    network  192.168.100.0
    bridge_ports bond0.20
    bridge_maxwait 5
    bridge_stp off
    bridge_fd 0

auto bond0.30
iface bond0.30 inet manual

auto br30
iface br30 inet static
    address  192.168.200.1
    netmask  255.255.255.0
    network  192.168.200.0
    bridge_ports bond0.30
    bridge_maxwait 5
    bridge_stp off
    bridge_fd 0

它运行起来了,但是返回错误,显示服务网络状态不干净。

$ service networking status
● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2017-09-04 20:08:38 -03; 29s ago
     Docs: man:interfaces(5)
  Process: 923 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
  Process: 902 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (code=exited, status=0/SUCCESS)
 Main PID: 923 (code=exited, status=1/FAILURE)

Sep 04 20:08:38 alpha ifup[923]: + [ meta = meta ]
Sep 04 20:08:38 alpha ifup[923]: + exit 0
Sep 04 20:08:38 alpha ifup[923]: run-parts: executing /etc/network/if-up.d/ip
Sep 04 20:08:38 alpha ifup[923]: run-parts: executing /etc/network/if-up.d/openssh-server
Sep 04 20:08:38 alpha ifup[923]: run-parts: executing /etc/network/if-up.d/postfix
Sep 04 20:08:38 alpha ifup[923]: run-parts: executing /etc/network/if-up.d/upstart
Sep 04 20:08:38 alpha systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Sep 04 20:08:38 alpha systemd[1]: Failed to start Raise network interfaces.
Sep 04 20:08:38 alpha systemd[1]: networking.service: Unit entered failed state.
Sep 04 20:08:38 alpha systemd[1]: networking.service: Failed with result 'exit-code'.

答案1

我发现了问题。

我的错误,有多个gateway条目,应该只有一个!

现在它正在工作。

答案2

好吧,我做的是:

从 VLAN 中删除auto,并将以下内容添加到bond0

 pre-up vconfig add bond0 20; vconfig add bond0 30

这样,在 bond0 接口启动之前就会创建 VLAN。

最终配置文件:

# 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

# Bonding interfaces

allow-hotplug eno1
iface eno1 inet manual

allow-hotplug eno2
iface eno2 inet manual

allow-hotplug eno3
iface eno3 inet manual

allow-hotplug eno4
iface eno4 inet manual

# Main bonding interface
auto bond0
iface bond0 inet static
        address 10.10.0.1
        gateway 10.10.0.254
        netmask 255.255.255.0
        dns-nameservers 10.10.0.254
        dns-search mydomain.local
        bond-mode 802.3ad
        bond-miimon 100
        bond-downdelay 200
        bond-updelay 200
        bond-lacp-rate 1
        bond_xmit_hash_policy layer2+3
        bond-slaves eno1 eno2 eno3 eno4
        pre-up vconfig add bond0 20; vconfig add bond0 30

iface bond0.20 inet static
        address 10.20.0.1
        gateway 10.20.0.254
        netmask 255.255.255.0

iface bond0.30 inet static
        address 10.30.0.1
        gateway 10.30.0.254
        netmask 255.255.255.0

相关内容