iptables set-mark não funciona

0

Minha máquina tem duas interfaces de rede, uma é conectada (eth0) e a outra é sem fio (wlan0). O com fio não pode se conectar a nenhum servidor NTP externo porque existe um firewall externo. O sem fio não tem essa restrição.

Portanto, desejo rotear todo o tráfego NTP para wlan0. Como eu sei, o tráfego NTP passa pela porta UDP 123. O que eu fiz está descrito abaixo.

$ sudo echo "201 ntp.out" >> /etc/iproute2/rt_tables
$ sudo ip route add default via 100.75.0.1 dev wlan0 table ntp.out

$ sudo sysctl -w net.ipv4.tcp_fwmark_accept=1
$ sudo iptables -t mangle -I PREROUTING -p udp --dport 123 -j MARK --set-mark 0xfefa
$ sudo iptables -t mangle -I OUTPUT -p udp --sport 123 -j MARK --set-mark 0xfefa
$ sudo ip rule add fwmark 0xfefa lookup ntp.out

No entanto, isso não funciona. Eu usei o Wireshark para rastrear os pacotes UDP: 123 e descobri que não há marca '' fefa '' nos pacotes.

BTW, eu defino net.ipv4.tcp_fwmark_accept em vez de net.ipv4.udp_fwmark_accept, porque não há net.ipv4.udp_fwmark_accept definido. Eu também tentei marcar pacotes TCP, mas ainda não consegui encontrar a marca nesses pacotes.

Alguém poderia me ajudar a resolver o problema? Estou usando o Ubuntu 14.04 LTS.

    
por hebothu 03.09.2015 / 01:23

1 resposta

0

Acho que acho erro. Em não porta de origem 123 then destination

Alterar

 sudo iptables -t mangle -I OUTPUT -p udp --sport 123 -j MARK --set-mark 0xfefa

para

 sudo iptables -t mangle -I OUTPUT -p udp --dport 123 -j MARK --set-mark 0xfefa

Copie também todas as entradas, exceto a entrada do gateway padrão da tabela principal

 sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table ntp.out $ROUTE; done
    
por 2707974 04.09.2015 / 08:37