LINUX.ORG.RU
решено ФорумAdmin

Маркировка трафика и маршрут его через другой интерфейс

 , ,


0

3

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

В общем что я сделал:
Добавил таблицу мангл в нфтаблес

table ip mangle {
    set some_service_ipv4 {
        type ipv4_addr
        flags interval
        elements = { ip-раз, ip-два...ip-сто-пятьсот )
    }
    chain prerouting {
        type filter hook prerouting priority mangle; policy accept;
        ip daddr @some_service_ipv4 meta mark set 0x2
        tcp dport { port-раз, port-два...port-десять } meta mark set 0x2
    }
    chain output {
        type route hook output priority mangle; policy accept;
        ip daddr @some_service_ipv4 meta mark set 0x2
        tcp dport { port-раз, port-два...port-десять } meta mark set 0x2
    }
}

Добавил таблицу маршрутизации для маркированных пакетов

ip route flush table 100
ip route add default dev <interface через который хочу выпустить mangle-пакеты> table 100

Добавил правило для пуска mangle-пакетов через вышесозданную таблицу

ip rule add fwmark 0x2 table 100

И нифига не ходит :(
ЧЯДНТ…?!?


Ответ на: комментарий от anonymous

это у него делает правило ip rule, олигофрен. дело, похоже, в том, что метка не ставится, надо подробно разбираться с правилами nftables.

anonymous
()

Спасибо всем! Вопрос решён.
Вся схема выше рабочая, я просто обновил список IP адресов командой

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route

Собственно что скрывать? Это ай-пихи вотсапа. Для полноты картины можно сделать так

IPS=$(whois -h whois.radb.net -- '-i origin AS32934' | grep ^route | awk '{print $2}' | sort -u)
for ip in $IPS; do
    echo "            $ip," >> /tmp/whatsapp-ips.nft
done

Далее импортировать список в nftables. Да и вообще можно извратиться и накостылить скрипт, который по крону будет обновлять IP адреса WA, да и не только.

Dodik
() автор топика