Rede de Convidados Kvm Inacessível

1

Eu tenho uma configuração kvm com vários guest vms rodando o ubuntu.

Por algum motivo, não consigo obter tráfego na porta 80 dos convidados para o exterior. O contrário funciona bem, o apache entrega as páginas hospedadas como deveria. Outras portas como ssh também funcionam bem.

Aqui está um exemplo:

me@guest:~$ curl heise.de
curl: (7) Failed to connect to 2a02:2e0:3fe:100::8: Network is unreachable

O encrespamento falha com Rede inacessível após um longo tempo limite e parece tentar usar o endereço IPv6, o que não é suposto fazer. Curl versus domínios hospedados localmente funciona.

O ping funciona:

me@guest:~$ ping heise.de
PING heise.de (193.99.144.80) 56(84) bytes of data.
64 bytes from redirector.heise.de (193.99.144.80): icmp_req=1 ttl=245 time=6.92 ms
64 bytes from redirector.heise.de (193.99.144.80): icmp_req=2 ttl=245 time=7.05 ms

Desde que aconteceu em todos os meus convidados ao mesmo tempo, estou pensando que deve ser algo que fiz no host. Mas mesmo quando eu desligo todas as minhas regras de iptables de homebrew, ainda não funciona.

Então, em algum lugar dentro da rede kvm / libvirt, meus pedidos http vão para onde eles não deveriam. Aqui está a minha configuração de rede para o KVM

<network>
  <name>network_nat</name>
  <uuid>....</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0' />
  <mac address='52:54:00:30:9B:D6'/>
  <ip address='192.168.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.128' end='192.168.100.254' />
      <host mac='52:54:00:e4:71:f5' name='web' ip='192.168.100.210' />
    </dhcp>
  </ip>  
</network>

Meus convidados estão configurados para usar essa rede. Dhcp parece funcionar: pelo menos o convidado tem o endereço IP que eu configurei.

Então, por que não consigo acessar sites de meus convidados?

    
por Yashima 27.05.2013 / 20:59

1 resposta

1

Parte do problema foi resolvido após uma reinicialização. É possível que seguindo o conselho aqui: link ajudou a corrigir a interface de rede.

Adicionei estas linhas a /etc/sysctl.conf

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Eu também alterei minha definição de interface em /etc/network/interfaces para ficar assim:

auto  br0
iface br0 inet static
  address   176.9.xxx.xxx
  broadcast 176.9.xxx.xxx
  netmask   255.255.255.224
  gateway   176.9.xxx.xxx
  bridge_ports eth0
  bridge_fd 0 
  bridge_maxage 0
  bridge_stp off

Após essas duas alterações (que podem ou não ter ajudado) e a reinicialização não funcionará mais em um tempo limite e erro de "rede não-redutível", em vez disso, produziu um resultado do meu apache local. Ficou claro que o meu próprio redirecionamento de portas no iptables era o culpado. Eu não tinha especificado uma interface de entrada para o encaminhamento de porta das portas 80 e 443. Eu adicionei br0 e, em seguida, tudo funcionou bem.

Aqui estão as minhas regras do iptables para o encaminhamento de porta. Eu estou usando isso em combinação com ufw como firewall, então eu tenho essas linhas no final de /etc/ufw/before.rules

Este é adicionado à tabela de filtros:

-I FORWARD -m state -d 192.168.100.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT

E esta é minha tabela nat. O erro foi omitir o parâmetro --in-interface :

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 12345 -j DNAT --to 192.168.100.210:22
-A PREROUTING -p tcp --in-interface br0 --dport 80 -j DNAT --to 192.168.100.210:80
-A PREROUTING -p tcp --in-interface br0 --dport 443 -j DNAT --to 192.168.100.210:443
-A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE
COMMIT

(Nota: Por algum motivo, inserir essas mesmas regras manualmente enquanto o ufw está desativado não produz uma configuração de encaminhamento de porta funcional.)

    
por 27.05.2013 / 22:16