Comment mettre en oeuvre un réseau IPv6 chez soit, sous linux.
Cette première partie vise à configurer un accès internet en IPv6 via un tunnel broker.
Afin de se familiariser avec le nouveau protocole IPv6 en cours de déploiement, voici un petit tutorial pour le mettre en oeuvre sur son réseau domestique.
Topologie du réseau.
Configuration initiale
Nous partirons du principe que votre serveur Linux est déjà configuré pour un accès internet standard (IPv4), et qu'il ne dispose que d'une interface (eth0).
Pré-requis
- Une installation Debian 8.
- Une configuration réseau opérationnel.
- Shorewall firewall configuration.
- Mode DMZ activé sur votre box, avec votre serveur linux.
- Votre box doit répondre aux ping sur son IP publique.
Configuration du firewall avec Shorewall
Shorewall est un script de configuration automatique du firewall Linux. La configuration est basé sur un déploiement du type "one-arm", soit une seule interface. Dans cette configuration il existe qu'une zone: Internet IPv4.
Configuration des zones (/etc/shorewall/zones):
#ZONE TYPE OPTIONS IN OPTIONS OUT OPTIONS
fw firewall
net ipv4
Configuration des interfaces (/etc/shorewall/interfaces):
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect
Configuration de la politique globale (/etc/shorewall/policy):
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW all ACCEPT
all all DROP
Configuration des règles d'accès (/etc/shorewall/rules):
#ACTION SOURCE DEST PROTO DEST PORT SOURCE PORT(S)
?SECTION NEW
ACCEPT all $FW tcp 22
ACCEPT net $FW icmp 8
Hurricane electric IPv6 tunnel brocker
La première étape de ce tutoriel, consiste a établir une connectivité internet en IPv6. Pour cela nous allons passer par un fournisseur de tunnel IPv6: Hurricane Electric. Ce service permet un accès au réseau IPv6, au travers d'un tunnel IPv4. C'est nécessaire si votre fournisseur d'accès internet ne vous offre pas une connectivié IPv6 (Bouygues !!).
Commencez donc par créer votre compte sur Hurricane Electric
Après vous être enregistré, procédez à la création d'un tunnel standard: "Create Regular Tunnel".
Le champs "IPv4 Endpoint" correspond à l'IP publique de votre box.
Sélectionnez également un serveur proche de votre lieu géographique.
Après validation vous obtenez les détails de configuration du tunnel.
Nous allons maintenant pouvoir configurer le tunnel sur notre serveur avec les informations ci-dessus. 2 étapes pour cela:
- Configuration des interfaces réseau.
- Autorisation du protocole 6in4 via Shorewall.
Configuration de l'interface tunnel 6in4.
Grâce au travail de l'équipe Debian, c'est relativement simple. Cela passe par le script de configuration réseau standard.
Utilisez pour cela les informations IP de la partie "IPv6 Tunnel Endpoints".
Ajouter les lignes suivantes dans le fichier de configuration des interfaces réseau "/etc/network/interfaces":
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 2001:db8:1f13:7c8::2
netmask 64
endpoint 216.66.84.42
local 192.168.1.200
ttl 255
gateway 2001:db8:1f13:7c8::1
L'adresse "local" doit être l'IP privée de votre serveur, et non votre IP publique.
Configuration de l'interface eth0.
Utilisez les informations de la partie "Routed IPv6 Prefix".
De même editez le fichier de configuration des interfaces réseau "/etc/network/interfaces" et ajoutez:
iface eth0 inet6 static
address 2001:db8:1f13:7c9::1
netmask 64
Autorisation du protocole 6in4.
Notre configuration firewall n'autorise pas pour le moment le trafic du type 6in4 (protocole IP41). Nous allons donc l'autoriser grace à Shorewall: "/etc/shorewall/tunnels"
#TYPE ZONE GATEWAY GATEWAY
# ZONE
6to4 net
Last, but not least.
On redémarre Shorewall pour appliquer les nouvelles règles:
myhost:~# shorewall restart
On redémarre les interfaces réseaux (attention, si vous en connecté en ssh, vous risquez la déconnexion):
myhost:~# ifup he-ipv6
myhost:~# ifdown eth0 && ifup eth0
On vérifie:
myhost:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:08:02:e8:50:19
inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: 2001:db8:1f13:7c9::1/64 Scope:Global
inet6 addr: fe80::208:2ff:fee8:5019/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:553120 errors:0 dropped:0 overruns:0 frame:0
TX packets:553185 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:422682596 (403.1 MiB) TX bytes:402275290 (383.6 MiB)
Interrupt:11
he-ipv6 Link encap:IPv6-in-IPv4
inet6 addr: fe80::c0a8:1c8/64 Scope:Link
inet6 addr: 2001:db8:1f13:7c8::2/64 Scope:Global
UP POINTOPOINT RUNNING NOARP MTU:1480 Metric:1
RX packets:1084077 errors:0 dropped:0 overruns:0 frame:0
TX packets:675577 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1341129311 (1.2 GiB) TX bytes:73968439 (70.5 MiB)
myhost:~# ip -6 route show
2001:db8:1f13:7c8::1 dev he-ipv6 metric 1024
2001:db8:1f13:7c8::/64 dev he-ipv6 proto kernel metric 256
2001:db8:1f13:7c9::/64 dev eth0 proto kernel metric 256
fe80::/64 dev he-ipv6 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via 2001:db8:1f13:7c8::1 dev he-ipv6 metric 1024
On test ?
myhost:~# ping6 -c2 www.google.com
PING www.google.com(par21s04-in-x04.1e100.net) 56 data bytes
64 bytes from par21s04-in-x04.1e100.net: icmp_seq=1 ttl=52 time=40.1 ms
64 bytes from par21s04-in-x04.1e100.net: icmp_seq=2 ttl=52 time=37.0 ms
--- www.google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 37.078/38.619/40.160/1.541 ms
Hurra, ça marche !
Que reste t'il ?
Notre serveur dispose d'un firewall pour l'IPv4, mais pas encore pour l'IPv6.
Nous allons donc installer et configurer Shorewall6, qui fait la meme chose que Shorewall mais pour l'IPv6.
myhost:~# aptitude install shorewall6
Configuration de Shorewall6
Zones
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv6
lan ipv6
Interfaces
#ZONE INTERFACE OPTIONS
net he-ipv6
lan eth0
Policy
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW all ACCEPT
# The FOLLOWING POLICY MUST BE LAST
all all DROP
Rules
#ACTION SOURCE DEST PROTO DEST PORT
?SECTION NEW
ACCEPT lan:2001:db8:1f13:7c9::/64 $FW tcp 22
Et voila!
Dans la deuxième partie, nous verrons comment mettre en place le service d'autoconfiguration d'adresse pour les clients, ainsi que les technologies de transition IPv6.