Tenho vários computadores locais em uma configuração doméstica simples, todas as interfaces configuradas com systemd-networkd (systemd versão 252), todas rodando no Debian Bookworm (12.7).
Cada computador tem um dongle wifi para se conectar à rede local e wifi integrado ou ethernet para se conectar a um roteador dsl (que é o ponto de acesso para a rede wifi não local).
Desejo que a rede local use exclusivamente o endereçamento IPv6 link-local e não passe pelo roteador DSL .
Configurar a rede não local é fácil e usa o recurso dhcp do systemd e a interface wpa-supplicant-nl80211@ .service.
Alguém pode sugerir como escrever o arquivo .network local ? De modo que uma máquina local falando com a próxima seja uma conexão ponto a ponto simples pela rede ibss.
Escreva um arquivo .network vazio que apenas
[Match]
execute -es na interface (fazendo com que o networkd a abra, caso ela ainda não esteja admin-up) e não faça mais nada.Todas as interfaces de transmissão têm automaticamente endereços de link local IPv6, portanto, nenhuma configuração de endereço é necessária; e como a API de soquete já exige que você especifique uma interface de saída ao enviar pacotes para um endereço de link local (no Linux, pelo menos), nenhuma configuração de roteamento é necessária.
Mas para salientar: Não há nada que realmente exija o uso de endereços IPv6 link-local aqui. As comunicações IP de mesma sub-rede já são link-local por definição e nunca passam pelo roteador, apenas pela natureza de serem "mesma sub-rede".
Em outras palavras, desde que dois hosts tenham suas interfaces (conectadas) configuradas com endereços dentro da mesma sub-rede, eles obterão automaticamente rotas de "sub-rede local" entre si – que são mais específicas e, portanto, têm maior prioridade do que a rota "gateway padrão via DSL" – e toda a comunicação entre esses endereços IP usará naturalmente essa conexão direta.
É assim que endereços de link local IPv6 são implementados no Linux, mas se aplica igualmente a qualquer versão de IP e qualquer escopo de endereço. Então você pode atingir o mesmo objetivo (de comunicações diretas através do link dedicado) configurando, por exemplo, comum
Address=192.168.5.x/24
(IPv4 privado) ouAddress=fd01::xxx/64
(IPv6 ULA) em ambas as máquinas.A execução
ip route get 192.168.5.y [fibmatch]
mostraria então que o endereço do peer é roteado pela interface dedicada. Esse método provavelmente causará menos problemas do que tentar usar endereços de link local IPv6 (pois ainda há programas que falham em analisá-los ou perdem o campo de índice de zona).