Ce que j'essaie de faire est d'acheminer le trafic IPv6 à travers un tunnel vpn. De cette façon, je devrais pouvoir utiliser IPv6 dans un réseau qui ne prend pas en charge IPv6.
J'ai un VPS qui a un bloc IPv6 assigné. Une partie de ce bloc que je veux utiliser pour les clients openvpn. La plage que j'avais en tête était 2001:db8::111:800:0/112
(le préfixe est anonyme), car openvpn ne prend en charge que / 64 et / 112 en tant que sous-réseaux.
IPv6 à travers le tunnel fonctionne déjà, depuis le client, je peux envoyer une requête ping au serveur ( 2001:db8::111:800:1
), et également des interfaces sur le serveur ( 2001:db8::111:100:100
et 2001:db8:216:3dfa:f1d4:81c0
).
Cependant, lorsque j'essaie d'envoyer une requête ping à google.com à partir du client, je n'obtiens aucune réponse (délai d'expiration du ping). Afin de déboguer ce problème, j'ai utilisé tcpdump pour capturer le trafic sur le serveur, et je peux voir les paquets ping sortir, mais aucune réponse ne revient. L'ajout de règles de journal à ip6tables montre la même chose, les paquets sortent, mais rien ne vient.
J'ai utilisé un outil traceroute en ligne qui obtient un délai d'expiration de mon serveur. J'ai également essayé de définir l'IP directement sur l'interface, ce qui rend l'ip ( 2001:db8::111:800:1001
) accessible, donc je pense que c'est un problème de routage.
J'ai activé le transfert pour ipv6 via /proc/sys/net/ipv6/conf/all/forwarding
. ip6tables a une politique autorisant toutes les chaînes.
Ma question est, que faut-il exactement pour que Linux accepte ce paquet pour une adresse IP qui n'est pas affectée à une interface et le route plus loin? Un itinéraire qui existe ne semble pas suffisant.
Voici la configuration de mon client et de mon serveur. Veuillez lui faire savoir si plus d'informations sont nécessaires.
Client
# ip -6 addresses
10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qlen 100
inet6 2001:db8::111:800:1001/112 scope global
valid_lft forever preferred_lft forever
# ip -6 routes
2001:db8::111:800:0/112 dev tun0 proto kernel metric 256
2000::/3 dev tun0 metric 1024
Serveur
# ip -6 address
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2001:db8:216:3dfa:f1d4:81c0/64 scope global dynamic
valid_lft 86254sec preferred_lft 14254sec
inet6 2001:db8::111:100:100/128 scope global
valid_lft forever preferred_lft forever
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qlen 100
inet6 2001:db8::111:800:1/112 scope global
valid_lft forever preferred_lft forever
# ip -6 route
2001:db8::111:100:100 dev eth0 proto kernel metric 256
2001:db8::111:800:0/112 dev tun0 proto kernel metric 256
2001:db8::/64 dev eth0 proto kernel metric 256 expires 86194sec
default via fe80::230:48ff:fe94:d6c5 dev eth0 proto ra metric 1024 expires 1594sec
TRACE
cible de table brute iptables (peut-être pas tellement ici) ip neighbour
, et ip route get
. Veuillez également spécifier qui envoie une requête ping google.ca
.
POSTROUTING ... MASQUERADE
dans lenat
tableau. Mais je ne suis pas sûr de bien comprendre. Essayez-vous de tunneler le trafic IPv6? Si oui, avez-vous mis en place les installations respectives? Les-p ipv6
paquets sont-ils autorisés dans les règles IPv4 (!)?