J'ai essayé d'ajouter un bloc IPv6 (/ 64) entier à une interface en utilisant
ip route add local 2001:41d0:2:ad64::/64 dev lo
comme décrit ici sur mon serveur Debian, mais il me semble manquer quelque chose.
Si je ping par exemple 2001:41d0:2:ad64::fe
localement, tout fonctionne très bien, mais si j'essaie depuis une machine distante, cela ne fonctionne pas. J'ai ensuite essayé d'ajouter la route sur eth0:
ip route add local 2001::41d0:2:ad64::/64 dev eth0
Maintenant, je ne pouvais même pas cingler un exemple d'adresse localement!
Je suis un peu perdu car il me semble manquer quelque chose mais je ne trouve pas la réponse ici.
Pour faire court: je veux 2001:41d0:2:ad64::/64
être lié à eth0 pour que chaque IP que contient ce bloc soit accessible depuis Internet sur ma machine.
J'espère que quelqu'un là-bas pourra me montrer le bon chemin. Merci d'avance.
Le guide fourni par le FAI m'oblige à ajouter explicitement chaque IPv6 à l'interface. Je veux que ce soit implicite.
Configuration de travail avec explication de la liaison d'adresse 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
Solution essayer # 1
J'ai essayé de réactiver la route locale comme l'a suggéré @kasperd.
Contenu de mon / 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
Table de routage locale:
# 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
Sortie de traceroute
(mon PC domestique local):
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
sur le serveur:
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
sur le serveur:
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
sortie (lors du ping et du tracerouting sur le serveur distant):
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
tracert
à la passerelle:
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
à la passerelle:
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
Donc, cela fonctionne toujours localement (serveur) mais pas à distance (mon PC).
la source
ip route
commande a une faute de frappe dans l'adresse IPv6.2001:41d0:2:adff:ff:ff:ff:ff
après cela, il va juste expirer.Réponses:
J'ai eu besoin de quelque chose de similaire dans le passé. J'ai trouvé qu'il y a trois étapes nécessaires pour que cela fonctionne:
IP_FREEBIND
ouIP_TRANSPARENT
sur les socketsLa bonne façon d'obtenir un préfixe acheminé vers l'hôte consiste à contacter votre fournisseur, s'il ne vous en fournit pas déjà un. Ils peuvent avoir un serveur DHCPv6, qui peut vous déléguer un préfixe, si vous lui envoyez simplement la bonne requête DHCPv6.
Si un vrai préfixe routé vous est impossible pour une raison quelconque, mais que vous avez accès à autant d'adresses que vous le souhaitez à partir d'un préfixe de lien disponible sur l'une de vos interfaces réseau, vous pouvez en transformer une partie en préfixe routé en demander à un démon de répondre aux demandes de découverte de voisins pour chaque adresse IPv6 de cette plage.
L'utilisation d'un tel démon n'est pas recommandée autrement qu'en dernier recours, car il consommera inutilement de la mémoire de tous vos voisins. Il existe quelques implémentations d'un tel démon, celle qui semble prometteuse est ndppd . (Je n'ai aucune expérience spécifique avec cela, car je ne l'ai appris qu'après avoir écrit le mien avec mon préfixe de lien codé en dur.)
Il semble que vous ayez déjà fait fonctionner la route locale. Comme vous l'avez remarqué, il doit être affecté à l'
lo
interface pour fonctionner.Enfin, les applications utilisant des adresses de cette plage ont besoin d'une option IP pour pouvoir se lier à des adresses qui ne sont pas explicitement affectées à une interface réseau spécifique sur l'hôte. Voici un fragment de code qui peut être utilisé:
la source
tcpdump -pni eth0 'host 2001:41d0:2:ad65::fe'
/etc/rc.local
C'est l'année 2019 maintenant. Un mot: ip_nonlocal_bind (depuis le noyau 4.3 comme je le sais peut-être).
Utilisez ndppd + sysctl net.ipv6.ip_nonlocal_bind = 1, le dernier vous permet de vous lier à n'importe quelle adresse IPv6 (aucun IP_FREEBIND n'est nécessaire dans ce cas).
Je suppose que vous l'avez fait:
ndppd.conf ressemblera à:
exécutez ndppd et vous pouvez maintenant vous lier à n'importe quelle adresse (du bloc ajouté) et l'utiliser comme il s'est ajouté.
la source