Доброго времени. Есть задача: все запросы с локального компа на ip-адреса с определённого ipset'a отправлять через vpn. В сети полно руководств, но что-то идёт не так.
Что делаю: 1. создал ipset
# ipset list
Name: vk
Type: hash:ip
...
Number of entries: 55
...
2. для каждого ip из сета добавляю флаг
# iptables -t mangle -A OUTPUT -m set --match-set vk dst -j MARK --set-mark 0x1
Параметр ядра для fwmark установлен:
# sysctl net.ipv4.tcp_fwmark_accept
net.ipv4.tcp_fwmark_accept = 1
3. создаю таблицу маршрутизации и настраиваю правила
# ip rule list table vk.out
1000: from all fwmark 0x1 lookup vk.out
# ip route list table vk.out
default via 10.8.0.5 dev tun0
Проверяю пингом — ничего :( Когда перенаправляю все пакеты через vpn, пинг проходит, т.е. с vpn всё в порядке.
Подскажите, плз, что я забыл. Мб ещё какой-то параметр ядра?
На всякий случай: арч, ядро 4.11.8-1-ck-ivybridge x86_64 (с патчами CK)