O problema foi que os pacotes UDP não estavam sendo passados. Eu não sei porque. TCP DNS funciona muito bem. No final, usei network-manager-openconnect
e apenas retivei um adaptador virtual no VirtualBox e ele funciona.
Estou executando o Ubuntu e o gerenciador de rede. Eu tenho duas interfaces diferentes, eth0
e eth1
. O gerente de rede adicionou (até onde eu sei) a rota manual corretamente:
~$ ip route
default via 172.16.0.2 dev eth1 proto static
10.0.0.0/8 via 172.16.0.2 dev eth1 proto static
130.35.0.0/16 via 172.16.0.2 dev eth1 proto static
...
172.16.0.0/12 dev eth1 proto kernel scope link src 172.16.0.15 metric 1
192.135.82.0/24 via 172.16.0.2 dev eth1 proto static
eth0
aparece, mas isso parece ser um problema separado. Mesmo considerando as rotas acima, a pilha de IP parece estar preferindo eth0
:
~$ ping 130.35.249.52
PING 130.35.249.52 (130.35.249.52) 56(84) bytes of data.
^C
--- 130.35.249.52 ping statistics ---
18 packets transmitted, 0 received, 100% packet loss, time 17132ms
~$ ping -Ieth1 130.35.249.52
PING 130.35.249.52 (130.35.249.52) from 172.16.0.15 eth1: 56(84) bytes of data.
64 bytes from 130.35.249.52: icmp_seq=1 ttl=57 time=210 ms
Além disso,
~$ ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
~$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 172.16.0.2 0.0.0.0 UG 0 0 0 eth1
10.0.0.0 172.16.0.2 255.0.0.0 UG 0 0 0 eth1
130.35.0.0 172.16.0.2 255.255.0.0 UG 0 0 0 eth1
...
172.16.0.0 0.0.0.0 255.240.0.0 U 0 0 0 eth1
192.135.82.0 172.16.0.2 255.255.255.0 UG 0 0 0 eth1
~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:01:b1:f6 brd ff:ff:ff:ff:ff:ff
inet6 fe80::a00:27ff:fe01:b1f6/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:35:eb:24 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.15/12 brd 172.31.255.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe35:eb24/64 scope link
valid_lft forever preferred_lft forever
Como posso forçar a pilha de IP a obedecer a essas rotas?
~$ ip route get 130.35.249.52
130.35.249.52 via 172.16.0.2 dev eth1 src 172.16.0.15
cache
Esta situação está ficando um pouco mais complicada. Parece que a falha no primeiro ping é temporária , o segundo ping para eth1
é bem-sucedido e, em seguida, os pings subsequentes para eth0
são roteados corretamente. É difícil para mim determinar como a pilha de IP entra nesse estado, mas, por enquanto, tentarei resolver um problema diferente relacionado ao DNS.
Tags ip routing ubuntu networkmanager