Здравствуйте. Нужна помощь опытных линуксоидов.
Понадобилось мне на своем роутере, с прошивочкой OpenWRT слать трафик, адресованный на определенные IP-адреса, через vpn-тунель. Список иногда меняется и нужно как-то обновлять правила маршрутизации.
Сначала я думал использовать скрипт, который будет прописывать правила через iptables для каждого адреса, но из-за того, что список большой, а роутер тормозной, это крайне не оптимально.
Немножко погуглив я узнал про замечательную утилиту ipset которая, как я понял, позволяла сделать список адресов и затем использовать его в единственном правиле iptables и это работало бы быстрее.
У OpenWRT есть пакетный менеджер opkg, через который я без каких либо проблем поставил пакеты ipset и iptables-mod-ipset.
Но тут меня ждало разочарование. На любую команду ipset ответ один, к примеру:
root@BAKA0:~# ipset list
ipset v6.11: Cannot open session to kernel.
Ну, думаю, ладно. Всякое бывает. OpenWRT сама по себе обрезанная и, наверное, просто чего-то не хватает. Решил пока забить на эту проблему и пойти поиграться с ipset в своей debian-песочнице.
Там нужного пакета тоже не стаяло, так что я его поставил. Но и тут произошло то, чего я не ожидал:
root@voaoom:~# ipset list
ipset v6.12.1: Cannot open session to kernel.
Тогда я подумал, что у меня просто кривые руки и я что-то упустил. Потратил пару часов на гугление этой ошибки. Некоторые люди сталкивались с таким, и даже
здесь, но нигде конкретных решений не было. Это уже серьёзно.
В общем, я уже не знаю что делать. Может тут кто-нибудь поможет?
Ну и немного версий, если поможет.
Роутер:
root@BAKA0:~# uname -a
Linux BAKA0 3.3.8 #5 Wed Jun 12 12:10:41 MSK 2013 mips GNU/Linux
root@BAKA0:~# ipset -v
ipset v6.11, protocol version: 6
root@BAKA0:~# iptables -V
iptables v1.4.10
Песочница:
root@voaoom:~# uname -a
Linux voaoom 2.6.32-042stab084.12 #1 SMP Tue Nov 26 20:18:08 MSK 2013 x86_64 GNU/Linux
root@voaoom:~# ipset -v
ipset v6.12.1, protocol version: 6
root@voaoom:~# iptables -V
iptables v1.4.14