Рейтинг:0

Маршрутизация fwmark на VPN-шлюз с использованием метки nftables

флаг do

Я пытаюсь настроить выборочную маршрутизацию трафика, отфильтрованного по IP-адресу, через OpenVPN на моем маршрутизаторе OpenWRT.

У меня есть профиль OpenVPN, и я работаю с параметром route-nopull, чтобы отключить настройку шлюза по умолчанию.

Следующие команды предназначены для того, чтобы пакеты были нацелены на набор IP-адресов и помечены меткой 0x1 в разделе предварительной маршрутизации mangle:

nft add set inet fw4 marker { type ipv4_addr \;}
nft добавить элемент inet fw4 маркер {40.81.94.43}
правило вставки nft inet fw4 mangle_prerouting ipdddr @marker счетчик метаметка набор 0x1

Затем у меня есть настройка таблицы IP-маршрутов для маршрутизации помеченных пакетов через VPN-шлюз:

ip правило добавить fwmark 1 таблицу vpn
ip route добавить по умолчанию через 10.211.1.118 dev tun_vpn table vpn

Эта настройка почему-то не работает: трафик просто проходит через стандартный wan-шлюз, хотя счетчик nft показывает, что пакеты попадают в правило маркировки.

Однако, если я явно установлю таблицу маршрутизации, которая будет использоваться для IP-адреса, она будет работать так, как ожидалось:

ip правило добавить в таблицу 40.81.94.43 vpn 

направляет трафик на 40.81.94.43 через vpn-шлюз по назначению

Похоже, либо nft не помечает пакеты меткой 0x1, либо IP-правило добавить fwmark 1 не ловит почему-то. Что мне не хватает?

Рейтинг:0
флаг do

Отвечая на мой собственный вопрос, если это может быть полезно для кого-то:

После обнаружения ветки «[РЕШЕНО] iproute2 игнорирует метки соединения, установленные с помощью nftables», я обновил набор правил nft следующим образом:

правило вставки nft inet fw4 mangle_prerouting ipdddr @marker counter ct mark set 390
nft добавить правило inet fw4 mangle_prerouting ipdddr @marker counter meta mark set ct mark 

И это сработало! Оказывается, мне нужно было установить метку соединения, а не метаметку

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.