O que a máscara de sub-rede do IP do túnel no Wireguard faz?

O que a máscara de sub-rede do IP do túnel no Wireguard faz?

O Wireguard funciona mesmo sem definir um endereço IP de túnel, ou seja, basta definir os AllowedIPs, endereços de endpoint, chaves privadas e públicas.

Nos documentos deOpnSense, há o seguinte aviso:

Observação:O endereço do túnel deve estar em notação CIDR e deve ser um IP e uma sub-rede exclusivos para sua rede. [..]Não use um endereço de túnel que seja /32 (IPv4) ou /128 (IPv6)

e o pfSense tem uma explicação provável:

Documentos do pfSense:

Observação:As rotas não são criadas automaticamente na tabela de roteamento do sistema. As rotas para redes diferentes da própria rede de túnel devem ser configuradas separadamente usando rotas estáticas ou dinâmicas.

Pesquisar na internet não produz muitas explicações:

A sub-rede não parece ter nenhuma funcionalidade, fizemos alguns testes:

  • Não está relacionado ao roteamento de tráfego local, ou seja, o roteamento para um segundo peer conectado funciona com e sem uma sub-rede que contém ambos os peers.
  • não está relacionado a "permanecer na interface" versus passar pelo kernel. Em ambos os casos poderíamos controlar o tráfego usando regras de firewall.

Então, qual é a finalidade da máscara de sub-rede no IP do túnel?

Responder1

A máscara de sub-redefaz nadaEspecífico do WireGuard.

O próprio WireGuard não usa nem se preocupa com as máscaras de sub-rede em seus endereços de interface (nem mesmo usa ou se preocupa com os próprios endereços). No entanto, a pilha de rede e outras ferramentas de rede no host WireGuard se preocupam com os endereços IP e sub-redes registrados para cada interface de rede e os usarão para tentar descobrir se uma interface específica está conectada diretamente a uma rede específica.

Seu comportamento observado pode variar com base no sistema operacional e nas ferramentas de rede específicas que você usa (como OPNSense/pfSense e todos os seus plug-ins diversos), mas muitas coisas como tabelas de roteamento, regras de firewall, mensagens ARP, tabelas vizinhas, etc., podem ser geradas. automaticamente com base nos endereços IP e sub-redes que você configurou para cada interface de rede. No entanto, em muitos casos, você ainda pode substituir esses padrões por meio de regras personalizadas de roteamento/firewall, configurações de kernel, configuração de daemon de rede, etc.

Por exemplo, quando você inicia uma interface WireGuard com o padrãowg-rápidoscript no Linux, esse script usará oiproute2ferramenta para adicionar cada endereço e sub-rede que você configurou para a interface. Para cada endereço adicionado, o iproute2 adiciona automaticamente uma rota correspondente à tabela de roteamento principal para corresponder à sub-rede do endereço. Usar esse script para iniciar uma interface nomeada wg0com um endereço 10.0.0.123/24resultará na adição do iproute2 à seguinte rota à tabela de roteamento principal:

10.0.0.0/24 dev wg0 proto kernel scope link src 10.0.0.123

Isso não é algo do WireGuard, é apenas o comportamento padrão de algumas das ferramentas de rede padrão no Linux. Você pode excluir essa rota e adicionar outras rotas ou apenas usar um conjunto diferente de ferramentas para configurar a interface do WireGuard. (Mas tenha em mente que esta ou qualquer outra rota adicionada a uma interface WireGuard que não tenha uma AllowedIPsentrada correspondente na configuração da própria interface se tornará efetivamente um buraco negro.)

O resultado é que, na maioria dos casos, é perfeitamente aceitável usar um endereço com máscara de sub-rede /32 ou /128 em uma interface WireGuard. Você pode configurar suas próprias regras de roteamento e firewall para enviar qualquer tráfego desejado para essa interface. Mas para casos mais avançados - especialmente quando você deseja executar ferramentas na interface como Proxy ARP, NDP Proxy, OSPF, etc. (destinadas ao uso em sub-redes locais) - você pode evitar ter que lutar contra o comportamento padrão dessas ferramentas atribuindo a interface WireGuard e seus vizinhos virtuais a uma sub-rede lógica consistente.

informação relacionada