【问题标题】:LXC - Linux Containers - Add new network interface without restartingLXC - Linux Containers - 添加新的网络接口而无需重新启动
【发布时间】:2014-04-01 08:48:27
【问题描述】:

在谷歌上搜索,添加新网络接口的唯一方法是添加到配置文件。有没有什么 lxc 命令可以添加生动,(不需要重启容器)?

页面提到如何添加第二个网络接口:http://box.matto.nl/lxctwonics.html

谢谢!

【问题讨论】:

    标签: lxc


    【解决方案1】:

    这在很大程度上取决于您尝试添加到容器的接口的配置。

    如果您的主机上有一个您希望在容器内可见的现有接口:

    # 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
    

    这将创建一对连接的虚拟以太网接口(@98​​7654327@ 和veth0_container),将其中一个添加到br0 网桥,并将另一个移动到容器foobar。这大致相当于这个配置:

    lxc.network.type=veth
    lxc.network.link=br0
    lxc.network.name=veth0
    

    【讨论】:

    • 感谢您的回答!如何添加IP地址以在容器内创建新接口(您的第二种情况):lxc.network.ipv4 = 192.168.1.100/24, lxc.network.ipv4.gateway = 192.168.1.1
    • 顺便说一句,命令应该是“ip link add name veth0 type veth peer name veth0_container”。在 debian 上,我找不到 lxc-device 命令
    • 糟糕,将缺少的add 添加到ip link add... 命令。我还更新了答案以避免lxc-device 命令,希望你至少有lxc-info :)
    • 您应该使用托管发行版的设施(例如/etc/network/interfacesifup)在容器内配置新接口
    • @lanzz 现在,如何将连接到容器的设备作为“物理”带回主机?无需关闭容器。
    【解决方案2】:

    线程非常有用,但我必须设置创建的链接才能使容器访问网络:

    之前:(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
    

    【讨论】:

      【解决方案3】:

      像@Leahkim 一样,我也必须启动设备,但还要从容器内分配一个静态 IP:

      ifconfig veth0 add 192.168.18.2 netmask 255.255.255.0 up
      

      此时您可能也可以使用 dhcp 客户端,但我无法使用它。

      【讨论】:

        猜你喜欢
        • 2014-08-31
        • 1970-01-01
        • 2014-05-09
        • 2020-11-25
        • 2021-10-07
        • 1970-01-01
        • 2014-09-05
        • 1970-01-01
        • 2021-10-07
        相关资源
        最近更新 更多