IPv6s públicos falham na ponte KVM com “Nenhum espaço de buffer disponível”

0

Já fiz esta pergunta no #networking e no #freebsd IRC canais em Freenode mas ninguém foi capaz de responder a minha pergunta e me encaminhou aqui como parece esta questão é pontual para resolver.

Eu tenho um hipervisor Proxmox onde são hospedados contêineres LXC e KVM máquinas que vão do Debian 9, Arch Linux e Windows. Todos eles são ligado ao hipervisor e a pilha IPv6 está funcionando perfeitamente com endereços IP públicos fornecidos pelo meu ISP e encaminhados diretamente para as VMs.

Uma das VMs que tenho é um dispositivo de firewall do OPNsense (baseado no FreeBSD 11.0-RELEASE-p8).

Ao contrário do outro LXC / KVM, este último não pode fazer ping em nenhuma máquina IPv6 fora daqueles acessíveis diretamente da ponte. Assim que eu tento pingar o gateway do meu hipervisor (ainda em IPv6) ou qualquer outro os hosts IPv6 ausentes (por exemplo, google.com), recebi a seguinte mensagem de erro:

[...]
ping6: sendmsg: No buffer space available
[...]
  • Primeiramente, achei que o problema ocorreu devido a problemas com os drivers do VirtIO (empacotado com o FreeBSD). Então eu mudei para NIC Intel E1000 emulada, mas o problema persiste. (Estou de volta com o VirtIO agora).
  • Um netstat -m informa os buffers como vazios, então o problema não vem daqui também.
  • Colocando a interface para baixo e para cima novamente ou reiniciando consertar o questão .
  • testei com uma nova instalação do FreeBSD e do OpenBSD (para evitar Sobreposição do OPNsense), mas o problema também persiste.

Fazendo ping da VM a partir da ponte ou de uma máquina completamente fora da infra-estrutura não responde, nem conecta (ou seja, eu tinha começou o sshd em 2222, mas não conseguiu se conectar).

O host do FreeBSD é configurado assim:

ifconfig vtnet0 <ipv4>/32
route add <gw ipv4> -iface vtnet0
route add default <gw ipv4>

ifconfig vtnet0 inet6 <ipv6> prefixlen 64
route add -inet6 <gw ipv6> -iface vtnet0
route add -inet6 default <gw ipv6>

Por favor, note que todos os meus GWs estão fora das minhas sub-redes IP.

Após aplicar essas linhas, as rotas relatadas pelo netstat -rn são Sensível para mim. Nada de errado.

Preciso que o firewall pf esteja completamente desativado (pfctl -d). eu quero certifique-se de que isso está funcionando perfeitamente antes de ativar outro nível de falhas. :)

Existe algum bug em algum lugar da pilha IPv6 do BSD, pois o Linux não é reclamando de alguma forma? Isso soa estranho porque eu acho que não sou o único em esta situação e não o único que tem GW fora de seus intervalos de IP.

Agradecemos antecipadamente pelo seu tempo / ajuda.

Atenciosamente.

Perguntado na lista de discussão freebsd-net também

    
por wget 16.05.2017 / 23:44

1 resposta

0

Depois de algumas discussões com caras da empresa por trás do OPNsense, consegui resolver o meu problema.

Meu gateway distante estava em / 56. Mesmo que meu IPv6 não seja um / 56, configure meu IPv6 com um prefixo / 56 em vez do / 64 corrigiu meu problema.

Isso se deve ao fato de que a implementação do IPv6 NDP do FreeBSD não consegue encontrar o endereço IPv6 dos gateways não considerado como um vizinho direto.

- > Link para o tópico na lista de discussão do FreeBSD.

    
por 23.05.2017 / 23:24