
Estou tentando fazer o Xen rodar em uma configuração onde os domUs têm um IP completamente diferente do dom0 (não no mesmo intervalo de rede).Esta respostafez tudo funcionar dentro do mesmo intervalo/24, mas não com IPs completamente não relacionados.
/etc/network/interfaces do dom0:
# The primary interface.
# The configuration is done in the bridge.
auto eth0
# The bridge for Xen to use.
auto xenbr0
iface eth0 inet static
bridge_ports eth0
address 188.165.X.Y
netmask 255.255.255.0
network 188.165.X.0
broadcast 188.165.X.255
gateway 188.165.X.254
ponte do dom0 ( brctl show
):
bridge name bridge id STP enabled interfaces
eth0 8000.00259022aab2 no peth0
vif1.0
/etc/network/interfaces do domU:
# The primary network interface
auto eth0
iface eth0 inet static
address 91.121.A.B
gateway 188.165.X.254
netmask 255.255.255.0
Também tentei diferentes máscaras de rede na configuração do domU. Como devo configurar para permitir que o domU se conecte à rede de maneira funcional?
Responder1
Presumo que 91.121.xx seja roteado pela Internet para o gateway no gateway 188.165.X.254
O gateway então precisa de uma rota para 91.121.xx ir para o host da VM em 188.165.XY
Isso significa que qualquer tráfego que tente chegar a 91.121.xx terminará no seu servidor Xen.
Na pergunta anterior, todas as interfaces estavam na mesma rede e, portanto, tudo poderia ser conectado à interface principal - esta é uma conexão de camada 2.
Porém, neste caso, os convidados estão em uma rede diferente da do host. Precisamos de uma conexão roteada da camada 3.
Duas coisas precisam acontecer no host
1) Precisa de uma interface na rede 91.121.xx 2) Precisa se tornar um roteador
Para (1) temos uma configuração de rede semelhante à anterior, porém a interface física é mantida fora da ponte. Criamos uma interface de ponte para as máquinas virtuais se conectarem, mas atribuímos a ela seu próprio endereço separado da interface eth0:
auto lo br0 eth0
iface lo inet loopback
iface br0 inet static
bridge_ports none
address 91.121.x.1
netmask 255.255.255.0
iface eth0 inet static
address 188.165.X.Y
netmask 255.255.255.0
network 188.165.X.0
broadcast 188.165.X.255
gateway 188.165.X.254
Assim que isso acontecer, o servidor terá duas interfaces e poderá atuar como um roteador. Isso está desativado por padrão. Altere /etc/sysctl.conf
e certifique-se de que a seguinte linha esteja descomentada:
net.ipv4.ip_forward=1
Você pode ativar isso temporariamente na linha de comando com o seguinte, mas a alteração acima é necessária para sobreviver a uma reinicialização:
sysctl -w net.ipv4.ip_forward=1
Agora o servidor roteará os pacotes que chegam na eth0 destinados a 91.121.xx para fora da interface br0. Então agora precisamos conectar o vms a esta interface. É exatamente como você faz normalmente, apenas colocando aqui para completar:
No .cfg:
vif = ['bridge=br0, mac=00:16:3E:12:16:19']
No arquivo de interfaces domU:
auto eth0
iface eth0 inet static
address 91.121.A.B
gateway 91.121.x.x (this is the dom0 br0 interface address)
netmask 255.255.255.0
Você pode testar se tudo está funcionando corretamente na ponte fazendo ping 91.121.x.x
de domU para ping dom0 e ping 91.121.x.254
para ping domU de dom0. Em seguida, execute ping na interface externa do dom0 do domu:188.165.X.Y
O primeiro ping prova que a ponte está funcionando e o segundo prova que o roteamento está funcionando.