Usando um túnel elétrico de furacão para fornecer IPs a uma rede com dnsmasq

Usando um túnel elétrico de furacão para fornecer IPs a uma rede com dnsmasq

Eu executo minha rede em uma caixa x86 rodando Ubuntu 18.04, firewalld (UFW não é adequado para uso como roteador), /networks/interfaces (o netplan tinha um bug que o tornava impróprio para o propósito) e dnsmasq para DHCP e DNS.

Eu tinha um ISP que rodava ipv6 com PD e useia configuração aqui. Meu ISP atual não suporta IPV6, então configurei um túnel para meu roteador através de furacão elétrico - isso está configurado e provavelmente funciona, pois posso fazer ping.

Eu tenho enp1s0 como interface externa e todas as outras interfaces interligadas servindo o resto da rede como br0. Também tenha he-ipv6 como túnel, sem ponte para nada

No momento, o roteador está atrás de um roteador ISP, com dois segmentos de rede diferentes - 192.168.1.x para todos os outros e minha própria rede de teste em 192.168.2.x, com o roteador em uma DMZ. Essenão deveriaser um problema.

O problema é que gostaria de continuar com o dnsmasq e estou tendo problemas para financiar a documentação sobre como configurá-lo.

Aqui está o que tenho agora

  • Configurei o ipv6 no meu roteador de acordo com as instruções na página da web do Huracán Electric, incluindo o abaixo em meu /etc/networks/interfaces
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        address 2001:470:YY:YYYY::2
        netmask 64
        endpoint 216.218.221.6
        local xxx.xxx.x.xxx
        ttl 255
        gateway 2001:470:YY:YYYY::1

Isso funciona. Posso executar ping em ipv6.google.com e em outros sites IPv6 conhecidos. Eu simplesmente não consigo obter IPs paraalgo mais.

tentei

##For HE
enable-ra
dhcp-range = 2001:470:YY:YYYY::
dhcp-option=option6:dns-server,[2001:470:20::2],[2001:4860:4860::8888]

Mas aparentemente a sintaxe está errada.

Como obtenho um endereço IPv6 para clientes que obtêm IPs do roteador, bem como para br0?

Responder1

Antes de tudo:

Assim como no IPv4, cada link precisa de seu próprio prefixo de sub-rede. O 2001:470:YY:YYYY::/64"ponto final do túnel" é especificamente para o link entre você e o Hurricane (ou seja, é para o seu "endereço WAN" em termos IPv4) – ele não pode ser reutilizado para nenhuma de suas LANs. Para este último, você precisa de um dos "prefixos IPv6 roteados" encontrados na página de configurações do túnel - isso será equivalente a um prefixo delegado DHCPv6-PD.

Normalmente, cada LAN tem um prefixo de sub-rede de tamanho /64, para permitir que a atribuição de endereço baseada em SLAAC padrão funcione (muitos clientes, especialmente Android, não suportam atribuição de endereço baseada em DHCPv6). Portanto, se você planeja múltiplas sub-redes, escolha "Atribuir/48" para obter um prefixo com uma quantidade razoável (64ki) de/64.

(Você não precisa usar "Atribuir /64" se já tiver atribuído um /48. Se vocêfezuse "Assign /64", observe que o prefixo éum poucodiferente do prefixo "pontos finais do túnel"; eles costumam ficar confusos.)


Depois de ter seu próprio intervalo, digamos 2001:470:ZZ::/48, escolha um /64 dele (variando de 0 a ffff, como 2001:470:ZZ:1::/64) e use-o para sua br0interface e também para configuração do dnsmasq.

enable-ra
dhcp-range = 2001:470:ZZ:1::, ra-stateless
dhcp-option = option6:dns-server, [2001:470:20::2], [2001:4860:4860::8888]

Como mencionado anteriormente, muitos clientes (principalmente Android)não apoieatribuição de endereço via DHCPv6. Eles exigem SLAAC, então você precisa de pelo menos um dosslaacoura-statelessna configuração 'dhcp-range'. (O modo 'ra-stateless' também informa aos clientes SLAAC que eles ainda podem obter configurações de DNS do DHCPv6, o que é útil para Windows. Independentemente da seleção, o dnsmasq também fornecerá automaticamente servidores DNS via SLAAC-RDNSS para Android.)

No entanto, parabr0(ou qualquer que seja a interface LAN), você deve atribuir um endereço IP estaticamente - não tenho certeza se o kernel recebe seus próprios multicasts, nem se presta atenção a eles. De qualquer forma, suspeitopróprio dnsmasqpode se recusar a executar em uma interface que não possui um endereço correspondente (como já acontece com o IPv4)...

iface br0 inet6 static
    address 2001:470:ZZ:1::1/64

iface br1 inet6 static
    address 2001:470:ZZ:2::1/64

Depois de executar o dnsmasq, use rdisc6 eth0outro sistema Linux para solicitar e mostrar o conteúdo de um anúncio de roteador. Certifique-se de que ele tenha uma "vida útil do roteador" diferente de zero; pelo menos um "Prefixo" (que precisa ser um tempo válido /64, on-link, autônomo e diferente de zero); e que vem de um fe80::*endereço local de link e não de um endereço global.

informação relacionada