关于软件桥接连接问题的联系

时间:2012-06-26 12:02:42

标签: linux networking load-balancing

你有什么:

  1. bond(bond0)接口(除4之外的所有模式),在同一个外部交换机上连接至少2个ifaces(比如eth0 / eth1)
  2. bond0接口加入软件桥(br0)
  3. 虚拟机(vm0)(例如LibVirt :: LXC),接口为br0
  4. 你得到了什么:

    1. vm0无法通过br0
    2. 上的bond0连接到(大多数)IP地址
    3. “bond0:在syslog
    4. 中收到带有自己地址作为源地址的数据包”

      为什么会这样:

      当vm0想要联系外部IP地址时,它会发出ARP请求。这个带有vm0源mac的L2广播将通过(取决于绑定模式)例如eth0,但是通过外部交换机,通过eth1重新进入,从而重新进入bond0。因此,交换机br0将学习连接到bond0的端口上的vm0的mac地址。因此,vm0永远不会收到ARP回复。

      您可以做些什么来解决:

      我发布此信息的原因是,在共享信息之后,我无法找到一个足够好的解决方案。我找到的是:

      1. 在vm0上设置静态ARP条目
      2. 使用bond0 mode = 4但您的外部开关必须支持此
      3. 将外部siwtch配置为在eth0 / eth1上使用专用VLAN,但仅在某些用例中有效并增加了复杂性
      4. 在启用了生成树的情况下将两个物理接口添加到网桥,而不是使用绑定驱动程序
      5. 在Linux的正确端口上静态配置vm0的MAC不是Linux上的选项(虽然可以在OpenBSD上运行)
      6. 我真的希望在这里有一个更优雅的解决方案......任何人?

        由于

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,我想出了同样的分析。 我发现唯一的非侵入性/可扩展解决方案是使用主动/备用绑定(模式1)。权衡是你松散聚合。

IMO最好的解决方案是使用802.3ad,但我不能总是使用它,因为我的大多数交换机都限制了6个端口通道。

答案 1 :(得分:0)

在网桥中尝试以下选项:

brigde_fd 0
bridge_stp off # switch on with more system like this
bridge_maxage 0
bridge_ageing 0
bridge_maxwait 0

取自这个帖子: kvm bridge also in proxmox