Назад | Перейти на главную страницу

Как изолировать два контейнера, подключенные к одному мосту?

У меня есть несколько LXD контейнеры которые привязаны к одному мосту (по умолчанию lxdbr0 или другой, не важно). У самого хоста есть еще два интерфейса, один из которых в конечном итоге подключает его к Интернету, а другой, к которому подключена точка доступа WiFi.

Потоки данных управляются Shorewall (что создает соответствующие iptable правила).

Установленные мной ограничения работают нормально для трафика между контейнерами в Интернет или в сеть AP (а также между сетью AP и Интернетом). У меня проблема в том, что на межконтейнерный трафик, похоже, не влияет iptable правила. Даже с равниной REJECT политики для IP-адреса контейнера, мне все еще удается пропинговать IP-адрес другого контейнера (и ничего больше, включая его собственный шлюз - что ожидается).

Насколько я понимаю, сам мост работает на уровне 2 ISO / OSI. В этом случае брандмауэр не повлияет на трафик.

В то же время у него есть IP, который является шлюзом для контейнеров (все контейнеры имеют адреса из одного и того же 10.20.30.0/24 сеть 10.20.30.254 IP-адрес моста). Поскольку теперь это связь уровня 3, не следует ли пропускать трафик? iptables?

Не лучший ответ, если у вас много контейнеров, но вы можете использовать Shorewall хозяева файл с записью для каждого хоста, то есть с сетью / 32 следующим образом:

/ etc / shorewall / interfaces:

#ZONE  INTERFACE   OPTIONS
...
lxc    lxc-br0     ...,routeback,bridge

/ etc / shorewall / зоны:

#ZONE       TYPE       OPTIONS         IN          OUT
fw          firewall
lxc         ipv4
lxc12:lxc   ipv4

/ etc / shorewall / hosts:

#ZONE     HOSTS                              OPTIONS
lxc12     lxc-br0:192.168.0.12/32

/ etc / shorewall / rules:

######################################################################################################################################################################################################
#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK    CONNLIMIT       TIME            HEADERS         SWITCH          HELPER
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP
#Allow host web server to proxy requests to the container
Web(ACCEPT)     $FW     lxc12