У меня есть сервер Ubuntu 16.04 и конфигурация LXD по умолчанию.
Обычно при появлении изображения происходит следующее:
eno1 Link encap:Ethernet HWaddr b8:ae:ed:ea:69:41
inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::baae:edff:feea:6941/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:116948 errors:0 dropped:3 overruns:0 frame:0
TX packets:59726 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:161031770 (161.0 MB) TX bytes:4656462 (4.6 MB)
Interrupt:16 Memory:df100000-df120000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:177 errors:0 dropped:0 overruns:0 frame:0
TX packets:177 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:13388 (13.3 KB) TX bytes:13388 (13.3 KB)
lxdbr0 Link encap:Ethernet HWaddr fe:5c:57:cd:bd:72
inet addr:10.41.63.1 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fd6d:c772:b128:ebfd::1/64 Scope:Global
inet6 addr: fe80::d08c:f9ff:fed9:5cd1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39 errors:0 dropped:0 overruns:0 frame:0
TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5064 (5.0 KB) TX bytes:11128 (11.1 KB)
vethD7L5U9 Link encap:Ethernet HWaddr fe:5c:57:cd:bd:72
inet6 addr: fe80::fc5c:57ff:fecd:bd72/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39 errors:0 dropped:0 overruns:0 frame:0
TX packets:75 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5610 (5.6 KB) TX bytes:10322 (10.3 KB)
А изображение выглядит так:
+-------+---------+---------------------+-----------------------------------------------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+-------+---------+---------------------+-----------------------------------------------+------------+-----------+
| first | RUNNING | 10.41.63.206 (eth0) | fd6d:c772:b128:ebfd:216:3eff:fe9d:ef41 (eth0) | PERSISTENT | 0 |
+-------+---------+---------------------+-----------------------------------------------+------------+-----------+
Я хотел бы воспользоваться вариантом использования моего собственного моста, поскольку это вариант при реконфигурации. Вроде все не так просто, как я думал.
Создаю простой мост.
iface vbr0 inet static
address 10.10.10.1
broadcast 255.255.255.0
pre-up brctl addbr vbr0
post-down brctl delbr vbr0
Я перезапускаю свой контейнер и не получаю IP.
+-------+---------+------+------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+-------+---------+------+------+------------+-----------+
| first | RUNNING | | | PERSISTENT | 0 |
+-------+---------+------+------+------------+-----------+
Но придумывай veth.
vbr0 Link encap:Ethernet HWaddr fe:da:17:ca:ab:e0
inet addr:10.10.10.1 Bcast:255.255.255.0 Mask:255.0.0.0
inet6 addr: fe80::e83b:1aff:fe18:4652/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:36 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7632 (7.6 KB) TX bytes:908 (908.0 B)
vethWLPBCC Link encap:Ethernet HWaddr fe:da:17:ca:ab:e0
inet6 addr: fe80::fcda:17ff:feca:abe0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4410 (4.4 KB) TX bytes:948 (948.0 B)
Не работает dnsmasq (чего и следовало ожидать), поэтому я не уверен, где это нужно. Если я запустил его вручную, мои контейнеры получат IP-адреса (после перезапуска).
Может ли кто-нибудь указать, как реплицировать мост lxdbr0 и последующее создание экземпляра dnsmasq?
Похоже, вам не хватает двух шагов, которые LXC / LXD обычно выполняет за вас. В LXC этим занимается lxc-net
служба.
По сути, происходит следующее:
dnsmasq
экземпляр запущен, прослушивает интерфейс мостаiptables
правила добавляются для обеспечения трафика NAT, DHCP и основного ICMP.Вы можете увидеть это точное поведение, если посмотрите на источник lxc-net
сценарии инициализации. (и, вероятно, lxd
эквивалент)
Вы могли либо:
/etc/init/lxc-net
или перейдя сюда: lxc-net (официальный мастер). /etc/init/
) и назовите его чем-нибудь уникальным. Затем вы можете запустить / остановить его, как если бы это была собственная служба.Вы захотите добавить этот скрипт вместо своего pre-up
/ post-down
команды. Убедитесь, что он отмечен как исполняемый.