Como depurar problemas de roteamento de um dispositivo tun0 virtual?

1

Eu tenho um programa (escrito por mim) que cria um dispositivo tun0 e define uma rota para que os pacotes destinados à sub-rede 172.16.1.0/24 possam ser lido a partir deste dispositivo. Estou tentando ir na outra direção agora e escrever pacotes para o dispositivo tun que pode ser recebido por

Meu primeiro esforço, apenas alterando o endereço de origem e destino e as portas funcionaram bem. Eu posso executar o seguinte:

nc -u -s MY_IP -p 4001 172.16.1.3 4000

e minha entrada é exibida.

Meu segundo esforço, na verdade, gerar pacotes de saída a partir do zero, é atualmente falhando.

Posso executar tcpdump -i tun0 e ver os pacotes que escrevi:

11:30:14.433489 IP (tos 0x0, ttl 32, id 0, offset 0, flags [none], proto UDP (17), length 56) 172.16.1.2.54167 > Ubuntu-dbacher.local.4011: [udp sum ok] UDP, length 28

Mas meu ouvinte ( nc -l -u -s MY_IP -p 4011 ) não vê nada.

Eu suspeito que há algo errado que está impedindo o dispositivo tun0 de rotear seus pacotes, mas não sei como obter visibilidade em onde os pacotes estão sendo descartados.

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:172.16.1.1  P-t-P:172.16.1.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.0      172.16.1.1      255.255.255.0   UG    0      0        0 tun0
10.10.48.0      0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         10.10.48.1      0.0.0.0         UG    0      0        0 eth0

$ cat /proc/sys/net/ipv4/ip_forward
1

Como faço para depurar onde os pacotes tun estão sendo descartados?

(BTW, todos os pacotes são UDP.)

    
por Dave Bacher 03.02.2010 / 23:26

2 respostas

4

apenas um palpite - o linux permite o roteamento de pacotes?

execute cat / proc / sys / net / ipv4 / ip_forward - você espera ver 1. se for 0 executado:

echo 1 > /proc/sys/net/ipv4/ip_forward

verifique também o seu iptables - no começo você provavelmente quer ter o ACCEPT para a cadeia FORWARD:

iptables -P FORWARD ACCEPT
iptables -F FORWARD

ao solucionar problemas de roteamento / firewalls, geralmente uso o tcpdump [que você mencionou].

    
por 03.02.2010 / 23:41
0

Talvez isso ajude:

ip route get 198.51.100.1

ou:

ip route get to 198.51.100.1 from 192.168.0.2 iif eth0

Fonte disso: link

    
por 20.08.2018 / 14:34