Eu tenho um servidor que possui vários IPs atribuídos a ele. Gostaria de configurá-lo como um hipervisor Xen para que cada VM tenha seu próprio IP dedicado. A maneira como tenho meus vários IPs configurados agora é:
#IP addresses are examples, actual server has public IPs
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
auto eth0:0
iface eth0:0 inet static
address 192.168.1.11
netmask 255.255.255.0
auto eth0:1
iface eth0:1 inet static
address 192.168.1.12
netmask 255.255.255.0
Eu tentei várias coisas com a ponte e, para ser sincero, estou perdendo a esperança de encontrar uma solução sozinho. Como eu conseguiria que o Xen usasse um IP específico para cada um dos domínios?
Responder1
Os endereços IP de cada uma das VMs devem ser configurados na própria VM, e não na máquina host.
Ajuda imaginar cada uma das VMs e o host com suas próprias interfaces; no entanto, apenas o host possui um cabo físico saindo dele, portanto, as interfaces da VM convidada precisam ser interligadas à interface do host.
Você cria a ponte no arquivo /etc/networks/interfaces, como segue:
auto lo br0 eth0
iface lo inet loopback
iface br0 inet static
bridge_ports eth0
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
Isso criará uma nova ponte quando a pilha de rede for iniciada (como na inicialização), e sua interface será adicionada a ela, além de fornecer à ponte o endereço IP do host. Aqui você pode ver a ponte:
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.60a4ecf28d84 no eth0
Você pode tratar a interface br0 da mesma forma que trataria a interface eth0 que ela contém.
Então, nos arquivos de configuração do convidado, você tem uma linha como:
vif = ['bridge=br0, mac=00:16:3E:12:16:19']
Isto quer dizer: "dê a esta VM uma interface virtual e adicione-a à ponte br0, e dê-lhe o seguinte mac".
Observe que não é necessário definir um endereço MAC aqui, mas eu prefiro que eu possa usar o DHCP para alocar um endereço IP estático aos convidados - dessa forma, não preciso codificar nenhum endereço IP além do host ( e o servidor DHCP, que no meu caso é uma VM).
Então, no guest, basta configurá-lo como faria com qualquer outra máquina Linux:
auto eth0
iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
gateway 192.168.1.1
Observe que isso está noconvidadoconfiguração de rede da máquina.
Ao ativar a VM, você verá que a ponte agora possui duas interfaces:
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.60a4ecf28d84 no eth0
vif1.0
Esse vif1.0 é a interface virtual do convidado. Agora o convidado poderá fazer ping no gateway e se comunicar como se estivesse diretamente conectado à sua rede com um pouco de cabo.