J
>SET_ADD failed (No such file or directory): set __set%d
Artur
bare
Artur
kolla
Aleksey
есть идеи?
эту команду руками выполнить можешь?
Aleksey
Не, мне кажется, это с нейтроном не так кой-чо.
меня смущает что шлет то ebtables ebtables v1.8.4 (nf_tables):
J
есть идеи?
Смотри код агента и где там подставляется этот самый set. А дальше надо будет понять почему подстановка криво идет.
Dmitry
kolla
Ну вот из контейнера бы это ручками дёрнуть
Dmitry
Ну и падает на первом правиле или что-то добавляет?
Artur
на первом правиле
Aleksey
короче дерни вот это руками 'ebtables', '-t', 'nat', '--concurrent', '-A',. 'neutronMAC-tapc223dddb-44', '-i', 'tapc223dddb-44', '--among-src', 'fa:16:3e:a0:be:ee', '-j', 'RETURN’
Dmitry
В первую очередь - нейтрон
А нейтрон в докере - это вообще блюдо альденте
Aleksey
А нейтрон в докере - это вообще блюдо альденте
нормально всё работает, не надо 😁
Aleksey
Ага
проблемы были из-за замеса нейтрона и цилиума, но уже всё решили 🙂 оказывается есть коннтрек зоны, которые как раз уже есть в попенстеке и они решают проблему
Artur
neutron-rootwrap /etc/neutron/rootwrap.conf ebtables -t nat --concurrent -A neutronMAC-tapc223dddb-44 -i tapc223dddb-44 --among-src=fa:16:3e:a0:be:ee -j RETURN ebtables: No chain/target/match by that name
Artur
Bridge table: filter Bridge chain: INPUT, entries: 0, policy: ACCEPT Bridge chain: FORWARD, entries: 0, policy: ACCEPT Bridge chain: OUTPUT, entries: 0, policy: ACCEPT Bridge chain: RETURN, entries: 0, policy: ACCEPT
Artur
Bridge table: nat Bridge chain: PREROUTING, entries: 0, policy: ACCEPT Bridge chain: OUTPUT, entries: 0, policy: ACCEPT Bridge chain: POSTROUTING, entries: 0, policy: ACCEPT Bridge chain: RETURN, entries: 0, policy: ACCEPT
Artur
сори
J
Ну вот. Должна существовать цепочка neutronMAC-tapc223dddb-44, чтобы в неё правило добавить. А цепочки этой нет.
J
А почему её нейтрон не создал - хз.
Artur
создал ее вручную
Artur
теперь вернулись к ошибке
Artur
neutron-rootwrap /etc/neutron/rootwrap.conf ebtables -t nat --concurrent -A neutronMAC-tapc223dddb-44 -i tapc223dddb-44 --among-src=fa:16:3e:a0:be:ee -j RETURN ebtables v1.8.4 (nf_tables): SET_ADD failed (No such file or directory): set __set%d
J
А знаешь почему её могло не быть?
J
Потому что ты не в том netns смотрел.
J
Например)
Artur
А почему её нейтрон не создал - хз.
он ее создал, просто потом команду эту выполнил и получил то же что я вручную сделал
Eugen
он ее создал, просто потом команду эту выполнил и получил то же что я вручную сделал
а ты правило руками делал с хоста или изнутри контейнера?
Artur
внутри конейнера
Eugen
а какая ОС - убунту ?
Artur
centos 7
Artur
даже если точнее oraclelinux 7
Aleksey
даже если точнее oraclelinux 7
как я вижу туда уже nftables завезли, у нас были проблемы с ebtables на centos 8.
Eugen
внутри конейнера
а на хосте как настроена сеть? что возвращает ? sysctl -a | grep bridge-nf-call-iptables
Artur
net.bridge.bridge-nf-call-iptables = 1
Eugen
в моём случае жить стало проще с отключённым netfilter: sysctl -w net.bridge.bridge-nf-call-iptables=0
Eugen
насколько я понял, в этом месте перескаются настройки сети docker и neutron. Если кто знает точнее, подскажите
Eugen
netfilter или nftables ?
Ubuntu 20.04, вроде там netfilter, я в сетях плаваю)
Aleksey
Ubuntu 20.04, вроде там netfilter, я в сетях плаваю)
Netfilter represents a set of hooks inside the Linux kernel. А вот Iptables и nf_tables его настраивают
Eugen
в моём случае жить стало проще с отключённым netfilter: sysctl -w net.bridge.bridge-nf-call-iptables=0
ох да, конечно эта команда не отключает netfilter) она отключает фильтрацию трафика мост
Aleksey
при переходе на nf_tables посоны сказали не ссать, мол мы вам дадим новую iptables и она будет работать один в один, но лучше. А старую назовем iptables-legacy и вперёт. Но в нашем случае было не так, так как удаление цепочки немного отличалось от старого поведения
Aleksey
ох да, конечно эта команда не отключает netfilter) она отключает фильтрацию трафика мост
у тебя тогда arp_spoofing protection не работает, да и насколько я помню почти все правила применяются именно на бриджах
Artur
ладно парни, что делать то :) в инете что то особо не пишут
Artur
на ussuri такая же ерунда
Denis
в 8 центосе намерено и качественно удален iptables-legacy
Aleksey
в 8 центосе намерено и качественно удален iptables-legacy
но нас это не остановило, притаскиваешь контейнер и делаешь хостнетворк 🙂
Aleksey
ну точнее в нашем случае centos 8 в контейнере, а крутится на 18.04
Denis
но нас это не остановило, притаскиваешь контейнер и делаешь хостнетворк 🙂
все так, но firewalld если запущен на хосте заставит попотеть
Denis
--- # Can be: nftables|iptables prepare_default_firewalld_backend: iptables --- - name: Set proper firewalld backend become: true ini_file: no_extra_spaces: true option: FirewallBackend path: /etc/firewalld/firewalld.conf section: null value: "{{ prepare_default_firewalld_backend }}"
Aleksey
все так, но firewalld если запущен на хосте заставит попотеть
а это прикольный момент когда у тебя 2 набора правил, легаси и nf . Может вызвать сплитбрейн, при том не только в сети , но и в голове 😁
Denis
а то докер потом создает сети и ничего не работает :(
Denis
в интернетах принято копипастить одно и тоже решение - добавить docker0 в исключения, но.... user definet сетям от этого лучше не станет )))
Artur
контейнеры на centos 8 если что
Aleksey
контейнеры на centos 8 если что
хм, таки может быть nf_tables из контейнеров не может с netfilter хоста подружиться. Попробуй контейнеры на centos 7 или ubuntu 18&04
Denis
контейнеры на centos 8 если что
значит там nftables без legacy
Eugen
а кстати, ebtables -L должна работать одинаково с хоста и из privileged-контейнера или нет ? в нашем случае с хоста было пусто, с контейнера возвращало правила ?
Eugen
а network_mode host?
да, host=network
Eugen
легко, когда у тебя в контейнере nf_tables, а на хосте iptables.
выходит да, та конфигурация: хост - ubuntu 20, контейнер - ubuntu 18
Aleksey
у нас также и хостовая 18.04 с iptables не видит правил от контейнера, который в nf_tables все захерачил
Aleksey
выходит да, та конфигурация: хост - ubuntu 20, контейнер - ubuntu 18
в 20.04 должно быть iptables-legacy, покажет правила старой версии(от iptables)
Denis
на всякий случай перепроверить, что nft -a list ruleset пусто
Eugen
спасибо, одной головной болью меньше)
Я и твой кот
Не забывайте, что там может быть куча неймспейсов, и все эти nftables/iptables/ebtables и прочие там везде разные. ip netns sh
Eugen
контейнеры на centos 8 если что
https://developers.redhat.com/blog/2020/08/18/iptables-the-two-variants-and-their-relationship-with-nftables/
J
Чот что CentOS что Ubuntu в последние годы эт кромешный ад.
NS 🇷🇺
@adiantum