首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LXC桥上的链路聚合

LXC桥上的链路聚合
EN

Ask Ubuntu用户
提问于 2014-07-06 02:09:02
回答 1查看 1K关注 0票数 1

我正在使用一台具有多种接口(eth0-3)的服务器,目前我只使用一个用于主机通信,另一个用于LXC桥通信。因为我有几个备用端口,而且我的桥上有很多流量,所以我想我应该使用其他端口来进行一些好的老式链接聚合。

这不是我以前真正搞砸过的事情,这不是一个问题,更多的问题是‘我是如何在/etc/网络/接口中实现这个的’.所以我们开始吧。

根据我的理解,我可以用键连接的东西来连接eth1eth2 say (甚至eth3!)到设备bond0,然后将my bridge br0bridge_port更改为bond0。这一切对我来说都是有意义的,我非常困惑的是,如果我不想给bond0一个ip的话,该怎么做呢?目前,我的br0设置为没有IP,这意味着主机是不可接触的,但是主机上的所有lxc容器都有可路由的IP,因此可以联系到它们。

我将如何实现这一点?我能不能不给bond0一个ip,并假设它会以同样的方式运行?

下面是我的备注/etc/network/interface文件,说明我如何实现它(请注意,我还没有实现这一点,因为我不想破坏我的整个主机网络):

代码语言:javascript
复制
# host communications times
auto eth0 inet static 
iface eth0 inet static
    blahblahblah

# first slave device
auto eth1
iface eth1 inet manual
    bond-master bond0

# second slave device
auto eth2
iface eth2 inet manual
    bond-master bond0

# our bond master or aggregation device
auto bond0
iface bond0 inet manual
    # no IP?
    gateway 192.168.1.1
    netmask 255.255.255.0
    bond-mode 0

# our bridge device
auto br0
iface br0 inet manual
    # also no IP
    bridge_ports bond0
    bridge_fd 0
    bridge_maxwait 0
EN

回答 1

Ask Ubuntu用户

发布于 2015-03-03 05:04:45

因此,我在Ubuntu14.04上的连接+桥接工作也遇到了类似的问题。我必须做三件关键的事情:

  1. 禁用bios名称,并更新grub。
  2. 创建我自己的udev规则名称文件。
  3. 让桥拿走IP而不是债券。

好的,步骤1。确保您对此框具有本地访问权限。键盘和监视器。我们要破坏你的网络。编辑此文件:/etc/default/grub并更改该行:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 net.ifnames=1 biosdevname=0"

(我们不使用IPV6,所以我们也禁用它)

接下来,运行sudo update-grub并重新启动。

下一步,登录到您的框并运行以下命令:sudo dmesg | grep eth

如果幸运的话,你应该找到你的设备,这样我们就可以编写udev规则了。通常人们用MAC地址重命名他们的网络设备,但是债券往往会混淆udev,因为这种连接可能会在某些配置中占用NIC的MAC地址之一,所以不要走这条路。相反,您可以通过设备ID来实现它。我有Intel NIC,所以这是我的输出。你的里程会有所不同:

[ 17.888965] igb 0000:07:00.0: added PHC on eth0 [ 17.888969] igb 0000:07:00.0: eth0: (PCIe:2.5Gb/s:Width x1) d0:50:99:xx:xx:xx [ 17.889097] igb 0000:07:00.0: eth0: PBA No: 001300-000 [ 17.932484] igb 0000:08:00.0: added PHC on eth1 [ 17.932488] igb 0000:08:00.0: eth1: (PCIe:2.5Gb/s:Width x1) d0:50:99:xx:xx:xx [ 17.932615] igb 0000:08:00.0: eth1: PBA No: 001300-000

好的,所以我的设备ID是0000:07:00.00000:08:00.0。这些都是每个硬件设置所特有的。

编辑此文件,并从其中删除任何现有行:/etc/udev/rules.d/70-persistent-net.rules

添加所需的设备名称如下(请注意将0000:07:00.00000:08:00.0划分到何处):

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="0000:07:00.0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="0000:08:00.0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

哇哦。就快完成了。

第三步。无论出于什么原因,如果债券使用IP地址,我无法让网络工作,但它似乎在工作,只是看看桥是否起作用。我使用这个/etc/network/interfaces (我也使用DHCP而不是静态BTW,只需保留这些节):

代码语言:javascript
复制
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 manual 
     bond-slaves none
     bond-mode 802.3ad
     bond-miimon 100
     bond-downdelay 200
     bond-updelay 200

auto lan0
iface lan0 inet dhcp
  bridge_ports bond0
  bridge_fd 0
  bridge_maxwait 0

重新启动并交叉你的脚趾。祝好运!

编辑

Ubuntu在这个配置中有一些有顺序的bug。我插入了一些延迟,因为我无法始终在DHCP上提取和IP地址:

/etc/network/interfaces

代码语言:javascript
复制
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 manual
    bond-slaves eth0 eth1
    bond-mode 802.3ad
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    bond-xmit-hash-policy layer3+4
    up sleep 2

auto lan0
iface lan0 inet dhcp
    bridge_ports bond0
    bridge_waitport 10
    bridge_fd 0
    bridge_maxwait 0
    bridge_stp off
    pre-up sleep 2
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/492181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档