Я намагаюся встановити декілька контейнерів LXC на хості, кожен з яких має власні загальнодоступні статичні IP-адреси.
Мій хост працює з останньою Ubuntu. Він має єдиний мережевий інтерфейс з назвою eth0. Статичні IP-адреси є доступними до Інтернету і називаються eth0: 210, eth0: 211 ... Числа після двокрапки - найменш значущий байт адрес. На додаток до цих інтерфейсів, у мене є br0 налаштування на загальнодоступній IP-адресі хоста. Існують також інтерфейси lo, veth2LPP9A та lxcbr0. Lxcbr0 має адресу приватного IP-адреси.
Інтерфейси хоста / тощо / мережі / виглядають так:
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
[...]
Поки що я використовував різні інтернет-джерела, включаючи мостики контейнерів LXC для розміщення eth0, щоб вони могли мати публічний IP, щоб допомогти мені налаштувати це.
Конфігураційний файл контейнера має:
lxc.network.type = veth
lxc.network.link = br0
Я видалив статичну конфігурацію lxc.network.ipv4 з цього файлу, оскільки це спричинило проблеми. Коли я запускав lxc-ls --fancy з цією конфігурацією, я побачив би один і той же загальнодоступний IP-код у висновку. Крім того, це буде заплутане з конфігурацією підмережі інтерфейсів / etc / network / інтерфейсів контейнера.
Якщо говорити про файл інтерфейсів контейнера, він виглядає приблизно так:
auto eth0
iface eth0 inet static
address [...]
netmask 255.255.255.255
#gateway [...]
dns-nameservers 8.8.8.8
post-up route add [...] dev eth0
post-up route add default gw [...]
post-down route del [...] dev eth0
post-down route del default gw [...]
Мені довелося прокоментувати шлюз і додати команди команд маршруту до цього файлу. В іншому випадку на завантаження контейнера знадобиться хвилин.
Файли / proc / sys / net / bridge / bridge-nf- * встановлені на 0. Значення / proc / sys / net / ipv4 / ip_forward дорівнює 1.
Проблема полягає в тому, що хоча контейнер "route -n" виглядає так, як належить, я не можу пінг-оф-контейнер. SSHing до того, яким повинен бути IP-контейнер, підключає мене до хоста.
EDIT: Видалення статичного IP-адреси контейнера з хоста все-таки допомогло, але тепер я отримую нову помилку. Спроба пінг-контейнера з хоста призводить до перенаправлення HostFrom, New nexthop. Пакети просто йдуть від шлюзу до хоста, кілька разів. Виконання трассеру від хоста показує, що перша зупинка знаходиться на шлюзі. Тоді всі інші маршрути є * * *. Я отримую ту ж проблему незалежно від того, контейнер в Інтернеті чи ні.