ubuntu 14:如何为绑定接口配置桥接?

ubuntu 14:如何为绑定接口配置桥接?

我们有一台服务器通过两个网卡连接到 2 个交换机。每个网卡上有 2 个 VLAN,分别是管理和生产。目前我们只连接了一个交换机,因此尚未设置生成树等。

我们已经安装了 LXC,并且想要桥接(而不是 NAT)XLC 容器(以便它们与主机位于同一子网)。

当我们尝试在主机 ubuntu 服务器上的 /etc/network/interfaces 中创建网桥时,网络无法启动,我们必须转到控制台,删除编辑并重新启动(幸运的是我们有 LOM 卡!)

接口文件:

auto em1.3
iface em1.3 inet manual
bond-master bond2
bond-primary em1.3

auto em2.3
iface em2.3 inet manual
bond-master bond2

auto bond2 #Production VLAN
iface bond2 inet static
address 10.100.100.10
netmask 255.255.255.0
gateway 10.100.100.1
dns-nameservers 10.100.10.1
bond-slaves em1.3, em2.3
bond-miimon 100
bond-mode active-backup
dns-nameservers 10.100.100.1

auto br_prod
iface br_prod inet dhcp
   bridge_ports bond2
   bridge_fd 0
   bridge_maxwait 0

当我们添加最后一个部分 (br_prod) 时,服务器不会启动网络,我们必须使用控制台。它显示“再等待 60 秒才能启动网络”,但实际上并没有。

我也尝试添加

pre-up ifup bond2
post-down ifup bond2

尝试将其设为手动。

尝试将其设为静态而不是 DHCP,并提供适当的 ip/网关/网络掩码。没有成功。

尝试将其命名为 br2 而不是 br_prod,尝试了 pre_up post_down、bridge-ports 等。我们尝试了选项、开关和下划线与破折号的每种组合。效果总是相同的 - 网络无法启动(没有错误)。

有任何想法吗?

更新 1

根据下面 electrometro 的回答,我尝试了这个:

auto bond1
iface bond1 inet static
  address 10.30.30.10
  netmask 255.255.255.0
  #bond-slaves em1.2, em2.2
  bond-slaves none
  bond-miimon 100
  bond-mode active-backup
  up route add -net .....

auto em1.2
iface em1.2 inet manual
  bond-master bond1
  bond-primary em1.2

auto em2.2
iface em2.2 inet manual
    bond-master bond1
    bond-primary em1.2

br1
iface br1 inet manual
   bridge_ports bond1
   bridge_fd 0
   bridge_maxwait 0

但遇到了同样的问题——网络无法启动。

更新2

感谢 Oliver 的贡献。我尝试了这个配置,网络启动了,我可以使用 ifconf 查看接口,但是由于路由不起作用,我无法使用 ssh。基本上,我无法使用手动添加的路由 ping 默认网关。

auto em1.2
iface em1.2 inet manual

auto em2.2
iface em2.2 inet namual

auto bond1
iface bond1 inet manual
   bond-slaves em1.2 em2.2
   bond-mode active-backup

auto br10
iface br10 inet static
    address 10.30.30.10
    netmask 255.255.255.0
    bridge_ports bond1
    up route add -net 10.242.1.0/24 gw 10.30.30.1 dev bond1 # also tried dev br10

我们手动设置网关的原因是我们必须定义两个网络:生产网络和管理网络。我们有 2 个接口,每个接口都连接到交换机。每个接口都为两个网络提供故障转移功能,生产网络有默认网关。我现在只是想在管理网络上建立一座桥作为开始。

更新 3

在多次反复试验后,我还尝试指定 VLAN:

auto em1.2
iface em1.2 inet manual

auto em2.2
iface em2.2 inet manual

auto bond1
iface bond1 inet manual
    bond-slaves em1.2 em2.2
    bond-mode active-backup

auto br10.2
iface br10.2 inet static
    address 10.30.30.10
    netmask 255.255.255.0
    bridge_ports bond1
    up route add -net 10.242.1.0/24 gw 10.30.30.1 dev br10.2

答案1

这是适用于 docker 主机的类似设置。希望它能为您指明正确的方向。

# Interface bond_lan
auto bond_lan
iface bond_lan inet manual
    slaves none
    bond-mode active-backup
    bond-miimon 100

# Interface bridge_lan
auto bridge_lan
iface bridge_lan inet static
    address 10.10.10.129
    netmask 255.255.0.0
    gateway 10.10.0.1
    bridge_ports bond_lan
    bridge_stp on
    bridge_fd 0
    bridge_maxwait 0

# Interface em1
auto em1
iface em1 inet manual
    bond-master bond_lan
    bond-primary em1

# Interface em2
auto em2
iface em2 inet manual
    bond-master bond_lan
    bond-primary em1

# Interface lo
auto lo
iface lo inet static
    address 127.0.0.1
    netmask 255.0.0.0

答案2

在 Ubuntu VM 中测试了以下内容:

  • 使用物理接口 em1 和 em2 创建主动-备份绑定接口:

    auto bond0
    iface bond0 inet manual
        bond-slaves none
        bond-mode active-backup
    
    auto em1
    iface em1 inet manual
        bond-master bond0
    
    auto em2
    iface em2 inet manual
        bond-master bond0
    
  • 创建第一个网桥,该网桥也可用于管理指定 IP 地址上的机器。我们为此使用 VLAN 100:

    auto br100
    iface br100 inet static
        address 10.100.100.10
        netmask 255.255.255.0
        gateway 10.100.100.1
        bridge_ports bond0.100
    
  • 创建用于生产流量的第二个网桥,我们假设这是 VLAN 200:

    auto br200
    iface br200 inet manual
        bridge_ports bond0.200
    

您现在可以根据需要将容器或虚拟机添加到 br100 和/或 br200。

更新:更改了 bond0 的创建方式。物理接口不再引用来自 Bond Master 的物理接口,而是现在指向 Bond Master。

相关内容