Determinado a transformar um computador antigo em um servidor (NAS, Home Assistant, ...), decidi aprender sobre Virtualização com o Projeto Xen no Debian. O servidor deve ser usado somente em LAN e tem o endereço IP estático 10.56.0.191. Estou tentando criar um convidado em 10.56.0.192 com Xen. Para isso, segui as informações fornecidas no guia para iniciantes do projeto Xen e consegui criar um convidado VP executando Debian também.
Infelizmente, o convidado não tem conexão nenhuma. Ainda seguindo o guia para iniciantes, junto com a rede Xen , tentei configurar a interface do host, encaminhamento de IP, proxy ARP e mascaramento de IP. Infelizmente, o wiki faz referência a iptable que parece ter sido substituído por nftables . Portanto, estou tentando usar nftables .
O convidado parece não conseguir se comunicar (conexão testada por ping em vários hosts na LAN), enquanto o host consegue se comunicar corretamente.
Parece que estou esquecendo de algo importante, mas não consigo descobrir. Você poderia me ajudar com esse problema?
Configurei o host e o convidado da seguinte maneira.
Agradeço sua ajuda :-)
No host
Criei uma ponte, xenbr0
, da /etc/network/interfaces
seguinte forma:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# Static IP on ethernet
iface enp2s0 inet manual
# Bridge for Xen hypervisor
auto xenbr0
iface xenbr0 inet static
address 10.56.0.191
netmask 255.255.0.0
gateway 10.56.0.1
dns-nameservers 1.1.1.1 4.4.4.4 8.8.8.8
bridge_ports enp2s0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
O encaminhamento IPv4 e o proxy ARP estão habilitados em /etc/sysctl.conf
.
net.ipv4.ip_forward=1
net.ipv4.conf.enp2s0.proxy_arp=1
Com nftables , criei uma tabela nat e uma cadeia postrouting . Depois adicionei uma regra para o mascaramento de IP.
nft add table nat
nft add chain ip nat postrouting { type nat hook postrouting priority 0 \; }
nft add rule nat postrouting ip saddr 10.56.0.0/16 oif enp2s0 masquerade
A chamada nft list ruleset
retorna o seguinte:
table ip nat {
chain postrouting {
type nat hook postrouting priority filter; policy accept;
ip saddr 10.56.0.0/16 oif "enp2s0" masquerade
}
}
No convidado
No arquivo de configuração do convidado, a interface virtual é definida comovif = [ 'ip=10.56.0.192 ,mac=00:16:3E:FA:9C:76, bridge=xenbr0' ]
Também estou tentando configurar sua interface de rede definindo um IP estático em /etc/network/interfaces
:
auto lo
iface lo inet loopback
auto enX0
iface enX0 inet static
address 10.56.0.192
gateway 10.56.0.1
netmask 255.255.0.0
dns-nameservers 1.1.1.1 4.4.4.4 8.8.8.8