Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VyOS не работает автостарт #937

Open
Listum opened this issue Dec 14, 2024 · 31 comments
Open

VyOS не работает автостарт #937

Listum opened this issue Dec 14, 2024 · 31 comments

Comments

@Listum
Copy link

Listum commented Dec 14, 2024

vyos systemd[1]: /lib/systemd/system/zapret.service:10: Unit uses KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update the service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed.
vyos systemd[1]: Stopping zapret.service...

@Listum Listum closed this as not planned Won't fix, can't repro, duplicate, stale Dec 14, 2024
@Listum Listum reopened this Dec 14, 2024
@Listum
Copy link
Author

Listum commented Dec 14, 2024

Даже учитывая то что я поменял KillMode на mixed, мне всё равно приходится перезапускать запрет после запуска vyos. Из-за долгого применения конфигурации нужно ставить отложенный запуск для zapret. Иначе не работает

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

Этот варининг уже лет 10 и ни на что не влияет. systemd вторичен для скриптов запуска zapret, его возможности не используются. Его задача - лишь дернуть init.d/sysv/zapret

Что значит перезапускать после запуска vyos ? Перезапускать предполагает он был запущен, и его надо остановить и запустить снова. подробнее опишите процесс.
Что такое vyos ? Это ОС, контейнер ?
Не работает по какой причине ? Не применены tables, не запущены демоны ?
Может там гонки есть ? Например, встроенный фаервол убивает правила zapret ?
в варианте systemd нет никаких прикруток к фаерволам, при возникновении проблем с этим надо разделять применение фаервола и запуск демонов как описано в доке

вообщем я прекращаю догадываться, а вы описываете детали

@Listum
Copy link
Author

Listum commented Dec 14, 2024

VyOS это дистрибутив на основе Linux предназначенный для маршрутизации, роли DHCP-сервера, DNS-сервера и т.п. и т.д. Каждый раз при запуске роутера zapret почему-то не хочет работать.
Моё предположение: Для VyOS нужно время чтобы съесть конфигурацию и после он начинает шаманить с nftables, переписывая правила который zapret вносит сразу при старте демона.

journalctl zapret:
https://pastebin.com/NUJtRf26

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Этот варининг уже лет 10 и ни на что не влияет.

Тогда, возможно, это было просто совпадение.

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

Что случилось с правилами легко проверить через
nft list table inet zapret
или
iptables-save

Если используются iptables, то лучше с них уйти на nftables, если есть такая возможность.
iptables все в куче, их легко может снести фаервол. в nft вряд ли будут трогать отдельную таблицу
для nft требуется достаточно новое ядро, древности 5+ лет уже не катят

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

Вижу, что уже на nftables. Хорошо. Тогда стоит проверить таблицу nft zapret и запущены ли процессы nfqws.
В момент проблемы

@Listum
Copy link
Author

Listum commented Dec 14, 2024

image
zapret_table.txt

@Listum
Copy link
Author

Listum commented Dec 14, 2024

image

@Listum
Copy link
Author

Listum commented Dec 14, 2024

После рестарта в nft zapret'a добавляется
flowtable ft { hook ingress priority filter - 1 devices = { eth4.10 } }

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

flow offload включен в config ?
Для flow offload нужны входящие и исходящие интерфейсы. Они должны быть определены а IFACE_WAN и IFACE_LAN
На момент инициализации flowtable они уже должны существовать.
Если юнит стартует до их создания, нужно либо делать какую-то синхронизацию post-network, либо вешать хук и вызывать /opt/zapret/init.d/sysv/zapret start_fw
Или отключить offload

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Тогда придётся отключить off-load. Оставлю создание хука на потом, как ресурсов мало будет. Спасибо большое за помощь

@Listum Listum changed the title KillMode=none ломает старт при запуске systemd VyOS не работает автостарт Dec 14, 2024
@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

Даже если offload и не работает, то это не должно влиять на работоспособность.
Надо вставить запись дебаг лога в файл --debug=@/path/to/log.txt
и смотреть что происходит в проблемном состоянии

тк дистриб явно не прошивочный, в чем смысл software offloading ? очень большой трафик и очень слабая железка ?

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Да. Пока что железяка мощная, но хотелось PnP образ диска для слабой машинки

@Listum
Copy link
Author

Listum commented Dec 14, 2024

--debug=@/path/to/log.txt

А куда вставлять?

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

В параметры nfqws

@Listum
Copy link
Author

Listum commented Dec 14, 2024

image

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

Если это все, то на него ничего не приходит.
Либо трафика нет, либо он идет на другой интерфейс. Не тот, что в множестве wanif.

	set wanif {
		type ifname
		elements = { "eth4.10" }
	}

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Да. Перезапустил и на него пошёл трафик. Почему же так происходит?

@Listum
Copy link
Author

Listum commented Dec 14, 2024

eth4.10

Ну это 100% мой wan интерфейс

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

сравните в обоих состояниях
nft list set inet zapret wanif

в остальном то, что я вижу в таблице, заполнено правильно. должно как бы идти
если нет какого-то хардваре оффлоада

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Идентично.

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Очень интересная ситуация, конечно

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Попробую отключить оффлоудинг у самого Vyos. Если он не выключен

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

Теоретически могут быть правила в других таблицах.
Если это железка специализированная какая-то, там может быть оффлоад.
Но это не обьясняет почему рестарт помогает

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Offload отключен по умолчанию. Любой

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Теоретически могут быть правила в других таблицах.

https://pastebin.com/ZfSf9C4E

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Появилась догадка.
Возможно каждый раз VyOS заново пересоздаёт VLAN интерфейсы, а возможно и вообще все. По скольку zapret запускается быстрее, то zapret/nfqws не может забиндиться на интерфейс и в итоге не пропускает через себя трафик. В интерфейсе как раз указан VLAN

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

В параметрах есть --bind-fix ?

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Нет. Добавить?

@bol-van
Copy link
Owner

bol-van commented Dec 14, 2024

Нет. Бинд есть только на этих параметрах, причем только на отсылку.
Само по себе получение данных из очереди никак не завязано на какие-либо интерфейcы

@Listum
Copy link
Author

Listum commented Dec 14, 2024

Тогда всё становится ещё более загадочным

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants