Centos / OVH: IP público na máquina virtual KVM

2

Desde alguns dias, estou tentando configurar meu KVM vm para ter um endereço IP público, sem sucesso algum.

Primeiro, estou na OVH e você precisa saber que eles não permitem redes de endereços MAC diferentes. Eu registrei um endereço mac virtual associado ao meu IP de failover

Aqui está minha configuração:

O convidado desejou IP: 46.105.40.x
IP do host: 176.31.240.x

Configuração do host

interface dummy0: ifcfg-dummy0

BOOTPROTO=static
IPADDR=10.0.0.1
NETMASK=255.0.0.0
ONBOOT=yes
NM_CONTROLLED=no
ARP=yes
BRIDGE=br0

ponte br0: ifcfg-br0

DEVICE=br0
TYPE=Bridge
DELAY=0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.0
PEERDNS=yes
NM_CONTROLLED=no
ARP=yes

O IP de failover é redirecionado para a ponte br0 com ip route add 46.105.40.xxx dev br0

> cat /proc/sys/net/ipv4/ip_forward
1
> cat /proc/sys/net/ipv4/conf/vnet0/proxy_arp
1
> route -n
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         176.31.240.254  0.0.0.0         UG    0      0        0 eth0
46.105.40.x     0.0.0.0         255.255.255.255 UH    0      0        0 br0
176.31.240.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br0

Configuração do convidado:

KVM:

<interface type='bridge'>
  <mac address='02:00:00:30:22:05'/>
  <source bridge='br0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>

Eu pedi emprestada a maior parte da configuração da OVH aqui (em francês, link ) para a configuração de convidados | interface eth0: ifcfg-eth0

DEVICE="eth0"
BOOTPROTO=none
HWADDR="02:00:00:30:22:05"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="e9138469-0d81-4ee6-b5ab-de0d7d17d1c8"
USERCTL=no
PEERDNS=yes
IPADDR=46.105.40.xxx
NETMASK=255.255.255.255
GATEWAY=176.31.240.254
ARP=yes

Para as rotas, eu tenho na rota-eth0:

176.31.240.254 dev eth0
default via 176.31.240.254 dev eth0

Com essa configuração, não tenho acesso à internet. A única coisa que posso fazer é pingar o ip público do host, nada mais. Minha conclusão final é que a rota não funciona, porque, quando, no guest, eu corro ping 8.8.8.8 , eu tenho, no host:

> tcpdump -i vnet0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:38:09.009324 IP 46-105-40-xxx.kimsufi.com > google-public-dns-a.google.com: ICMP echo request, id 50183, seq 1, length                  64
13:38:09.815344 IP 46-105-40-xxx.kimsufi.com > google-public-dns-a.google.com: ICMP echo request, id 50183, seq 2, length                  64

Eu nunca recebo a resposta do ping, apenas o pedido. Parece Guest - > A comunicação do host está bem.

Em eth0:

> tcpdump -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:39:40.240561 IP 46-105-40-xxx.kimsufi.com > google-public-dns-a.google.com: ICMP echo request, id 50439, seq 1, length 64
13:39:40.250161 IP google-public-dns-a.google.com > 46-105-40-xxx.kimsufi.com: ICMP echo reply, id 50439, seq 1, length 64

Eu tenho o pedido e a resposta em eth0, mas a resposta não é encaminhada para a ponte. Eu realmente não entendo porque, eu achei que era o objetivo da rota fazer isso!

IPtables está desativado no host e no convidado.

Eu realmente espero que alguns de vocês possam me ajudar!

Muito obrigado antecipadamente,

Sébastien

    
por Sébastien 09.10.2012 / 20:11

1 resposta

1

Eu tenho o mesmo problema aqui. Eu quero ser capaz de ter convidado e VM convidado em IP público. A comunicação entre o host e a VM parece funcionar bem, mas a VM não pode alcançar a Internet ou vice-versa.

Meu provedor também tem regra para ter apenas um endereço MAC por switchport. Basicamente, os endereços VMAC são usados para failover em dispositivos de rede como VRRP e alguns outros protocolos, ou seja, se o primeiro switch falhar, o segundo link para outro switch assumirá e você terá um "replicado" switchport com endereço MAC real e tudo mais.

Eu não vejo como você pode se beneficiar disso.

A melhor solução é colocar 2 IPs públicos na interface Ethernet do host, um para segundo host para VM. E faça um roteamento de políticas.

Atenciosamente

    
por 20.10.2012 / 02:39