Redirecionando pacotes marcados para o dispositivo Tun

1

Eu tenho um pequeno programa que precisa fazer várias coisas com uma seleção de pacotes, com base em várias regras de iptable. Os pacotes são MARK ed desta forma:

iptables -t mangle -d 10.10.0.0/16 -j MARK --set-mark 4
iptables -t mangle -d 10.11.0.0/24 -j MARK --set-mark 5
iptables -t mangle -d 10.0.0.1     -j MARK --set-mark 1

Eu também tenho um dispositivo Tun chamado maintun que um processo de espaço do usuário está fazendo alguma entrada / saída.

Como faço para garantir que os pacotes afetados sejam enviados para / via maintun ?

    
por Jarmund 25.05.2015 / 15:53

1 resposta

3

Você usa o roteamento de políticas .

Primeiro você marca alguns pacotes,

 iptables -A PREROUTING -t mangle -d 10.0.0.1 -j MARK --set-mark 1

então você cria uma nova tabela de roteamento, chame-a de TunRoutTable :

 echo 201 TunRoutTable >> /etc/iproute2/rt_tables

então você diz ao seu pc para usar a tabela TunRoutTable para os pacotes marcados com 1 :

 ip rule add fwmark 1 table TunRoutTable

e agora você fornece um gateway padrão para a nova tabela de roteamento:

 ip route add default via XXX.YYY.WWW.ZZZ dev tun0 table TunRoutTable

em que XXX.YY.WWW.ZZZ é o endereço IP (na notação quad comum pontilhada) do seu gateway na interface Tun0.

    
por 25.05.2015 / 16:18