Tentei adicionar um bloco IPv6 (/ 64) inteiro a uma interface usando
ip route add local 2001:41d0:2:ad64::/64 dev lo
como descrito aqui no meu servidor Debian, mas parece que estou perdendo alguma coisa.
Se eu executar ping por exemplo 2001:41d0:2:ad64::fe
localmente, tudo funcionará bem, mas se eu tentar em uma máquina remota, não funcionará. Tentei adicionar a rota no eth0:
ip route add local 2001::41d0:2:ad64::/64 dev eth0
Agora eu não conseguia nem pingar qualquer endereço de exemplo localmente!
Estou um pouco perdido, pois parece que estou perdendo alguma coisa, mas não consigo encontrar a resposta aqui.
Resumindo: quero 2001:41d0:2:ad64::/64
vincular-me a eth0 para que todos os IPs contidos neste bloco sejam acessíveis pela Internet na minha máquina.
Espero que alguém lá fora possa me indicar o caminho certo. Desde já, obrigado.
O guia fornecido pelo ISP exige que eu adicione cada IPv6 à interface explicitamente. Eu quero que seja implícito.
Configuração de trabalho com ligação explícita de endereço IP
/ etc / network / interfaces:
auto eth0
iface eth0 inet static
address my.ip.v4
netmask 255.255.255.0
network my.network.address.ip
broadcast my.broadcast.address.ip
gateway my.gateway.ip
iface eth0 inet6 static
address 2001:41d0:2:ad64::fe
netmask 64
gateway 2001:41d0:2:adff:ff:ff:ff:ff
up ip addr add 2001:41d0:2:ad64::1/64 dev eth0
down ip addr del 2001:41d0:2:ad64::1/64 dev eth0
up ip addr add 2001:41d0:2:ad64::2/64 dev eth0
down ip addr del 2001:41d0:2:ad64::2/64 dev eth0
up ip addr add 2001:41d0:2:ad64::3/64 dev eth0
down ip addr del 2001:41d0:2:ad64::3/64 dev eth0
up ip addr add 2001:41d0:2:ad64::4/64 dev eth0
down ip addr del 2001:41d0:2:ad64::4/64 dev eth0
up ip addr add 2001:41d0:2:ad64::5/64 dev eth0
down ip addr del 2001:41d0:2:ad64::5/64 dev eth0
up ip addr add 2001:41d0:2:ad64::6/64 dev eth0
down ip addr del 2001:41d0:2:ad64::6/64 dev eth0
up ip addr add 2001:41d0:2:ad64::7/64 dev eth0
down ip addr del 2001:41d0:2:ad64::7/64 dev eth0
up ip addr add 2001:41d0:2:ad64::8/64 dev eth0
down ip addr del 2001:41d0:2:ad64::8/64 dev eth0
up ip addr add 2001:41d0:2:ad64::9/64 dev eth0
down ip addr del 2001:41d0:2:ad64::9/64 dev eth0
up ip addr add 2001:41d0:2:ad64::a/64 dev eth0
down ip addr del 2001:41d0:2:ad64::a/64 dev eth0
Solução # 1
Tentei reativar a rota local como sugerido por @kasperd.
Conteúdo do meu / etc / network / interfaces
auto lo
iface lo inet loopback
post-up ip route add local 2001:41d0:2:ad64::/64 dev lo
pre-down ip route del local 2001:41d0:2:ad64::/64 dev lo
auto eth0
iface eth0 inet static
# <snip of ipv4 config>
iface eth0 inet6 static
address 2001:41d0:2:ad64::fe
netmask 64
gateway 2001:41d0:2:adff:ff:ff:ff:ff
Tabela de roteamento local:
# ip -6 route show table local
local ::1 dev lo proto none metric 0
local 2001:41d0:2:ad64::fe dev lo proto none metric 0
local 2001:41d0:2:ad64::/64 dev lo metric 1024
local fe80::225:90ff:fe06:6bbe dev lo proto none metric 0
ff00::/8 dev eth0 metric 256
Saída de traceroute
(meu PC local em casa):
1 <1 ms <1 ms <1 ms fritz.box [xxx]
2 20 ms 21 ms 24 ms 2002:c058:6301::1
3 21 ms 22 ms 24 ms 10gigabitethernet6.switch2.fra1.he.net [2001:470
:0:150::1]
4 44 ms 31 ms 40 ms 100ge3-1.core1.ams1.he.net [2001:470:0:2d4::1]
5 * * * Zeitüberschreitung der Anforderung.
6 * * 35 ms ams-5-6k.nl.eu [2001:41d0::8d1]
7 37 ms 39 ms 36 ms rbx-g2-a9.fr.eu [2001:41d0::ab1]
8 37 ms 70 ms 36 ms chi-3-4m.il.us [2001:41d0::176]
9 Zielhost nicht erreichbar.
Ablaufverfolgung beendet.
traceroute6
no servidor:
traceroute to 2001:41d0:2:ad64::23 (2001:41d0:2:ad64::23), 30 hops max, 80 byte packets
1 2001:41d0:2:ad64::a (2001:41d0:2:ad64::a) 0.028 ms 0.009 ms 0.008 ms
ping6
no servidor:
PING 2001:41d0:2:ad64::23(2001:41d0:2:ad64::23) 56 data bytes
64 bytes from 2001:41d0:2:ad64::23: icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from 2001:41d0:2:ad64::23: icmp_seq=2 ttl=64 time=0.057 ms
^C
--- 2001:41d0:2:ad64:23 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.029/0.043/0.057/0.014 ms
tcpdump
saída (durante o ping e o rastreamento no servidor remoto):
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
tracert
para o gateway:
Routenverfolgung zu vss-3-6k.fr.eu [2001:41d0:2:adff:ff:ff:ff:ff] über maximal 3
0 Abschnitte:
1 <1 ms <1 ms <1 ms fritz.box [2002:5476:1b4c:0:c225:6ff:fe40:b2b0]
2 23 ms 22 ms 26 ms 2002:c058:6301::1
3 24 ms 40 ms 23 ms 10gigabitethernet6.switch2.fra1.he.net [2001:470
:0:150::1]
4 28 ms 37 ms 39 ms 100ge3-1.core1.ams1.he.net [2001:470:0:2d4::1]
5 * * * Zeitüberschreitung der Anforderung.
6 38 ms 33 ms * ams-5-6k.nl.eu [2001:41d0::8d1]
7 36 ms 39 ms 38 ms rbx-g2-a9.fr.eu [2001:41d0::ab1]
8 36 ms 35 ms 35 ms vss-3-6k.fr.eu [2001:41d0:2:adff:ff:ff:ff:ff]
Ablaufverfolgung beendet.
ping
para o gateway:
Ping wird ausgeführt für 2001:41d0:2:adff:ff:ff:ff:ff mit 32 Bytes Daten:
Antwort von 2001:41d0:2:adff:ff:ff:ff:ff: Zeit=36ms
Antwort von 2001:41d0:2:adff:ff:ff:ff:ff: Zeit=34ms
Antwort von 2001:41d0:2:adff:ff:ff:ff:ff: Zeit=38ms
Antwort von 2001:41d0:2:adff:ff:ff:ff:ff: Zeit=57ms
Ping-Statistik für 2001:41d0:2:adff:ff:ff:ff:ff:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 34ms, Maximum = 57ms, Mittelwert = 41ms
Por isso, ainda está apenas trabalhando localmente (servidor), mas não do controle remoto (meu pc).
fonte
ip route
comando possui um erro de digitação no endereço IPv6.2001:41d0:2:adff:ff:ff:ff:ff
após o tempo limite.Respostas:
Eu precisava de algo semelhante no passado. Eu descobri que existem três etapas necessárias para fazer isso funcionar:
IP_FREEBIND
ouIP_TRANSPARENT
nos soquetesA maneira correta de obter um prefixo roteado para o host envolve entrar em contato com seu provedor, se ele ainda não fornecer um. Eles podem ter um servidor DHCPv6, que pode delegar um prefixo para você, se você enviar a solicitação DHCPv6 correta.
Se, por algum motivo, não for possível obter um prefixo roteado real, mas você tiver acesso a quantos endereços desejar em um prefixo de link disponível em uma de suas interfaces de rede, poderá transformar parte dele em um prefixo roteado por ter um daemon responder a solicitações de descoberta de vizinhos para cada endereço IPv6 nesse intervalo.
O uso desse daemon não é recomendado como último recurso, pois consumirá desnecessariamente memória de todos os seus vizinhos. Existem algumas implementações desse daemon, uma que parece promissora é o ndppd . (Não tenho experiência específica com ele, pois só o aprendi depois que escrevi o meu com o prefixo do link codificado.)
Parece que você já conseguiu a rota local funcionando. Como você notou, ele deve ser atribuído à
lo
interface para funcionar.Finalmente, os aplicativos que usam endereços desse intervalo precisam de uma opção IP para poderem se conectar a endereços que não são explicitamente atribuídos a uma interface de rede específica no host. Aqui está um fragmento de código, que pode ser usado:
fonte
tcpdump -pni eth0 'host 2001:41d0:2:ad65::fe'
/etc/rc.local
É 2019 ano agora. Uma palavra: ip_nonlocal_bind (desde o kernel 4.3 como eu sei).
Use ndppd + sysctl net.ipv6.ip_nonlocal_bind = 1, o último permite ligar a qualquer endereço IPv6 (neste caso, não é necessário IP_FREEBIND).
Acho que você fez isso:
O ndppd.conf se parecerá com:
execute o ndppd e agora você pode vincular a qualquer endereço (do bloco adicionado) e usá-lo como ele próprio se adicionou.
fonte