У меня есть несколько 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