У меня есть ноутбук с 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-хост. (Это позволило бы мне стандартизировать настройки моих контейнеров)