Mangle forward + route rule
Добавлено: 11 мар 2021, 15:48
Добрый день, понял что мне нужно в другую тему с другим вопросом - т.е. сюда.
Прошу ответить по возможности, любому ответу по теме буду благодарен.

Задача: трафику нужно пройти от запроса с PC1 до ответа REG1 к PC1. Трафик типа tcp\udp, все соединения между узлами физические. Firewall отключен.
Все работает если просто сделать masq с eth4 R1 на R2, адрес подменяется на 192.168.29.250. Но нужно не просто, т.к. хочу чтоб на eth4 было еще 6 ip адресов, (если было бы можно назначить определенный ip на выходе masq..) и остальные так не работают.
Получив понимание (все же не полное, но) работы mangle, решить пробовать делать так:
R1
- пометить prerouting соединение с src.adr= PC1 и нужными dst.port=**** ( метка conn_reg)
- пометить forward пакеты с out.int=bridge_video - conn.mark= (conn_reg) - mark packet= ( reg_out )
- пометить forward пакеты с in.int= bridge_video - conn.mark= (conn_reg) - mark packet= ( reg_in )
- дальше не понятно до конца то ли prerouting - conn.mark= (conn_reg) - mark routing= ( rout_reg )
и
- routes - rules - routing mark= ( rout_reg ) - action= ( lookup only in table ) - table= ( route reg )
- routes dst.adr= 192.168.29.0/24 - gate= bridge_video - routing mark= ( route reg )
то ли что..
R2
по аналогии:
- пометить prerouting соединение c src.adr= REG1 - dst.adr= PC1
- пометить forward пакеты in\out
- пометить prerouting маршрут, добавить routes - rules таблицу и маршрут с этой таблицей до PC1
Знаком c алгоритмом packet flow: т.е. в мое случае трафик от PC попадает в RAW - Conn.Track - Mangle Prerouting - Dst.Nat - Routing Decision - Mangle Forward - Mangle Postrouting - output int.
Что-то упускаю
Прошу ответить по возможности, любому ответу по теме буду благодарен.

Задача: трафику нужно пройти от запроса с PC1 до ответа REG1 к PC1. Трафик типа tcp\udp, все соединения между узлами физические. Firewall отключен.
Все работает если просто сделать masq с eth4 R1 на R2, адрес подменяется на 192.168.29.250. Но нужно не просто, т.к. хочу чтоб на eth4 было еще 6 ip адресов, (если было бы можно назначить определенный ip на выходе masq..) и остальные так не работают.
Получив понимание (все же не полное, но) работы mangle, решить пробовать делать так:
R1
- пометить prerouting соединение с src.adr= PC1 и нужными dst.port=**** ( метка conn_reg)
- пометить forward пакеты с out.int=bridge_video - conn.mark= (conn_reg) - mark packet= ( reg_out )
- пометить forward пакеты с in.int= bridge_video - conn.mark= (conn_reg) - mark packet= ( reg_in )
- дальше не понятно до конца то ли prerouting - conn.mark= (conn_reg) - mark routing= ( rout_reg )
и
- routes - rules - routing mark= ( rout_reg ) - action= ( lookup only in table ) - table= ( route reg )
- routes dst.adr= 192.168.29.0/24 - gate= bridge_video - routing mark= ( route reg )
то ли что..
R2
по аналогии:
- пометить prerouting соединение c src.adr= REG1 - dst.adr= PC1
- пометить forward пакеты in\out
- пометить prerouting маршрут, добавить routes - rules таблицу и маршрут с этой таблицей до PC1
Знаком c алгоритмом packet flow: т.е. в мое случае трафик от PC попадает в RAW - Conn.Track - Mangle Prerouting - Dst.Nat - Routing Decision - Mangle Forward - Mangle Postrouting - output int.
Что-то упускаю
