@Sergey0093

Как маршрутизировать некоторые сайты с помощью IPSET и DNSMASQ на определенный интерфейс?

Помогите настроить правильно маршрутизацию некоторых сайтов на другой интерфейс, с помощью ipset и dnsmasq. Уже просмотрел все что нашел мануалы, но все равно что то не так работает, точнее нужные домены не идут через выбранный интерфейс.

cat /etc/resolv.conf
spoiler

# Generated by NetworkManager
nameserver 127.0.0.1
nameserver 192.168.0.1


ip a
spoiler

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 02:42:c6:27:b3:b1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.6/24 brd 192.168.2.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd45:e02f:827e:0:42:c6ff:fe27:b3b1/64 scope global mngtmpaddr dynamic
       valid_lft forever preferred_lft forever
    inet6 fe80::42:c6ff:fe27:b3b1/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 12:42:c6:27:b3:b1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.105/24 brd 192.168.0.255 scope global dynamic wlan0
       valid_lft 6951sec preferred_lft 6951sec
    inet6 fe80::5617:c487:bc95:a666/64 scope link
       valid_lft forever preferred_lft forever
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none
    inet 10.114.114.2/24 brd 10.114.114.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::51f9:2967:8ef2:bac7/64 scope link flags 800
       valid_lft forever preferred_lft forever



ip r
spoiler

default via 192.168.0.1 dev wlan0 proto static metric 600
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.105 metric 600
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.6
10.114.114.0/24 dev tun0 proto kernel scope link src 10.114.114.2


cat /etc/dnsmasq.conf
spoiler

listen-address=127.0.0.1
server=/eth0.me/vk.com/127.0.0.1
ipset=/eth0.me/vk.com/vpnlist


Создание таблицы и маршрутизации:
ipset create vpnlist hash:ip timeout 3600
ip rule add fwmark 1 table 1
ip route add default dev tun0 table 1
iptables -w -A PREROUTING -t mangle -m set --match-set vpnlist dst,src -j MARK --set-mark 1


host -a eth0.me
spoiler

Trying "eth0.me"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7688
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;eth0.me. IN ANY

;; ANSWER SECTION:
eth0.me. 83491 IN SOA ns1.internex.at. do-not-reply.eth0.me. 2019021705 43200 7200 1209600 86400
eth0.me. 83491 IN NS ns3.internex.at.
eth0.me. 83491 IN NS ns4.internex.at.
eth0.me. 83491 IN NS ns1.internex.at.
eth0.me. 83491 IN NS ns2.internex.at.

Received 157 bytes from 127.0.0.1#53 in 19 ms


Выполняю wget -qO- eth0.me в ответ вывод ip провайдера, а не vpn.
  • Вопрос задан
  • 251 просмотр
Пригласить эксперта
Ответы на вопрос 2
@q2digger
никого не трогаю, починяю примус
Это все на одном хосте? Это не роутер?
Тогда не PREROUTING а OUTPUT
Ответ написан
@YaDr
Если есть VPN (а он есть, судя по tun0) - тогда лучше взять socks-прокси (danted например) и какое-нибудь расширение типа foxy proxy. Не надо собирать IP (которые имеют свойство меняться, особенно если сайт на каком-нить cloudflare).
Альтернатива - берем quagga или bird, делаем статики с нужным next-hop. Никакие ip rules / sets/ tables не нужны для этого.

UPD: прочитал внимательнее. ipset создан с hash:ip, а матч почему-то сделан src/dst. Почему не --match-set vpnlist dst ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы