Я хочу использовать внешний ipv6 на всех моих контейнерах и внешний ipv4 только на хостах. Я использую Ubuntu 12.04 64bit. Для ipv4 в контейнере я использую DHCP, поставляемый с установкой lxc.
У меня все работает, но я не уверен, что это правильно. Не могли бы вы пролить свет на это?
На моем контейнерном хосте я использую:
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
auto eth0
iface eth0 inet manual
auto br-lxc
iface br-lxc inet static
address ipv4
netmask 255.255.255.0
gateway ipv4 gw
bridge_ports eth0
iface br-lxc inet6 static
address exte:rnal::ipv6
netmask 48
gateway exte:rnal:ipv6:gw
В моей конфигурации контейнера:
lxc.network.type= veth
lxc.network.flags= up
lxc.network.link= br-lxc
lxc.network.hwaddr= random-mac
lxc.network.name = eth0
lxc.network.type=veth
lxc.network.link=br-lxc-1
lxc.network.flags=up
lxc.network.hwaddr= random-mac
lxc.network.name = eth1
И в своем контейнере (ах) я использую:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet6 static
address ipv6
netmask 48
gateway ipv6 gw
auto eth1
iface eth1 inet dhcp
И я попадаю в контейнер:
$ip a|grep inet
inet6 externalipv6:33/48 scope global
inet6 internalipv6::78/64 scope link
inet 10.0.3.52/24 brd 10.0.3.255 scope global eth1
inet6 internalipv6::28/64 scope link
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
Когда мне нужно перезапустить сеть, я получаю:
$ /etc/init.d/networking restart
* Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces
* Reconfiguring network interfaces...
Device "br-lxc" does not exist.