ip routing nerouting
Jan 'yanek' Bortl
yanek na yanek.cz
Středa Září 23 17:58:48 CEST 2026
Hezký den,
neporadím s dotazem, ale pomůžu možná snadnějším řešením:
ip rule add můžete udělat i na základě zdrojové IP adresy (v tomto případě
a.b.c.2 a x.y.z.2), a tím se úplně vyhnout nftables, conntrackům a markování
obecně.
Dne 23. 09. 26 v 17:03 Pavel Just napsal(a):
> Zdravím.
>
> Mám hosta se dvěma rozhraními eth0 a eth1.
> Eth0 má adresu a.b.c.2/24, eth1 má x.y.z.2/24.
>
> Potřebuji, aby komunikace, která přišla přes rozhraní eth0
> se do eth0 zase vrátila a obdobně pro eth1.
> Prostě jako dva nezávislí hosti.
>
> Vyrobil jsem si dvě routovací tabulky, každá s defaultroute
> na bránu v příslušné síti. tedy něco typu
> route add default via a.b.c.1 dev eth0 table 7
> route add default via x.y.z.1 dev eth1 table 8
>
> Pak jsem vytvořil pravidla
> ip rule add fwmark 7 table 7 prio 70
> ip rule add fwmark 8 table 8 prio 80
>
> A k tomu nft ruleset
> table inet mangling {
> chain prerouting {
> type filter hook prerouting priority mangle; policy accept;
> iifname "eth0" ct mark set 0x7
> iifname "eth0" meta mark set 0x7
> iifname "eth1" ct mark set 0x8
> iifname "eth1" meta mark set 0x8
> }
> chain output {
> type filter hook output priority mangle; policy accept;
> ct mark 0x8 meta mark set 0x8
> ct mark 0x7 meta mark set 0x7
> }
> }
>
> Routovací tabulky 70 a 80 se mi neuplatní. Vždy se uplatní až v mém případě tabulka main.
> Když si dám do "chain prerouting" a "chain output" počitadla, která spínají
> na ct mark = 7,8 nebo meta mark = 7,8, tak se inkrementují dle očekávání.
> Ale ip rule je nevidí. Jádro je verze 6.12.
> Co jsem prosím přehlédl ?
>
> Pavel Just
>
--
Jan 'yanek' Bortl
Další informace o konferenci Linux