Настройка bridge-интерфейса LXC в Debian 8 для NAT

Настройка bridge-интерфейса LXC в Debian 8 для NATМне периодически нужно поднимать контейнеры на ноутбуке под управлением Debian для развертывания различных приложений «попробовать» перед установкой на сервер. Или отладить какой-нибудь скрипт, который работает по сети. В таких случаях самый удобный вариант — использовать NAT, чтобы контейнер был доступен с хоста, но при этом самому контейнеру был доступен Интернет для установки необходимых пакетов. После установки LXC в Debian 8 «Jessie» бридж-интерфейс автоматически не поднимается, поэтому после установки придется еще кое-что сделать.

Установка пакетов

Поставим необходимые пакеты. Самое необходимое — bridge-utils

Если планируете настраивать DHCP для контейнеров, то необходимо установить также dnsmasq, который будет слушать на бридж-интерфейсе

Теперь настраиваем непосредственно бридж

Настройка

1. Раскомментируем следующую строчку в /etc/sysctl.conf (если ее там нет, до добавляем)

2. Записываем в /etc/network/interfaces

Это тот самый бридж, через который мы будем коммуницировать с контейнером. Теперь можно поднять этот бридж-интерфейс. Самый простой вариант:

Теперь вы можете видеть сетевой интерфейс lxcnat0 в выводе команды ifconfig.

3. Если нужно включить форвардинг до перезагрузки, выполняем команду

4. Теперь настраиваем сеть самого контейнера. В файле настроек контейнера (в моем случае /var/lib/lxc/debian-webserver/config) указываем

Теперь после старта контейнера с хоста он будет доступен по своему адресу 10.0.3.10. Это, как вы понимаете, настройка статического адреса, без использования DHCP. Для настройки DHCP поднимается, например, dnsmasq, который будет слушать на бридж-интерфейсе lxcnat0. В таком случае адреса будут выдаваться автоматически и адрес в настройках контейнера будет выглядеть так:

После старта вы можете проверить, действительно ли контейнер доступен по сети. В первую очередь, проверяем вывод команды «lxc-ls —fancy»

И теперь вы можете заходить по ssh и выполнять все необходимые операции по настройке системы. По окончании при необходимости можно сделать перенаправление необходимых портов на интерфейс хоста при помощи iptables.

Настройка bridge-интерфейса LXC в Debian 8 для NAT: 2 комментария

  1. Stanislav

    Прекрасная статья!
    только исправить надо ошибку, в up iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE вместо «wlan0» — «eth0» (название внешнего интерфейса)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *