Как стать автором
Обновить

Комментарии 18

Интересно было бы почитать про современные CNI-реализации (calico, cilium, flannel, weave).

В планах еще есть статья про работу overlay сети в Swarm
Спасибо за хорошую статью. Отлично, overlay — логичное продолжение.
А нет желания описать что-то, что не влияет на производительность сети (пропускную способность, задержку), что-то типа macvlan или ipvlan? В проде оно всё-таки посимпатичнее смотрится.
Имеете ввиду по сравнению с bridge? Разница не фатальна (стр. 22).
В сравнении с overlay, особенно swarm'овским (хотя может они за год и перепилили его) :)
Было бы интересно услышать про недокументированный INPUT в таблице nat, и его особенности
Появился вот тут

Используется для всяких хитростей

Действительно, на данный момент не задокументирован
Могу ошибаться т.к. давно не проверял, но по памяти:
После установки докера на хост появлялась цепочка INPUT в nat (до этого не было). Соотв, так как у нее дефолт в ACCEPT, то все правила в INPUT у filter тупо не работают и их приходилось «дублировать». При чем я не говорю о фильтрации чего-то «в контейнерах/namespace-ах». На хосте стоит nginx на 80м порту и надо было отфильтровать что-то.
Ну, docker с высокой вероятностью не имеет к этому отношения. INPUT в nat появился как раз после того самого обновления.
Ваша правда. Только что проверил на чистой обесдокеренной виртуалке, в nat присутствует INPUT. Видать упомянутый эффект встречался в более старых ядрах/дистрибутивах. Просто я достаточно сильно уверен что в iptables -t nat -nL -v появлялся INPUT после установки докера.

На самом деле более раздражает описанный эффект с фильтрацией… Но я не готов повторять сейчас эксперимент чтобы проверить…
У себя на продакшен серверах отключаю iptables докера. (--iptables=false)
Иначе — ломало, правила.
А на сервере парой правил — прописываю nat для контейнеров.

Аналогично, правда связано это было в первую очередь с использованием firewalld с которым dockerовское управление iptables дружит не очень. Например, тот же fail2ban прекрасно умеет работать и с firewalld и с iptables-rules (вариант статического файервола, использующего iptables-save/iptables-restore).

Можно ли в docker сделать изолированную виртуальную сеть между группой контейнеров как в VirtualBox?
Т.е. чтобы можно было запустить две и более таких групп контейнеров с одинаковыми ip, и соответственно
эти сети друг-другу бы не мешали.
Можно всё, кроме, боюсь, одинаковых ip. Пространство адресов на хосте одно, изоляция происходит на уровне iptables. Но дело в том, что по Docker-way вам и не нужно знать ip адреса контейнеров, ибо есть алиасы.
Проблема как раз в том, что для моего сценария нужно чтобы была возможно иметь одинаковые ip.
Есть разрабатываемая (встраиваемая) система из нескольких узлов, у неё внутри относительно жёстко вшитые ip. Хотелось иметь возможность запускать для тестирования несколько таких систем на одном тестовом стенде.
Сейчас для этого используется vagrant+virtualbox. Хотелось двинуть в сторону docker со всеми его плюшками.
Но вот застряли. И не совсем ясно куда «копать». Возможно ли это принципиально с docker или нет.
Может ли тут помочь Open vSwitch + vlan-ы?
С Open vSwitch по идее должно быть возможно, драйвер есть.

Но я честно сказать так глубоко не копал, не было нужды
Эх… хотелось проще. В Virtualbox это буквально одной галочкой. Но в любом случае спасибо за участие и за статью :)
Присоединяюсь к голосам за продолжение про overlay.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории