Como forçar determinado tráfego através do túnel GRE?

2

Veja o que eu faço.

Servidor (a Internet pública é 222.x.x.x):

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf  
sysctl -p  
iptunnel add gre1 mode gre local 222.x.x.x remote 115.x.x.x ttl 255  
ip add add 192.168.168.1/30 dev gre1  
ip link set gre1 up  
iptables -t nat -A POSTROUTING -s 192.168.168.0/30 -j SNAT --to-source 222.x.x.x  
iptables -t nat -A PREROUTING -d 222.x.x.x -j DNAT --to-destination 192.168.168.2  

Cliente (a Internet pública é 115.x.x.x):

iptunnel add gre1 mode gre local 115.x.x.x remote 222.x.x.x ttl 255  
ip add add 192.168.168.2/30 dev gre1  
ip link set gre1 up  
echo '100 tunnel' >> /etc/iproute2/rt_tables  
ip rule add from 192.168.168.0/30 table tunnel  
ip route add default via 192.168.168.1 table tunnel  

Até aqui tudo parece dar certo. Mas então 1ª pergunta, como usar o túnel GRE como rota padrão? O computador cliente ainda está usando a interface 115.x.x.x como padrão.

2 ª questão, como forçar apenas o tráfego ICMP para passar por túnel, e tudo mais vai interface padrão? Eu tento fazer isso no computador do cliente:

ip rule add fwmark 200 table tunnel  
iptables -t mangle -A OUTPUT -p udp -j MARK --set-mark 200  

Mas depois de fazer isso, meu programa de ping expirará (se eu não estiver fazendo o comando acima e usando ping -I gre1 ip , ele funcionará). Mais tarde eu quero fazer outra coisa também, como apenas a porta UDP 53 através do túnel, etc.

Terceira pergunta, no computador cliente, forço um programa mysql a escutar na interface gre1 192.168.168.2. No computador cliente, há também mais uma interface pública (IP 114.x.x.x) ... Como encaminhar o tráfego corretamente usando iptables e route, então o mysql também responde a um pedido vindo desta interface pública 114.x.x.x?

    
por wew 14.12.2012 / 03:12

1 resposta

1

Pergunta 1

Confira usando um túnel gre como rota padrão .

Pergunta 2 todo o icmp através do túnel

iptables -t nat -A POSTROUTING -o gre1 -p icmp -j SNAT --to-source 192.168.168.2

Pergunta 3

Na máquina cliente, use o DNAT para fazer o encaminhamento de porta da porta externa para a porta do servidor.

Método 2 - reflexão de porta / espelhamento de porta

iptables -t nat -A PREROUTING -p tcp -m tcp -m multiport -d 114.x.x.x --dports 3306 -j DNAT --to-destination 192.168.168.1
iptables -t nat -A POSTROUTING -o gre1 -p tcp -m tcp -m multiport -d 192.168.168.1 --dports 3306 -j SNAT --to-source 192.168.168.2
    
por 14.12.2012 / 06:01