O host Linux pára aleatoriamente de responder aos pedidos de solicitação do vizinho ipv6

1

Estou no meu limite, então qualquer ajuda é apreciada.

Eu tenho um host IPv6 (Linux 4.15.1-gentoo SMP x86_64) que pára aleatoriamente o envio de anúncios vizinhos. A execução do tcpdump mostra muitos pedidos de solicitação de vizinhos e quase zero de reação a essas solicitações. Ocasionalmente, o host ainda envia NA, mas somente após algumas dúzias de solicitações NS ignoradas. Obviamente, isso interrompe completamente a conectividade IPv6.

Não sei se é relevante, mas o IPv6 está configurado em uma interface de ponte (alguns contêineres lxc também estão sendo executados nessa ponte). A ponte é uma ponte brctl típica com o STP desativado.

O IPv6 é configurado estaticamente (host e gateway).

A inundação manual da rede com anúncios vizinhos não solicitados (usando ndsend de vzctl , por exemplo) pode atenuar um pouco o problema, mas obviamente não é uma solução.

O que é ainda mais estranho, desabilitar e reativar o ipv6 na interface via procfs ( /proc/sys/net/ipv6/conf/br0/disable_ipv6 ) e reconfigurá-lo ( ip -6 addr add , etc) temporariamente "corrige" o problema. Acontece de novo em um ou dois dias.

Por questões de integridade, há um firewall nftables em execução no host, mas permite explicitamente todo o tráfego icmpv6 (via ip6 nexthdr ipv6-icmp accept em todos os lugares). Desativar o firewall quando o problema se manifesta não altera nada.

Então, aqui está a pergunta: o que posso fazer para identificar o problema subjacente?

    
por lierdakil 17.03.2018 / 11:23

1 resposta

0

Eu estava tendo o mesmo problema com um kernel 4.16.2-gentoo. Mas no meu caso, acabou por ser completamente não relacionado ao kernel.

A caixa em questão, serviu como um gateway VPN ipv6 e estava tendo uma conexão estável. Até mesmo o roteador de sub-rede por trás dele estava perfeitamente bem, apenas a própria sub-rede roteada perdia constantemente a conexão.

TL; DR;
firewalld foi o culpado no meu caso. A configuração ipv6 rpfilter filtrou as neighor-solicitações do meu roteador de sub-rede.

Saiba mais sobre isso ativando o registro em log /etc/firewalld/firewalld.conf

LogDenied=all

que resultou em linhas de log como (MAC e SRC encurtadas e ofuscadas):

kernel: rpfilter_DROP: IN=enp6s0.100 OUT= MAC=XX:…:XX SRC=fe80:…:beaf DST=ff02:0000:0000:0000:0000:0001:ff00:0001 LEN=72 TC=0 HOPLIMIT=255 FLOWLBL=0 PROTO=ICMPv6 TYPE=135 CODE=0

Acabei de desativar o ipv6 rpfilter até conseguir descobrir por que isso está acontecendo. A configuração é bastante simples e tudo parece bem para mim, mas talvez seja um problema com a interface sendo uma vlan ...

    
por 16.04.2018 / 18:12