AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1113640

Harry's questions

Martin Hope
Harry
Asked: 2024-07-26 00:36:04 +0800 CST

Como configurar o IPv6 SEM delegação de prefixo

  • 6

Descrição da pergunta

Como configurar o IPv6 SEM delegação de prefixo?

Estou tentando configurar acesso dual-stack (IPv4/IPv6) para minha interface br-lan em um sistema Debian (arm64) com kernel versão 5.15. Minha conexão upstream é por meio de um modem wwan0, e quero fornecer acesso dual-stack para clientes downstream conectados a br0 (br-lan).

Configurei o NetworkManager, ndppd, radvd e wide-dhcp6, e configurei os arquivos de configuração e scripts necessários. Os clientes conectados ao br-lan podem fazer ping em endereços dentro da rede br-lan e receber endereços DHCPv6 e informações de DNS. No entanto, eles não podem se conectar à internet.

Qualquer assistência e solução de problemas seriam muito apreciadas.

Pilha de software

  • Núcleo : 5.15
  • SO : Debian (arm64)
  • Ferramentas de gerenciamento de rede : NetworkManager, ndppd, radvd, wide-dhcp6

Meta

Forneça acesso de pilha dupla para br-lan.

Configuração de rede

Rio acima

  • Dispositivo :wwan0

  • Conexão : modem

  • Acesso dual-stack : sem delegação de prefixo

  • Configuração :

    wwan0: flags=81<UP,POINTOPOINT,RUNNING>  mtu 1500
            inet 100.84.235.248  netmask 255.255.255.240  destination 100.84.235.248
            inet6 240e:473:620:140c:10f8:8d5a:c303:7640  prefixlen 64  scopeid 0x0<global>
            unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

A jusante

  • Dispositivo :br0

  • Conexão :br-lan

  • Configurações do NetworkManager : ipv4 shared,ipv6 ignore

  • Configuração :

    br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.42.0.1  netmask 255.255.255.0  broadcast 10.42.0.255
            inet6 240e:473:620:140c:2333::1  prefixlen 80  scopeid 0x0<global>
            inet6 fe80::2045:34ff:fe79:4865  prefixlen 64  scopeid 0x20<link>
            ether 22:45:34:79:48:65  txqueuelen 1000  (Ethernet)
            RX packets 4097  bytes 423481 (413.5 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 2184  bytes 239531 (233.9 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

Arquivos de configuração

/etc/sysctl.conf

net.ipv6.conf.all.forwarding=1

/etc/ndppd.conf

proxy wwan0 {
    router yes
    timeout 500
    ttl 30000
    rule 240e:473:620:140c:2333::/80 {
        iface br0
        static
    }
}

/etc/radvd.conf

interface br0 {
        AdvSendAdvert on;
        AdvOtherConfigFlag on;
        AdvManagedFlag on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;
        prefix 240e:473:620:140c:2333::/64 {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr off;
        };
}

/etc/wide-dhcpv6/dhcp6s.conf

option domain-name-servers 2a09::;
option domain-name-servers 2a11::;
interface br0 {
        address-pool pool1 3600;
};
pool pool1 {
        range 240e:473:620:140c:2333::2000 to 240e:473:620:140c:2333::3000 ;
}

Rota IPv6

::1 dev lo proto kernel metric 256 pref medium
240e:473:620:140c:2333::/80 dev br0 proto kernel metric 256 pref medium
240e:473:620:140c::/64 dev wwan0 proto kernel metric 700 pref medium
240e:473:620:140c::/64 dev br0 metric 1024 pref medium
fe80::/64 dev docker0 proto kernel metric 256 pref medium
fe80::/64 dev br0 proto kernel metric 256 pref medium
fe80::/64 dev veth9aa835b proto kernel metric 256 pref medium
fe80::/64 dev wlan0 proto kernel metric 600 pref medium
default via 240e:473:620:140c:54cb:5bf7:3c38:2da5 dev wwan0 proto static metric 700 pref medium

Script de configuração: /etc/NetworkManager/dispatcher.d/ipv6-conf.sh

#!/usr/bin/env bash

interface=$1
event=$2
if [ "$interface" == "wwan0" ]; then
        prefix=$(ip -6 addr show dev wwan0| sed -e's/^.*inet6 \([^ ]*\)\/.*$//;t;d'|head -n 1|cut -f'1-4' -d':')
        # just assume prefix length /64 here
        echo "get prefix $prefix::/64"|systemd-cat -t ipv6_conf
        cp /etc/ndppd.conf.bak /etc/ndppd.conf
        sed -i "s/REPLACE_PREFIX_HERE/$prefix:2333::\/80/g" /etc/ndppd.conf
        cp /etc/radvd.conf.bak /etc/radvd.conf
        sed -i "s/REPLACE_PREFIX_HERE/$prefix:2333::\/64/g" /etc/radvd.conf
        cp /etc/wide-dhcpv6/dhcp6s.conf.bak /etc/wide-dhcpv6/dhcp6s.conf
        sed -i "s/PREFIX_MIN/$prefix:2333::2000/g" /etc/wide-dhcpv6/dhcp6s.conf
        sed -i "s/PREFIX_MAX/$prefix:2333::3000/g" /etc/wide-dhcpv6/dhcp6s.conf
        systemctl restart radvd
        systemctl restart ndppd
        systemctl stop wide-dhcpv6-server
        systemctl start wide-dhcpv6-server
        echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
        echo 1 > /proc/sys/net/ipv6/conf/all/proxy_ndp
        sleep 30
        echo "setting route" |systemd-cat -t ipv6_conf
        ip -6 addr add $prefix:2333::1/80 dev br0
        #ip -6 route add $prefix::/80 dev br0
        ip -6 route add $prefix:2333::/64 dev br0
        ip -6 route |systemd-cat -t ipv6_conf
fi

Problema

Os clientes conectados br-lanpodem fazer ping em todos os endereços br-lane receber endereços de transmissão DHCP6 e DNS, mas não podem se conectar à Internet.

Exemplo de um cliente Windows

  • Endereço IPv4 : 10.42.0.86
  • Máscara de sub-rede IPv4 : 255.255.255.0
  • Servidor DHCP IPv4 : 10.42.0.1
  • Servidor DNS IPv4 : 10.42.0.1
  • Servidor IPv4 WINS : 10.42.0.1
  • Endereços IPv6 :
    • 240e:473:620:140c:1413:a3cb:57ec:f26
    • 240e:473:620:140c:2333::2000
  • Endereço IPv6 temporário : 240e:473:620:140c:3177:43e1:6ebc:550f
  • Endereço IPv6 local de link : fe80:1413:a3cb:57ec:f26%10
  • Gateway padrão IPv6 : fe80::2045:34ff:fe79:4865%10
  • Servidores DNS IPv6 :
    • 2a09::
    • 2a11::
  • Resultados do teste de ping :
    • ping -6 fe80::2045:34ff:fe79:4865ou 240e:473:620:140c:2333::1: Sucesso
    • nslookup AAAA microsoft.comou ping -6 2603:1030:20e:3::23c: Falha

Parece-me que minhas rotas IPv6 têm algum problema. Tentei ajustar a seguinte parte do script de despacho, mas sem sorte.

        echo "setting route" |systemd-cat -t ipv6_conf
        ip -6 addr add $prefix:2333::1/80 dev br0
        #ip -6 route add $prefix::/80 dev br0
        ip -6 route add $prefix:2333::/64 dev br0
        ip -6 route |systemd-cat -t ipv6_conf
debian
  • 1 respostas
  • 140 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve