Multi IPs em uma VM Xen com ponte

Multi IPs em uma VM Xen com ponte

Embora eu seja relativamente novo no XEN (rodando no Ubuntu 14.04), não tive nenhum problema real até agora. Configurei minha rede usando ponte e isso funcionou bem para muitas máquinas diferentes até agora. Normalmente consigo encontrar minhas respostas em algum lugar, mas desta vez não consegui e procurei ajuda.

Tenho uma VM cliente (DomU) que estou tentando configurar com um grande número de IPs e isso está me causando muita dor. Aqui está a configuração:

A máquina host tem duas NICs, uma é usada para xenbr0 privado (10.10.10.x) e a outra é apenas interligada para IPS público (digamos xyz*) xenbr1:

Abaixo está meu /etc/networking/interfacesarquivo do host:

iface eth0 inet manual
auto xenbr0
iface xenbr0 inet static
    bridge_ports eth0
    address 10.10.10.112
    netmask 255.255.255.0
    network 10.10.10.0
    broadcast 10.10.10.255
    gateway 10.10.10.1

auto eth1
iface eth1 inet manual
auto xenbr1
iface xenbr1 inet manual
       bridge_ports eth1
       bridge_maxwait 1

Na VM cliente também usa dois nic em ponte /etc/networking/interfaces:

auto eth0
iface eth0 inet  static
    address x.y.z.170
    netmask 255.255.255.240
    broadcast x.y.z.175
    gateway x.y.z.161

auto eth1
iface eth1 inet static
    address 10.10.10.155
    netmask 255.255.255.0
    broadcast 10.10.10.255
auto eth0:1                    
iface eth0:1 inet static       
        address x.y.z.162      
        netmask 255.255.255.240
        broadcast x.y.z.175    
auto eth0:2                    
iface eth0:2 inet static       
        address x.y.z.163      
        netmask 255.255.255.240
        broadcast x.y.z.175    
auto eth0:3                    
iface eth0:3 inet static       
        address x.y.z.164      
        netmask 255.255.255.240
        broadcast x.y.z.175    
etc…. up to 8 alaises.    

No meu arquivo de configuração do xen eu tenho: vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]

Pretendo remover os IPs locais da VM quando tudo estiver configurado e funcionando.

Estou usando aliases, pois estou tentando mover isso de uma máquina bare metal para uma VM. Eventualmente, o uso excessivo de IPS será resolvido, mas por vários motivos ainda não posso fazer isso. De qualquer forma, quando inicializo a VM, apenas alguns IPs são pingáveis, a menos que eu faça um arping -U -I eth1 x.y.z.162, etc. para cada endereço IP. Então as coisas parecem pelo menos responder, mas o roteamento não funciona corretamente. Posso ssh e navegar até os IPs via http, mas os sites virtuais não estão funcionando corretamente (ou seja, ele só me envia para um e ignora os outros) e reiniciando o bind e alguns outros serviços não respondem corretamente. É como se o roteamento não estivesse configurado corretamente e enquanto os IPs respondem, não é realmente o IP solicitado que está respondendo, mas sim outro IP.
No entanto, isso ocorre apenas em ALGUNS dos IPS extras. Quando eu reinicio, o roteamento corrigido pelo comando arp é perdido. Então o Bind e alguns outros serviços na VM não funcionarão. Eu executo o comando arp e tudo funciona novamente.
Acho que o arping é apenas um curativo, mas não resolve o problema real. Como exatamente o mesmo sistema funciona em uma máquina bare metal, tenho quase certeza de que o problema está na configuração da minha rede XEN e não na configuração do switch ou sistema operacional que estou tentando migrar.

Para isolar ainda mais o problema, configurei um convidado Ubuntu 14.04 limpo com vários IPs usando a configuração mais moderna (e não depreciada de alias de IP) mostrada abaixo no /etc/networking/interfacesarquivo VMs:

 auto eth0
allow-hotplug eth0
iface eth0 inet static
      address x.y.z.110
      netmask 255.255.255.240
      broadcast x.y.z.175
      gateway x.y.z.161
iface eth0 inet static
      address x.y.z 162
      netmask 255.255.255.240
      broadcast x.y.z.175
iface eth0 inet static
      address x.y.z 163
      netmask 255.255.255.240
      broadcast x.y.z.175
   and on with the other IPS

Todos com os mesmos resultados. o que estou perdendo? Qualquer ajuda seria apreciada.

Responder1

Eu descobri qual era o meu problema e estou postando aqui caso alguém tenha um problema semelhante.

Na minha configuração do Xen não coloquei um endereço MAC. Ou seja, eu tive:

vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]

Quando eu precisei de algo como:

vif = [ 'bridge=xenbr0', 'mac=00:11:5e:5n:2c:1c,bridge=xenbr1' ]

O roteamento para o endereço MAC não expirou imediatamente, portanto, a execução deste comando ARP para cada IP corrigiu o roteamento: arping -U -I eth1 x.y.z.162

Suponho que cada vez que a VM inicializava, ela tinha um novo endereço MAC e apenas algumas das tabelas de roteamento eram atualizadas quando a VM era inicializada.

Agora que o endereço MAC não está mudando, está tudo bem.

Responder2

Tente trocar as configurações de interface no DomU. De acordo com a configuração do seu Dom0, você deve usar eth0 para IPs privados e eth1 para IPs públicos em seu DomU.

informação relacionada