Привет! Прежде чем я создам заявку в техподдержку, не могли бы какие-нибудь знатоки посмотреть мои настройки файрвола? Я тут впервые пытаюсь покопаться в этом (раньше только фильтровал), так что, может, что-то намудрил, но я клянусь, что не вижу, что не так…
Вот, посмотрите, как выглядят правила ip->firewalls из winbox (запущен на RB532, ROS 2.9.27, F/Ware 1.13). В общем, я хочу отмечать типы пакетов для приоритизации в очередях. Как видите, суммы для p2p_conn/p2p_packet и other_conn/other_packet совпадают… но другие нет.
Вот правила, которые я использую, немного отформатированы для удобства:
0 chain=prerouting action=mark-packet new-packet-mark=all passthrough=yes
1 chain=prerouting protocol=tcp dst-port=8291 action=mark-connection new-connection-mark=winbox_conn passthrough=yes
2 chain=prerouting connection-mark=winbox_conn action=mark-packet new-packet-mark=winbox_pack passthrough=no
3 chain=prerouting p2p=all-p2p action=mark-connection new-connection-mark=p2p_conn passthrough=yes
4 chain=prerouting connection-mark=p2p_conn action=mark-packet new-packet-mark=p2p_pack passthrough=no
5 chain=prerouting protocol=tcp dst-port=80 action=mark-connection new-connection-mark=http_conn passthrough=yes
6 chain=prerouting protocol=tcp dst-port=8080 action=mark-connection new-connection-mark=http_conn passthrough=yes
7 chain=prerouting connection-mark=http_conn action=mark-packet new-packet-mark=http_pack passthrough=no
8 chain=prerouting protocol=tcp dst-port=443 action=mark-connection new-connection-mark=https_conn passthrough=yes
9 chain=prerouting connection-mark=https_conn action=mark-packet new-packet-mark=https_pack passthrough=no
10 chain=prerouting protocol=tcp dst-port=53 action=mark-connection new-connection-mark=dns_conn passthrough=yes
11 chain=prerouting protocol=udp dst-port=53 action=mark-connection new-connection-mark=dns_conn passthrough=yes
12 chain=prerouting connection-mark=dns_conn action=mark-packet new-packet-mark=dns_pack passthrough=no
13 chain=prerouting protocol=tcp dst-port=25 action=mark-connection new-connection-mark=email_conn passthrough=yes
14 chain=prerouting protocol=tcp dst-port=109 action=mark-connection new-connection-mark=email_conn passthrough=yes
15 chain=prerouting protocol=udp dst-port=109 action=mark-connection new-connection-mark=email_conn passthrough=yes
16 chain=prerouting protocol=tcp dst-port=110 action=mark-connection new-connection-mark=email_conn passthrough=yes
17 chain=prerouting protocol=udp dst-port=110 action=mark-connection new-connection-mark=email_conn passthrough=yes
18 chain=prerouting connection-mark=email_conn action=mark-packet new-packet-mark=email_pack passthrough=no
19 chain=prerouting action=mark-connection new-connection-mark=other_conn passthrough=yes
20 chain=prerouting connection-mark=other_conn action=mark-packet new-packet-mark=other_pack passthrough=no
Мне кажется, что эти правила выглядят нормально – я отмечаю соединения к различным портам и разрешаю прохождение, пока соответствующее правило не отметит пакеты из этих соединений, и не заблокирует прохождение. Затем очереди проверяют наличие отметок пакетов и приоритизируют их. Судя по всему, очереди, питаемые этим правилом, показывают завышенные суммы. Я не вижу никакой связи между количеством соединений и пакетов, единственное, что объединяет неработающие правила – это аргумент dst-port. Может быть, я что-то не так понимаю? Правильно ли я использую цепочку prerouting? Я изначально размещал их в цепочке input, но они не передавали информацию в мои PCQ (а это для меня совершенно новая тема). (Вот что значит самообучение – думаешь, что все понимаешь идеально… пока что-то не начинает работать). Не знает ли кто-нибудь способ посмотреть, какие пакеты перехватывает конкретное правило, чтобы проследить их происхождение? Буду очень признателен за любую помощь. Заранее спасибо.
Вот, посмотрите, как выглядят правила ip->firewalls из winbox (запущен на RB532, ROS 2.9.27, F/Ware 1.13). В общем, я хочу отмечать типы пакетов для приоритизации в очередях. Как видите, суммы для p2p_conn/p2p_packet и other_conn/other_packet совпадают… но другие нет.
Вот правила, которые я использую, немного отформатированы для удобства:
0 chain=prerouting action=mark-packet new-packet-mark=all passthrough=yes
1 chain=prerouting protocol=tcp dst-port=8291 action=mark-connection new-connection-mark=winbox_conn passthrough=yes
2 chain=prerouting connection-mark=winbox_conn action=mark-packet new-packet-mark=winbox_pack passthrough=no
3 chain=prerouting p2p=all-p2p action=mark-connection new-connection-mark=p2p_conn passthrough=yes
4 chain=prerouting connection-mark=p2p_conn action=mark-packet new-packet-mark=p2p_pack passthrough=no
5 chain=prerouting protocol=tcp dst-port=80 action=mark-connection new-connection-mark=http_conn passthrough=yes
6 chain=prerouting protocol=tcp dst-port=8080 action=mark-connection new-connection-mark=http_conn passthrough=yes
7 chain=prerouting connection-mark=http_conn action=mark-packet new-packet-mark=http_pack passthrough=no
8 chain=prerouting protocol=tcp dst-port=443 action=mark-connection new-connection-mark=https_conn passthrough=yes
9 chain=prerouting connection-mark=https_conn action=mark-packet new-packet-mark=https_pack passthrough=no
10 chain=prerouting protocol=tcp dst-port=53 action=mark-connection new-connection-mark=dns_conn passthrough=yes
11 chain=prerouting protocol=udp dst-port=53 action=mark-connection new-connection-mark=dns_conn passthrough=yes
12 chain=prerouting connection-mark=dns_conn action=mark-packet new-packet-mark=dns_pack passthrough=no
13 chain=prerouting protocol=tcp dst-port=25 action=mark-connection new-connection-mark=email_conn passthrough=yes
14 chain=prerouting protocol=tcp dst-port=109 action=mark-connection new-connection-mark=email_conn passthrough=yes
15 chain=prerouting protocol=udp dst-port=109 action=mark-connection new-connection-mark=email_conn passthrough=yes
16 chain=prerouting protocol=tcp dst-port=110 action=mark-connection new-connection-mark=email_conn passthrough=yes
17 chain=prerouting protocol=udp dst-port=110 action=mark-connection new-connection-mark=email_conn passthrough=yes
18 chain=prerouting connection-mark=email_conn action=mark-packet new-packet-mark=email_pack passthrough=no
19 chain=prerouting action=mark-connection new-connection-mark=other_conn passthrough=yes
20 chain=prerouting connection-mark=other_conn action=mark-packet new-packet-mark=other_pack passthrough=no
Мне кажется, что эти правила выглядят нормально – я отмечаю соединения к различным портам и разрешаю прохождение, пока соответствующее правило не отметит пакеты из этих соединений, и не заблокирует прохождение. Затем очереди проверяют наличие отметок пакетов и приоритизируют их. Судя по всему, очереди, питаемые этим правилом, показывают завышенные суммы. Я не вижу никакой связи между количеством соединений и пакетов, единственное, что объединяет неработающие правила – это аргумент dst-port. Может быть, я что-то не так понимаю? Правильно ли я использую цепочку prerouting? Я изначально размещал их в цепочке input, но они не передавали информацию в мои PCQ (а это для меня совершенно новая тема). (Вот что значит самообучение – думаешь, что все понимаешь идеально… пока что-то не начинает работать). Не знает ли кто-нибудь способ посмотреть, какие пакеты перехватывает конкретное правило, чтобы проследить их происхождение? Буду очень признателен за любую помощь. Заранее спасибо.
