Interessante, eu tive um problema semelhante envolvendo minha cabeça em torno do parâmetro encaminhamento .
No IPv4, você pode encaminhar algumas interfaces. Isso é útil especialmente em hosts com hospedagem múltipla em que você deseja manter algumas das sub-redes em interfaces internas realmente privadas. Você também pode ativar o encaminhamento para todas as interfaces usando .../all/forwarding
e você pode definir um valor padrão a ser definido para qualquer interface que surgir mais tarde. Tudo bem, mas ...
No IPv6, esse comportamento é de fato diferente. Eu defini o forwarding=1
para algumas das minhas interfaces IPv6 sem definir ../all/forwarding=1
e fiquei surpreso que nenhum encaminhamento aconteceu. O manual do kernel kernel diz o seguinte:
11.2.3.5. forwarding
Type: BOOLEAN
Default: FALSE if global forwarding is disabled (default), otherwise TRUE
Configure interface-specific Host/Router behaviour. Note: It is recommended to have the same setting on all interfaces; mixed router/host scenarios are rather uncommon. [...]
Portanto, definir /proc/sys/net/ipv6/conf/all/forwarding=1
é obrigatório para que funcione e isso parece lógico, pois o host pode ser apenas um roteador (sem solicitações de roteador, os redirecionamentos e os roteadores são ignorados) ou apenas um host simples (aceitando roteador advs & autoconf) mas não ambos ao mesmo tempo ou pelo menos não podem se comportar de maneira diferente em uma seleção de interfaces que faz a diferença para o IPv4
Embora o termo all
seja muito confuso aqui e deve ser substituído por enabled
, porque depois de definir isso no IPv6, você poderá liberar o encaminhamento em uma ou mais das outras interfaces a serem excluídas do encaminhamento!
Portanto, a condição para all
não é mais atendida. Agora eu esperaria que, se você limpar um deles, então all
será limpo também? ... mas para minha surpresa não é esse o caso!
A pergunta parece ser se all
substituir qualquer uma das outras configurações de forwarding
e
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
echo 0 > /proc/sys/net/ipv6/conf/enp2s1/forwarding
echo 1 > /proc/sys/net/ipv6/conf/enp2s2/forwarding
não pode ser verdade ao mesmo tempo em que all
é obrigatório, do meu ponto de vista é simplesmente uma contradição!