ping não recebe pacotes, mas o tcpdump pode vê-los chegando

5

Estou migrando uma antiga instância do Ubuntu OpenVZ (Jaunty) para um novo host do CentOS 6.3 (usando vzdump / vzrestore).

Agora a rede não funciona corretamente. Fatos:

  • Funciona muito bem se você configurar uma nova instância do OpenVZ.
  • Posso conectar-me perfeitamente à antiga instância, mas ela não pode se conectar ao lado de fora.
  • Não é possível executar ping no host nem em mais nada.
  • Limpei todas as regras do iptables no host e dentro do VE.

ping:

root@dolores:/# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
11 packets transmitted, 0 received, 100% packet loss, time 9999ms

Ao mesmo tempo, dentro do VE:

17:49:12.730360 IP dolores > 8.8.8.8: ICMP echo request, id 59701, seq 1, length 64
17:49:12.735095 IP 8.8.8.8 > dolores: ICMP echo reply, id 59701, seq 1, length 64
17:49:13.730305 IP dolores > 8.8.8.8: ICMP echo request, id 59701, seq 2, length 64
17:49:13.735524 IP 8.8.8.8 > dolores: ICMP echo reply, id 59701, seq 2, length 64
17:49:14.730411 IP dolores > 8.8.8.8: ICMP echo request, id 59701, seq 3, length 64

Esta saída ocasionalmente ocorre com algum atraso, acredito, porque o tcpdump tenta inverter o DNS nos ips envolvidos:

17:47:20.977819 IP dolores.40623 > 213.133.98.97.domain: 60247+ PTR? 8.8.8.8.in-addr.arpa. (38)

Eu posso rodar o tcpdump no host e obter a mesma saída imediatamente.

É claro que /sys/devices/virtual/net/venet0/statistics/rx_bytes está atualizando e nenhum dos arquivos de erro /sys/devices/virtual/net/venet0/statistics/rx_ faz um peep.

Qual é o problema? Onde eu olharia agora? O problema deve estar relacionado ao próprio Ubuntu VE, presumo, já que funciona com os recém-criados.

Mais alguma saída, caso isso ajude:

root@dolores:/# ifconfig -a
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  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:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:39652 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39398 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3344760 (3.3 MB)  TX bytes:3303115 (3.3 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:78.46.236.xxx  P-t-P:78.46.236.xxx  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

.

root@dolores:/# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         U     0      0        0 venet0

No host:

[root@olive ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
static.xxx.236. *               255.255.255.255 UH    0      0        0 venet0
78.46.236.xxx   *               255.255.255.224 U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         gw-wan2.little- 0.0.0.0         UG    0      0        0 eth0
    
por miracle2k 23.02.2013 / 15:52

1 resposta

1

Tive os mesmos sintomas, mas não com uma máquina virtual. Eu consertei. Houve um problema com minha configuração SNAT e ip rule que não correspondiam.

Execute ip route , deve ter uma linha ...

default dev venet0  scope link 

Execute ip rule , deve ter 3 linhas ...

0:  from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default 
    
por 30.03.2015 / 05:55