Lxc-Linux Containers-добавление нового сетевого интерфейса без перезагрузки
Поиск в google, есть только один способ добавить новый сетевой интерфейс добавление в конфигурационный файл. Есть ли команда lxc, которую мы можем добавить в lively, (не нужно перезапускать контейнер)?
На странице указано, как добавить второй сетевой интерфейс: http://box.matto.nl/lxctwonics.html
Спасибо!
2 ответа:
Это очень сильно зависит от конфигурации интерфейса, который вы пытаетесь добавить в контейнер.
Если у вас есть существующий интерфейс на вашем хосте, который вы хотите видеть внутри контейнера:
# 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
Другим полезным сценарием было бы создание нового интерфейса внутри контейнера., соединен с существующим мостом на хосте:
Это создаст пару подключенных виртуальных интерфейсов ethernet (# 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
veth0
иveth0_container
), добавит один из них к мостуbr0
, а другой переместит в контейнерfoobar
. Это примерно эквивалентно такой конфигурации:lxc.network.type=veth lxc.network.link=br0 lxc.network.name=veth0
Поток очень полезен, но мне пришлось настроить созданную ссылку, чтобы сделать доступ контейнера к сети:
Перед: (ip link)
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 link)
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