Я пытаюсь настроить несколько контейнеров LXC на хосте, каждый со своими публичными статическими IP-адресами.
На моем хосте установлена последняя версия Ubuntu. Он имеет единственный сетевой интерфейс с именем eth0. Статические IP-адреса доступны для пинга из Интернета и называются eth0: 210, eth0: 211 ... Числа после двоеточия являются наименее значимым байтом адресов. В дополнение к этим интерфейсам у меня есть настройка br0 на общедоступном IP-адресе хоста. Есть также интерфейсы lo, veth2LPP9A и lxcbr0. У lxcbr0 есть адрес частного IP.
Хост / etc / network / interfaces выглядит следующим образом:
auto br0
iface br0 inet static
bridge_ports eth0
bridge_fd 0
[...]
До сих пор я использовал различные онлайн-источники, в том числе контейнеры Bridging LXC для размещения eth0, чтобы у них был публичный IP-адрес, чтобы помочь мне настроить это.
Файл конфигурации контейнера имеет:
lxc.network.type = veth
lxc.network.link = br0
Я удалил статическую конфигурацию lxc.network.ipv4 из этого файла, поскольку это вызывало проблемы. Когда я запустил lxc-ls --fancy с этой конфигурацией, я бы увидел один и тот же публичный IP дважды в выводе. Кроме того, это может повлиять на конфигурацию подсети контейнера / etc / network / interfaces.
Говоря о файле интерфейсов контейнера, он выглядит примерно так:
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-адресом контейнера, соединяет меня с хостом.
РЕДАКТИРОВАТЬ: Удаление статического IP-адреса контейнера с хоста действительно помогло, но теперь я получаю новую ошибку. Попытка пропинговать контейнер с хоста приводит к перенаправлению HostFrom, New nexthop. Пакеты просто идут от шлюза к хосту, несколько раз. Запуск traceroute с хоста показывает, что первая остановка на шлюзе. Тогда все остальные маршруты * * *. Я получаю ту же проблему независимо от того, включен контейнер в сеть или нет.