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/interfaces
arquivo 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/interfaces
arquivo 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.