Estava lendo sobre como configurar o Wireguard como um servidor VPN na wiki do Arch. Uma coisa que me Confundi foi o uso de /24 para a rede e /32 para os peers.
Isso não significa que os peers estão em uma rede separada, já que /32 é uma rede apenas de host? Não deveria ser /24 para roteamento correto para o cliente correspondente?
Leia sobre notação CIDR e sub-redes. Basicamente, /32 é para um único IP, como um peer específico, então faz sentido. /24 e outros números menores que 32 e maiores que 0 especificam um intervalo de IPs. /24 permitiria um intervalo de IPs de, por exemplo, 10.0.0.0 a 10.0.0.255. Um /16 seria 10.0.0.0 até 10.0.255.255.
A notação significa coisas diferentes em diferentes contextos. Em Endereço, a notação especifica um único IP e uma máscara de sub-rede. Em AllowedIPs, a notação especifica um grupo de IPs onde /32 seria apenas um endereço e /24 teria 256 IPs. Os endereços em AllowedIPs não devem se sobrepor. Essa configuração é usada pelo WireGuard para decidir para qual peer enviar um pacote. Por exemplo, se 10.0.0.42 fizer parte de dois conjuntos AllowedIPs diferentes, o WireGuard não saberia para qual peer enviar um pacote dirigido a 10.0.0.42.
Tenho certeza de que você entendeu tudo pelos outros comentários, mas a documentação do WireGuard sobre ‘Cryptokey Routing’ explica isso especificamente no contexto do WireGuard e seus peers. Vale a pena ler.
Então, atribuir um /24 a um peer dá ao peer o IP de toda a rede para usar? Entendo a notação CIDR, mas não como ela funciona no contexto do wireguard. Obrigado pelos links!
Endereço: o “/24” representa a máscara de rede para a rede onde a interface reside.
AllowedIPs não está sendo usado como atribuição de endereço, mas sim como um filtro. Nesse contexto, o filtro limita as fontes de endereço permitidas a apenas um endereço. Assim, o uso de /32. Implicações de segurança à parte, você poderia usar 0.0.0.0/0 aqui e funcionaria. (Já que 0.0.0.0/0 inclui o IP atribuído ao túnel do cliente.)
Contrariando a afirmação do OP de que AllowedIPs determina quem recebe quais pacotes… Acho que essa função é do tabela de roteamento. AllowedIPs apenas determina se o pacote é realmente passado após a rota determinar o caminho.
Pense no AllowedIPs como a versão do Wireguard de uma ACL padrão da Cisco. (Menos a capacidade de filtrar com base na Camada 4, é claro.)
/24 especifica um intervalo. 256 endereços IP diferentes neste caso. WG é um aplicativo de rede, CIDR funciona de maneira semelhante em todos os lugares. Se você atribuir um intervalo de IP a um peer, geralmente significaria que qualquer dispositivo naquela faixa de sub-rede poderia se conectar como um peer (cliente). Isso é frequentemente feito ao usar um switch, para que um intervalo de dispositivos possa se conectar com IPs diferentes no intervalo especificado, mas as configurações seriam apenas 10.0.0.0/24 em vez de listar cada IP possível, como 10.0.0.1, 10.0.0.2, 10.0.0.3, etc.
O endereço pode ser um IP ou uma faixa, mas geralmente os peers (clientes) têm um IP específico, como /32.