Obtenir une Adresse IPv6 de chez Hurricane Electric !

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

Répondre
Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Obtenir une Adresse IPv6 de chez Hurricane Electric !

Message par Artemus24 » dim. 15 sept. 2019 01:12

Salut à tous.

Ce sujet n'est pas à proprement parlé un sujet spécifique à la raspberry, car cela concerne tous les ordinateurs.
Pour l'instant, j'ai fait les tests sur windows 10 Pro et ça fonctionne !

De quoi s'agit'il ? Obtenir une adresse IPv6 quand on a qu'une adresse IPv4 fixe !

Comment je me suis pris ?

1) j'ai commencé par désactivé l'IPv6 de ma box SFR NB6v2.
Il vaut mieux, sinon les tests ne servent à rien.

2) je me suis rendu chez Hurricane Electric pour obtenir une adresse IPv6 gratuite.
--> https://tunnelbroker.net/

3) je me suis créé un compte. Rien de bien sorcier.

4) A l'issue de cette création, sur la gauche, là où il y a "User Functions", j'ai cliqué sur "Create Regular Tunnel".
Dans cette page, on va me demander deux choses :

5) mon adresse IP wan, c'est-à-dire l'adresse IPv4 publique de ma box.
C'est l'adresse IP sur internet, qui permet de m'identifier !
D'ailleurs, elle s'affiche sur la page web d'Hurricane Electric.

6) le serveur le plus proche de chez moi. Je choisis "Paris, FR".
En fait, il y a en Europe, un serveur par pays (enfin presque).

7) A l'issue de cela, une nouvelle page s'affiche avec quatre renseignements qui sont :
--> l'adresse IPv4 du serveur chez "Hurricane Electric", à Paris.
--> l'adresse IPv6 du serveur qui m'a été attribué chez "Hurricane Electric", à Paris.

--> mon adresse IPv4 client, en fait c'est celle que j'ai renseigné.
--> mon adresse IPv6 client que "Hurricane Electric" m'a attribué.

Le reste est pour l'instant un peu secondaire.

Image

P.S. : Ce n'est pas mon tunnel à moi car j'ai récupéré sur le net cette image afin d'illustrer mes propos.

8) dans cette même page, on peut obtenir le script de configuration (voir l'onglet "Example configurations")
Il suffit de renseigner le type d'ordinateur que vous avez.
--> Pour la Raspberry, vous cliquez sur "Debian/ubuntu".
--> Pour windows, vous cliquez sur "Windows 10".

9) voici le script pour la raspberry :

Code : Tout sélectionner

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        address 2001:xxxx:xxxx:xxxx::2
        netmask 64
        endpoint 216.66.84.42
        local yyy.yyy.yyy.yyy
        ttl 255
        gateway 2001:470:1f12:226::1
10) voici le script pour windows 10 :

Code : Tout sélectionner

netsh interface teredo set state disabled
netsh interface ipv6 add v6v4tunnel interface=IP6Tunnel localaddress=yyy.yyy.yyy.yyy remoteaddress=216.66.84.42
netsh interface ipv6 add address interface=IP6Tunnel address=2001:xxxx:xxxx:xxxx::2
netsh interface ipv6 add route prefix=::/0 interface=IP6Tunnel nexthop=2001:xxxx:xxxx:xxxx::1
P.S. ; j'ai volontairement masqué les adresses IPv4 & IPv6 afin de ne pas les divulguer. Question de sécurité !

11) Si vous tapez le script dans votre ordinateur, au premier coup, cela ne va pas fonctionner.
Et c'est normal car il y a une préparation à faire avant. Et il faut expliquer pourquoi !

En fait, comme beaucoup de personnes, mon ordinateur se trouve derrière une box.
Obtenir une adresse IPv6 doit en principe se configurer dans un routeur.
Comme j'ai pris le cas où j'ai désactivé l'IPv6 de ma box, c'est comme si j'avais un routeur qui ne sait traiter que l'IPv4.

Que faut-il faire pour obtenir l'IPv6 dans la box ?

12) le principal problème concerne l'adresse yyy.yyy.yyy.yyy.
En fait votre adresse IP WAN, qui est une adresse publique est celle que vous avez renseigné lors de la demande de création d'un Tunnel (6in4) IPv6.
Elle est celle de votre box et non celle de votre ordinateur, qui est une adresse IP local.

Dans le script raspberry ou windows, vous devez remplacer l'adresse yyy.yyy.yyy.yyy par l'adresse IP genre 192.168.1.zzz.

Ceci correspond à la remarque suivante :
NOTE: When behind a firewall appliance that passes protocol 41, use the IPv4 address you get from your appliance's DHCP service instead of the IPv4 endpoint you provided to our broker.
qui traduit en français (par google) donne :
REMARQUE: Lorsque vous vous trouvez derrière une appliance de pare-feu conforme au protocole 41, utilisez l'adresse IPv4 provenant du service DHCP de votre appliance au lieu du point de terminaison IPv4 fourni à notre courtier.
13) l'autre problème concerne le flux entrant dans votre box/routeur.
J'ai tout simplement mis mon ordinateur en DMZ pour faire les tests.
Donc rien n'est bloqué dans la box de chez SFR.

Remarque : en fait, il faut d'abord bidouiller dans la box puis ensuite appliquer le script selon votre ordinateur.

14) ça fonctionne !
J'ai utilisé ce site : http://ip.lafibre.info/
pour avoir les adresses IPv4 et IPv6 de mon ordinateur.

J'obtiens bien l'adresse IPv6 "2001:xxxx:xxxx:xxxx::2".
Ainsi que le nom d'hôte associé : "tunnelxxxxxx-pt.tunnel.tserv10.par1.ipv6.he.net".

Voici quelques questions, pour ceux qui savent répondre :

a) il est dit que la box doit s'avoir gérer le protocole 41 (IP41) ?
Il ne s'agit pas du port 41, mais bien du protocole 41.
Il s'agit d'un protocole de communication qui encapsule l'ipv6 dans de l'ipv4 (6in4).

Comment savoir si la box ou le routeur possède ce protocole 41 ?
A priori, ma box possède ce protocole 41 puisque cela fonctionne sans utiliser DMZ.

b) si j'ajoute un autre ordinateur ayant une adresse IPv6 fixe, que dois-je faire ?
Je sais, il y a deux cas :

--> soit j'utilise une raspberry que je configure en serveur DHCPv6
Pour la raspberry, comment se nomme le serveur DHCPv6 ?Ne serait-ce pas DNSMASQ ?

--> soit j'applique une adresse IPv6 fixe.
C'est ce qui m'intéresse, en dehors de tout serveur DHCPv6 que l'on peut installer.
Après tout, le véritable serveur est bien "2001:xxxx:xxxx:xxxx::1".
Il doit savoir gérer tout un tas d'adresse IPv6 en plus de "2001:xxxx:xxxx:xxxx::2".

@+
Modifié en dernier par Artemus24 le sam. 14 janv. 2023 22:31, modifié 1 fois.
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Obtenir une Adresse IPv6 de chez Hurricane Electric !

Message par Artemus24 » jeu. 19 sept. 2019 08:08

Salut à tous.

Personne pour répondre ? :o

Je constate que je ne peux avoir qu'une connexion à Hurricane Electric.
Si je démarre en premier sur windows, j'ai une connexion, mais si je démarre en second sur la raspberry, je n'ai pas de connexion.
Si je démarre en premier sur la raspberry, j'ai une connexion, mais si je démarre en second sur windows, je n'ai pas de connexion.
Or rien n'ai dit sur le nombre de connexions autorisées à Hurricane Electric.

Les ping6 tourne autour de 50ms. C'est un peu lent, mais au moins, on a un accès en ipv6.
Je crois qu'il y a aussi un filtrage sur les emails, parce que certains ont abusé.

En fait, si j'ai bien compris, le tunnel ipv6 est fait pour être utilisé dans un routeur qui gère le protocole 6in4.

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Obtenir une Adresse IPv6 de chez Hurricane Electric !

Message par Artemus24 » sam. 21 sept. 2019 06:34

Salut à tous.

Du coup, comme Hurricane Electric propose de faire une certification IPv6, et bien je l'ai faite. Voici le résultat :

Image

Si cela intéresse, je peux vous communiquer les réponses à mettre pour obtenir la certification Tunnel IPv6.

Afin d'avoir de l'IPv6 sur toutes vos raspberry, il faut soit :
1) passer par un routeur qui admet le protocole "6in4" dans la section IPv6.
2) consacrer l'une de vos raspberry à la fonction routeur, soit en passant par dnsmasq ou soit en passant par radvd.
Je n'ai pas testé par radvd car j'ai déjà une raspberry configuré comme routeur avec dnsmasq.

Bien que normalement, il vous faut une adresse IPv4 wan fixe, on peut aussi le faire avec une adresse IPv4 wan dynamique.
Il existe un utilitaire qui permet de mettre à jour dans les serveur de Hurricane, votre endpoint.
Ainsi avec un modem comme celui que je possède, le D-Link DSL-320B, qui ne fonctionne qu'en IPv4 avec adresse IPv4 dynamique, on peut avoir de l'IPv6 chez soi !

Quelques précisions :
a) quand vous créez un tunnel IPv6, vous avez droit qu'à une seule connexion IPv6.
D'où la nécessité de passer par un routeur si vous avez besoin de plus d'une connexion en même temps de l'IPv6.

b) quand on accède au forum de Hurricane Electric, j'ai constaté que je suis en lecture seulement.
Pour déposer un message, vous devez faire au moins le premier niveau (newbie) de la certification Tunnel IPv6.

C'est dommage que cela n'intéresse personne car l'IPv6, c'est l'avenir à cause de la saturation dans le monde des adresses IPv4.

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Obtenir une Adresse IPv6 de chez Hurricane Electric !

Message par Artemus24 » mar. 24 sept. 2019 12:57

Salut à tous.

Comme je suis dans la phase de la certification Hurricane Electric / IPv6, je m'intéresse à la "DAILY TESTS".
Il s'agit par ces tests quotidiens de faire augmenter le nombre de points de la certification (voir l'image dans mon dernier message).

Il y a cinq tests à effectuer qui sont :
--> traceroute
--> dig aaaa
--> dig ptr
--> ping
--> whois

Le faire à la main est fastidieux.
Le mieux est de faire un script qui va réaliser ce travail à ma place.
C'est BASH qui va dans la raspberry lancer les commandes en question, récupérer le résultat et le placer dans les cinq fenêtres de la page web "DAILY TESTS".
Pour ce faire, j'utilise un fichier de nom "list.txt" qui va contenir un nom de domaine par ligne.
Je l'ai récupéré et après son utilisation, il semble que plusieurs noms de domaine ont disparu de l'internet. Voici le script bash :

Code : Tout sélectionner

#!/bin/bash

# --------- #
# Variables #
# --------- #

USERNAME="My_userid"
PASSWORD="My_password"

MYSCRIPT=$(realpath $0)
WORKINGDIR=${MYSCRIPT%/*}

URL="https://ipv6.he.net/certification"

IP="2001:470:1f12:226::1"	# My Server IPv6

MAXTRIES=10

LIST="list.txt"			# My files list of Domains
WORK="result.txt"		# My work file

# --------- #
# WorkSpace #
# --------- #

cd $WORKINGDIR

if [ -e "cookies" ]; then
	rm cookies
fi

if [ -e "he.log" ]; then
	rm he.log
fi

exec 1>./he.log 2>&1

# ---------------------------------- #
# Connection to "Hurricane Electric" #
# ---------------------------------- #

COUNT=1
NEXT=1

date

curl -s -c cookies -d "f_user=$USERNAME&f_pass=$PASSWORD" $URL/login.php

curl -s -b cookies $URL/cert-main.php | grep 'Name:' | sed 's/Name:/\nHello/g' | sed 's/<br \/>.*/!/g'
if [ $? -ne 0 ]; then
	echo "\nLogin Failed. Please check your stored username and password!"
	exit 1
fi

while [ $NEXT -le 5 -a $COUNT -le $MAXTRIES ]
do
	# ------------------------------------ #
	# Choose a random domain from the list #
	# ------------------------------------ #

	if [ -s $LIST ]; then
		NUM=$(($RANDOM % `wc -l < $LIST` + 1))
		DOMAIN=`head -$NUM $LIST | tail -1`
		sed -i ${NUM}d ${LIST}
	else
		echo -e "\nThe files list of Domains is empty !"
		exit 2
	fi

	IPv6=`dig -t AAAA +short $DOMAIN | tail -n 1`

	echo -e "\nDomain = $DOMAIN : IPv6 = $IPv6"

	if [ -z "$IPv6" ]; then
		echo -e "\nThe IPv6 address is missing"
		continue
	fi

	FLAG=1
	while [ $FLAG -eq 1 -a $NEXT -le 5 -a $COUNT -le $MAXTRIES ]
	do
		# ----------- #
		# Daily Tests #
		# ----------- #

		case $NEXT in
			1)	TEST="traceroute"
				LINE="traceroute6 $IP"
				;;
			2)	TEST="aaaa"
				LINE="dig aaaa $DOMAIN"
				;;
			3)	TEST="ptr"
				LINE="dig -x $IPv6"
				;;
			4)	TEST="ping"
				LINE="ping6 -n -c 4 $DOMAIN"
				;;
			5)	TEST="whois"
				LINE="whois $IPv6"
				;;
		esac

		echo -e "\n>>>>> $LINE <<<<<"

		$LINE > $WORK 2>&1
		if [ $? -ne 0 ]; then
			FLAG=0
			COUNT=$(($COUNT+1))
			echo -e "\nKo!"
			continue
		fi

		sed -i "1i~> $LINE\n" $WORK

		# ---------------------- #
		# Error Message Analysis #
		# ---------------------- #

		MESS=`curl -q -s -b cookies --data-urlencode input@$WORK $URL/daily.php?test=$TEST -width 82`

		if [[ $MESS =~ "Result: Pass" ]] || [[ $MESS =~ "within the last 24 hours." ]]
		then	NEXT=$(($NEXT+1))
		else	FLAG=0
			COUNT=$(($COUNT+1))
		fi

		if [[ $MESS =~ "Result: Pass" ]]
		then	
			echo -e `echo $MESS | sed 's/^.*<div class=\"infoMessageBox\">/\\\\n/;s/<\/div>.*$//;s/<br \/>/\\\\n/g'`
		else	
			echo -e `echo $MESS | sed 's/^.*<div class=\"errorMessageBox\">/\\\\n/;s/<\/div>.*$//;s/<br \/>/\\\\n/g'`
		fi
	done
done

if [ $COUNT -gt $MAXTRIES ]; then
	echo -e "\nMaximum number of tries is reached!"
fi

# ----- #
# Finsh #
# ----- #

rm cookies
rm $WORK

echo -e "\nThat's all folks!"

exit 0
Il serait intéressant de m'indiquer ce que je peux améliorer dans ce script afin d'intervenir le moins possible en cas de problème.

Voici un exemple de compte-rendu :

Code : Tout sélectionner

Tue Oct  1 07:50:03 CEST 2019

Hello Artemus Gordon!

Domain = ipv6.nextday.flaxe.eu : IPv6 = 2a02:990:223::1001

>>>>> traceroute6 2001:470:1f12:226::1 <<<<<

Summary of user's traceroute
Number of reachable hops: 
Testing Ping6: 
PING 2001:470:1f12:226::1(2001:470:1f12:226::1) 56 data bytes
64 bytes from 2001:470:1f12:226::1: icmp_seq=1 ttl=59 time=133 ms

--- 2001:470:1f12:226::1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 133.366/133.366/133.366/0.000 ms
Validating user's traceroute
Result: Pass

>>>>> dig aaaa ipv6.nextday.flaxe.eu <<<<<

Summary of user's dig query
Host name: ipv6.nextday.flaxe.eu
AAAA Record:2a02:990:223::1001
Status: NOERROR
Result: Pass

>>>>> dig -x 2a02:990:223::1001 <<<<<

Summary of user's dig query
IPv6 Address: 2a02:990:223::1001
Status: NOERROR
Reverse ip6.arpa:
1.0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3.2.2.0.0.9.9.0.2.0.a.2.ip6.arpa.
Validating user's dig query
Result: Pass

>>>>> ping6 -c 4 ipv6.nextday.flaxe.eu <<<<<

Domain = iinet.com.au : IPv6 = 2001:4478:1310:1fff:203:173:50:151

>>>>> ping6 -c 4 iinet.com.au <<<<<

Domain = nfx.cz : IPv6 = 2a01:490:a::120

>>>>> ping6 -c 4 nfx.cz <<<<<

Looks like this is an invalid IPv6 ping!

Domain = ipv6.sarenet.es : IPv6 = 2a03:c600:0:101a::16:a002

>>>>> ping6 -c 4 ipv6.sarenet.es <<<<<

Domain = ipv6.xmu.edu.cn : IPv6 = 2001:da8:e800::55

>>>>> ping6 -c 4 ipv6.xmu.edu.cn <<<<<

Summary of user's ping output
IPv6 Address: 2001:da8:e800::55
Validating user's ping output
Result: Pass

>>>>> whois 2001:da8:e800::55 <<<<<

Summary of user's whois query
CIDR: 2001:da8:e800::/48
Validating user's whois query
Result: Pass

That's all folks!
Comme on peut le voir, il y a des commandes qui n'ont pas fonctionné.
J'ai, dans ce cas, recherché un autre nom de domaine, jusqu'à ce que la commande fonctionne et soit validé (Result: Pass) par Hurricane Electric.

Je déclenche ce script chaque jour, après la période des 24 heures où je ne peux intervenir pour faire un test supplémentaire.
Je gagne 5 points à chaque mise à jour. De cela, j'ai encore un 100 jours avant d'atteindre le maximum qui est de 1500 points.
Aujourd'hui, donc le mardi 24 septembre 2019, je suis dans mon troisième jour et j'ai gagné 3 x 5 = 15 points.
Soit un total de 1015 points !

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Répondre

Retourner vers « Utilisateurs avancés »