【发布时间】:2014-04-01 08:48:27
【问题描述】:
在谷歌上搜索,添加新网络接口的唯一方法是添加到配置文件。有没有什么 lxc 命令可以添加生动,(不需要重启容器)?
页面提到如何添加第二个网络接口:http://box.matto.nl/lxctwonics.html
谢谢!
【问题讨论】:
标签: lxc
在谷歌上搜索,添加新网络接口的唯一方法是添加到配置文件。有没有什么 lxc 命令可以添加生动,(不需要重启容器)?
页面提到如何添加第二个网络接口:http://box.matto.nl/lxctwonics.html
谢谢!
【问题讨论】:
标签: lxc
这在很大程度上取决于您尝试添加到容器的接口的配置。
如果您的主机上有一个您希望在容器内可见的现有接口:
# on the host:
pid=$(lxc-info -pHn foobar)
ip link set dev eth3 netns $pid name eth1
这将导致您的主机的eth3 接口移动到容器foobar,重命名为eth1。这大致等于这个配置:
lxc.network.type=phys
lxc.network.link=eth3
lxc.network.name=eth1
另一个有用的场景是在容器内创建一个新接口,桥接到主机上的现有网桥:
# on the host:
pid=$(lxc-info -pHn foobar)
ip link add name veth0 type veth peer name veth0_container
brctl addif br0 veth0
ip link set dev veth0_container netns $pid name veth0
这将创建一对连接的虚拟以太网接口(@987654327@ 和veth0_container),将其中一个添加到br0 网桥,并将另一个移动到容器foobar。这大致相当于这个配置:
lxc.network.type=veth
lxc.network.link=br0
lxc.network.name=veth0
【讨论】:
add 添加到ip link add... 命令。我还更新了答案以避免lxc-device 命令,希望你至少有lxc-info :)
/etc/network/interfaces 和ifup)在容器内配置新接口
线程非常有用,但我必须设置创建的链接才能使容器访问网络:
之前:(ip链接)
11: veth0@if10: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master vmbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 42:f1:f9:5a:5c:ae brd ff:ff:ff:ff:ff:ff link-netnsid 1
设置链接:
ip link set dev veth0 up
之后:(ip链接)
11: veth0@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP mode DEFAULT group default qlen 1000
link/ether 42:f1:f9:5a:5c:ae brd ff:ff:ff:ff:ff:ff link-netnsid 1
【讨论】:
像@Leahkim 一样,我也必须启动设备,但还要从容器内分配一个静态 IP:
ifconfig veth0 add 192.168.18.2 netmask 255.255.255.0 up
此时您可能也可以使用 dhcp 客户端,但我无法使用它。
【讨论】: