ip routing nerouting

Pavel Just pavel.just na simac.cz
Středa Září 23 17:03:27 CEST 2026


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


Další informace o konferenci Linux