Rede de ponte roteada para convidados KVM junto com interfaces alias eth1 para hospedagem compartilhada com IPs dedicados para cada virtualhost

2

Primeira pergunta aqui no serverfault, um novato, todos os comentários são bem-vindos.

Eu tenho um servidor dedicado rodando o Debian GNU / Linux 8.4 (jessie) com um IP público e vários IPs públicos adicionais atribuídos a ele. O servidor tem dois NICs, eth0 e eth1, o IP público principal do servidor é roteado para eth1). Todos os IPs públicos adicionais são atribuídos a alias interfaces (eth1: 0, eth1: 1, eth1: 2 etc), exceto por 1 IP, que eu quero atribuir a um convidado KVM, mas em uma configuração de rede roteada (o datacenter não permite vários endereços MAC para se conectar às portas do switch, então não tenho outra opção a não ser usar o roteamento em vez de bridging).

Eu configurei os aliases de interface e posso atribuir os IPs públicos correspondentes a diferentes hosts virtuais no Apache 2.4 (através do uso do painel de controle de hospedagem de sites do ISPConfig 3). Os virtualhosts funcionam bem nesta configuração. No entanto, quando tento adicionar uma ponte de rede roteada (vmbr0) e direcionar o tráfego de convidados KVM por meio dela, perco a conectividade e tenho que reinicializar o servidor. Após a reinicialização, o servidor funciona por algum tempo (minutos) e perde a conectividade novamente. Eu não consigo descobrir o que está errado.

Nota: eu segui o guia Hetzner [ link em outro sistema host, e os convidados do KVM funcionam bem. A única diferença são as interfaces com alias que também preciso ter neste caso.

Eu criei a interface da bridge com:

brctl addbr vmbr0

antes de reiniciar a rede com

/etc/init.d/networking restart

Configuração de rede para o sistema host:

auto lo
        iface lo inet loopback

auto eth0
        iface eth0 inet manual

auto eth1
        iface eth1 inet static
        address AAA.AAA.AAA.AAA
        netmask 255.255.255.0
        gateway AAA.AAA.AAA.1
        pointopoint AAA.AAA.AAA.1

auto eth1:1
        iface eth1:1 inet static
        address BBB.BBB.BBB.BBB
        netmask 255.255.255.255

auto eth1:2
        iface eth1:2 inet static
        address CCC.CCC.CCC.CCC
        netmask 255.255.255.255

auto eth1:3
        iface eth1:3 inet static
        address DDD.DDD.DDD.DDD
        netmask 255.255.255.255

auto eth1:4
        iface eth1:4 inet static
        address EEE.EEE.EEE.EEE
        netmask 255.255.255.255

auto eth1:5
        iface eth1:5 inet static
        address FFF.FFF.FFF.FFF
        netmask 255.255.255.255

auto eth1:6
        iface eth1:6 inet static
        address GGG.GGG.GGG.GGG
        netmask 255.255.255.255

auto eth1:7
        iface eth1:7 inet static
        address HHH.HHH.HHH.HHH
        netmask 255.255.255.255

auto eth1:8
        iface eth1:8 inet static
        address III.III.III.III
        netmask 255.255.255.255

auto eth1:9
        iface eth1:9 inet static
        address JJJ.JJJ.JJJ.JJJ
        netmask 255.255.255.255

auto eth1:10
        iface eth1:10 inet static
        address KKK.KKK.KKK.KKK
        netmask 255.255.255.255

# KVM VM routed (bridge) interface for single IPs
auto vmbr0
iface vmbr0 inet static
       address         AAA.AAA.AAA.AAA
       netmask         255.255.255.0
       bridge_ports    none
       bridge_stp      off
       bridge_fd       0

#      up ip route add ip1_goes_here/32 dev vmbr0
#      up ip route add ip2_goes_here/32 dev vmbr0
#      up ip route add ip3_goes_here/32 dev vmbr0

Ainda não criei a máquina convidada KVM. Talvez eu deva ter uma VM em execução e o tráfego roteado para ela ANTES de trazer a ponte vmbr0 por algum motivo? Se eu puder fazer isso funcionar, adicionarei mais convidados do KVM com IPs públicos adicionais atribuídos a eles.

A última coisa a adicionar é que este é um servidor que já está executando alguns sites, por isso, se o que eu preciso pode ser feito e com um tempo mínimo de inatividade, seria ótimo!

Obrigado!

    
por blackpit 29.04.2016 / 10:22

1 resposta

0

Se você estiver usando uma ponte, deverá usar uma interface física nela. Portanto, seu /etc/network/interfaces deve ser assim:

auto lo vmbr0

iface vmbr0 inet static
       address         AAA.AAA.AAA.AAA
       netmask         255.255.255.0
       bridge_ports    none
       bridge_stp      off
       bridge_fd       0
       bridge_ports    eth1
       bridge_maxwait  5

iface vmbr0:1 inet static
       address BB.BB.BB.BB
       netmask 255.255.255.255

E assim por diante para as outras interfaces.

    
por 05.05.2016 / 19:56