O roteamento de repente quebrou em um convidado KVM

1

Eu tenho um host baseado em CentOS e uma máquina virtual baseada em Debian KVM. Um host possui uma ponte Ethernet em sua interface de rede externa, essa ponte é usada pelo KVM:

br0       Link encap:Ethernet  HWaddr 00:25:90:01:5E:92  
          inet addr:5.XX.XX.84  Bcast:5.XX.XX.255  Mask:255.255.255.0
          inet6 addr: fe80::fc54:ff:feaf:95b3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2893439068 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2943859744 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3109906781642 (2.8 TiB)  TX bytes:3271403241664 (2.9 TiB)

br0:0     Link encap:Ethernet  HWaddr 00:25:90:01:5E:92  
          inet addr:10.228.0.1  Bcast:10.228.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

A ponte tem dois IPs, um externo e outro de uma LAN virtual entre o host e o convidado. Ele age como um gateway padrão para o convidado. O STP está desligado na ponte.

O problema é que o convidado recebeu uma regra de roteamento estranha de alguma forma:

root@new:~# ip route get 50.31.164.148
50.31.164.148 via 5.XX.XX.81 dev eth0  src 10.228.0.250 
    cache  ipid 0x0dfb rtt 4.781s rttvar 4.297s ssthresh 7 cwnd 9
root@new:~# 

5.XX.XX.81 é um gateway padrão do host e não consigo encontrar esse IP em nenhum lugar nas tabelas de roteamento estático do convidado:

root@new:~# ip route list
default via 10.228.0.1 dev eth0 
10.116.0.0/16 via 10.116.0.146 dev tun0 
10.116.0.146 dev tun0  proto kernel  scope link  src 10.116.0.145 
10.228.0.0/24 dev eth0  proto kernel  scope link  src 10.228.0.250 

Eu me pergunto como isso foi possível e o que devemos fazer para evitar situações como essa? É claro que ip route flush cache nos salvou, mas definitivamente queremos eliminar o problema em si mesmo para não liberar cegamente o cache de roteamento periodicamente.

    
por Alex 25.09.2013 / 16:34

1 resposta

1

(Convertendo meu comentário para uma resposta)

ICMP redireciona, consulte linux-ip.net/html/routing-icmp.html

Sua solução é bastante incomum, normalmente, não seria uma ponte para uma interface real, mas o roteamento de instalação e o disfarce no host.

    
por 19.12.2014 / 17:34