1

У меня есть ноутбук с Ubuntu 14 Desktop. Ноутбук имеет WLAN-соединение с моей локальной сетью и управляется сетевым менеджером. Конечно, ноутбук тоже ниц (eth0), но он не подключен. Я использую этот ноутбук в качестве LXC-хоста. У меня есть несколько контейнеров, обслуживающих приложения. С базовой настройкой LXC (настройки по умолчанию, такие как использование dnsmasq, мостовая сеть).

Выход ifconfig показывает 4 интерфейса: eth0 lo wlan и lxcbr0 Пока что специальной конфигурации iptables пока не сделано. Это свежая установленная система

Теперь, настроив NAT на моем LXC-хосте ...

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 21404 -j DNAT --to 10.0.3.180:3142

... Я могу получить доступ к службам в моих контейнерах при доступе с другого компьютера в моей локальной сети, например:

foo@LANMachine2: wget -O - http://lxc-host:21404 #it works

Подсказка: lxc-host - это DNS-имя ноутбука, управляемого моим маршрутизатором.

Теперь я хочу остаться на своей машине и получить доступ к службе контейнера с самого LXC-хоста и других размещенных контейнеров, используя то же DNS-имя, например:

bar@lxc-host: wget -O - http://lxc-host:21404 
#or
bar@lxc-container: wget -O - http://lxc-host:21404

#both not working and leading to output:
Connecting to lxc-host (lxc-host)|The.IP.shown.here|:21404... failed: Connection refused.

Как заставить это работать? Это вообще возможно? Для меня большая часть импорта - это возможность подключения из других контейнеров к сервисам других контейнеров путем маршрутизации через LXC-хост. (Это позволило бы мне стандартизировать настройки моих контейнеров)

1 ответ1

1

Пакеты с одного хоста никогда не достигают таблицы PREROUTING (или любой другой таблицы nat), поскольку они не маршрутизируются с одного интерфейса на другой.

Для сетей от контейнера к контейнеру вы можете использовать общий мост (который не обязательно должен совпадать с общим для хоста) или использовать маршрутизацию и таблицу iptables PREROUTING, если они находятся на разных интерфейсах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .