iptables / nat / prerouting ignora os pacotes UDP?

4

O mesmo efeito em muitos servidores com várias versões do kernel.

Existem várias regras DNAT do Iptables:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 12345 -j DNAT --to-destination 10.20.30.40:5678
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 23456 -j DNAT --to-destination 10.11.12.13:5789
....
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j LOG --log-prefix 'natudp: '
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j DNAT --to-destination 10.55.66.77:34567

Problema: as regras do UDP não estão funcionando para solicitações recebidas da eth0.
Contadores de pacotes e bytes para eles têm valores zero. Simplificação (remoção de dport) não tem efeito. Como resultado, as solicitações são passadas para a cadeia filter / INPUT em vez de FORWARD.

Nenhum problema para pacotes de interfaces virtuais (tap, veth) - eles ficam presos por regras de pré-formatação. Nenhum tal problema para TCP.
Nenhum problema desse tipo para o UDP responde .
Mas as solicitações UDP de entrada da eth0 são ignoradas pelas regras de pré-detalhamento:

# iptables -t nat -nvL PREROUTING
Chain PREROUTING (policy ACCEPT 3 packets, 174 bytes)
 pkts bytes target   prot opt in     out   source        destination         

(testing rules)
    2   126 LOG      udp  --  *      *     0.0.0.0/0     0.0.0.0/0      LOG flags 0 level 4 prefix "prerouting-udp: "
    0     0          udp  --  *      *     1.2.3.4       0.0.0.0/0               
    0     0          udp  --  *      *     1.2.3.4       0.0.0.0/0      udp dpt:25826
    0     0          udp  --  eth0   *     0.0.0.0/0     0.0.0.0/0      udp dpt:25826
    0     0          udp  --  eth0   *     1.2.3.4       0.0.0.0/0           
    0     0          udp  --  eth0   *     1.2.3.4       0.0.0.0/0      udp dpt:25826

(production rules)
    7   412 DNAT     tcp  --  eth0   *     0.0.0.0/0     0.0.0.0/0      tcp dpt:12345 to:10.20.30.40:8080
   63  3804 DNAT     tcp  --  eth0   *     0.0.0.0/0     0.0.0.0/0      tcp dpt:56789 to:10.30.40.50:8000
    0     0 DNAT     udp  --  eth0   *     1.2.3.4       0.0.0.0/0      udp dpt:25826 to:10.40.50.60:25826

Alguma idéia?

    
por user2743554 04.02.2016 / 20:01

0 respostas