Centos - Fedora et IPv6
On a plus d'adresses IPv4, ce n'est plus un secret, le protocole IPv6 est validé depuis la fin de l'année 1998, bon ba faut y aller maintenant !
Plusieurs hébergeurs fournissent dès maintenant un double adressage IP (Dual Stack IPv4/IPv6), la mise en place est suffisament simple et sans risque pour être réalisée sur un serveur déjà en place afin de desservir les services HTTP, DNS, SMTP etc etc
On va voir comment faire pour mettre en place IPv6 sur un serveur Gnu/Linux Centos hébergé par OVH (Kimsufi), cela sera en gros du même ordre pour le faire à la maison (chez Free par exemple) sur Fedora.
Configuration du système Gnu/Linux
Tout d'abord on va vérifier que notre Kernel est compatible avec IPv6
test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
Chez OVH, on peut très simplement changer de Kernel avec le Netboot disponible sur votre Manager, pour moi c'est OK :
#uname -r
3.2.13-grsec-xxxx-grs-ipv6-64
Configuration du réseau
On va activer la prise en charge de l'adresse IPv6 en éditant le fichier suivant:
/etc/sysconfig/network
en ajoutant :
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no
On pourra ensuite récupérer l'adresse IPv6 que notre fournisseur nous a attribué, pour mon cas tout se fait via le Manager:
Pour configurer notre interface réseau en éditant le fichier suivant :
/etc/sysconfig/network-scripts/ifcfg-eth0
En ajoutant:
IPV6INIT=yes IPV6ADDR="2001:41d0:1:ba44::1337/64" IPV6_DEFAULTGW="2001:41d0:1:baff:ff:ff:ff:ff%eth0" IPV6_DEFAULTDEV="eth0"
Et vérifie que tout fonctionne :
service network restart # ping6 -c 1 www.google.com PING www.google.com(we-in-x93.1e100.net) 56 data bytes 64 bytes from we-in-x93.1e100.net: icmp_seq=0 ttl=55 time=9.55 ms --- www.google.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 9.553/9.553/9.553/0.000 ms, pipe 2
# route -n -A inet6 |grep "::/0" ::/0 2001:41d0:1:baff:ff:ff:ff:ff UG 1 0 0 eth0
Configuration du firewall
Nous voilà maintenant disponible en IPv6, on va sécuriser un peu tout ça et ne rendre disponible que les services que nous allons utiliser, c'est à dire http, smtp, dns en configurant notre firewall.
On va éditer le fichier :
/etc/sysconfig/ip6tables
En ajoutant:
*filter :INPUT ACCEPT 0:0 :FORWARD ACCEPT 0:0 :OUTPUT ACCEPT 0:0 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p ipv6-icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -j REJECT --reject-with icmp6-adm-prohibited -A FORWARD -j REJECT --reject-with icmp6-adm-prohibited COMMIT
On redémarre le firewall
service ip6tables restart
On s'assure qu'il démarre au boot de la machine
chkconfig ip6tables on
Configuration de Postfix
Il faut que Postfix puisse écouter sur l'interface IPv6, il nous faut éditer le fichier /etc/postfix/main.cf en ajoutant :
inet_protocols = all
Puis on redémarre le service
service postfix restart
Et on vérifie que cela fonctionne
# netstat -lnptu |grep "master\W*$" tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 5818/master tcp 0 0 :::25 :::* LISTEN 5818/master
Configuration de Apache
il faut éditer la configuration de notre httpd pour qu'il puisse écouter sur l'adresse IPv4 et l'IPv6.
Nous allons éditer le fichier /etc/httpd/conf/httpd.conf et nous assurer que la ligne soit bien inscrite :
Listen 80
Puis on redémarre le service
service httpd restart
On peut maintenant tester avec notre navigateur en tentant de joindre dans la barre d'adresse :
http://[2001:41d0:1:ba44::1]
Configuration de Bind
Notre serveur DNS doit aussi pouvoir répondre en IPv6, il faut éditer le fichier /etc/named.conf et ajouter dans les options:
listen-on-v6 { any; };
Puis redémarrer le service
service named restart
Et on vérifie que cela fonctionne
# netstat -lnptu |grep "named\W*$" tcp 0 0 91.121.139.68:53 0.0.0.0:* LISTEN 7692/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 7692/named tcp 0 0 :::53 :::* LISTEN 7692/named udp 0 0 91.121.139.68:53 0.0.0.0:* 7692/named udp 0 0 127.0.0.1:53 0.0.0.0:* 7692/named udp 0 0 :::53 :::* 7692/named
Configuration de notre nom de domaine
Il ne reste donc plus qu'a configurer notre nom de domaine en ajoutant dans notre fichier de zone :
blog IN AAAA 2001:41d0:1:ba44::1
On vérifie que cela fonctionne
$ host -aaaa blog.titax.fr |egrep ^blog blog.titax.fr. 86400 IN A 91.121.139.68 blog.titax.fr. 86400 IN AAAA 2001:41d0:1:ba44::1
Bienvenue dans l'Internet du Futur !
Si jamais j'ai oublié une chose ou si j'ai fais une erreur, n'hésitez pas à me laisser un commentaire
A+
Oh !
Ce blog est encore vivant ? (Merci Google Reader)
C'est bon cela marche chez moi !
Envoi d'une requête 'ping' sur blog.titax.fr 2001:41d0:1:ba44::1 avec 32 octet
s de données :
Réponse de 2001:41d0:1:ba44::1 : temps=34 ms
Réponse de 2001:41d0:1:ba44::1 : temps=33 ms
Réponse de 2001:41d0:1:ba44::1 : temps=35 ms
Réponse de 2001:41d0:1:ba44::1 : temps=37 ms
Bienvenue dans le futur Prolag !!
Si tu veux vérifier que tu n'es pas le seul dans le futur, tu peux installer cette extension Firefox :
https://addons.mozilla.org/en-us/fi...
Ba oui il est toujours vivant, juste que je dis moins de connerie donc je post moins souvent
A+
IPV6_DEFAULTDEV="eth0"
dans le fichier /etc/sysconfig/network
Car sur un Linux Centos 5 j'avais ce message d'erreur :
Activation de l'interface eth0 : AVERTISSEMENT : [ipv6_add_route] 'Aucune route pour l'hôte' Ajout d'une route '::/0'par la passerelles '2001:41d0:1:baff:ff:ff:ff:ff' à travers le périphérique 'eth0'
Salut, merci pour le tuto.
Je rencontre le même problème dont tu parles dans ton précédent commentaire au network restart:
Activation de l'interface eth0 : AVERTISSEMENT : ipv6_add_route « Aucune route pour l'hôte » Ajout d'une route « ::/0'par la passerelles « 2001:41d0:8:5bff:ff:ff:ff:ff » à travers le périphérique « eth0 »
je suis sous centos 6 (2001:41d0:8:5b11::/64) et j'ai bien mis la ligne IPV6_DEFAULTDEV="eth0"
je peux pinger mon ip mais la passerelle pas
une idée de la provenance du problème ?
Est-ce que tu peux donner le résultat de la commande suivante :
route -A ipv6
route -A ipv6 affiche:
Famille d'adresses inconnue `ipv6'.
lorsque j'essaie d'ajouter ma route en faisant un
route -A inet6 add default gw 2001:41d0:1:2FF:FF:FF:FF:FF dev eth0
j'obtiens simplement: 'SIOCADDRT: Aucun chemin d'accès pour atteindre l'hôte cible'
oui je crois que tu peux effacer le commentaire précédent
le résultat de route -A ip6 est:
Table de routage IPv6 du noyau
Destination Prochain Hop Indic Metric Ref Utilis. Iface
2001:41d0:8:5b11::/64 * U 256 0 0 eth0
fe80::/64 * U 256 0 0 eth0
ip6-localhost/128 * U 0 5 1 lo
ns3099970.ovh.net/128 * U 0 4 1 lo
2001:41d0:8:5b11::5/128 * U 0 0 1 lo
fe80::ea40:f2ff:fed1:1307/128 * U 0 0 1 lo
ip6-mcastprefix/8 * U 256 0 0 eth0
lorsque j'essaie d'ajouter ma route en faisant un
route -A inet6 add default gw 2001:41d0:8:2FF:FF:FF:FF:FF dev eth0
j'obtiens simplement: 'SIOCADDRT: Aucun chemin d'accès pour atteindre l'hôte cible'
solution trouvée ici: http://forum.ovh.com/showthread.php...
Il faut une route vers la gateway ipv6, pour moi, cela se fait comme ceci
ip -f inet6 route add 2001:41d0:8:2bFF:FF:FF:FF:FF dev eth0
ip -f inet6 route add default via 2001:41d0:8:2bFF:FF:FF:FF:FF
et ensuite ajouter la route:
route -A inet6 add default gw 2001:41d0:8:2bFF:FF:FF:FF:FF dev eth0
le problème suivant et qu'au redémarrage du serveur la route disparaît, j'ai simplement ajouté les 3 commandes précédentes dans mon rc.local pour qu'elles s'effectuent à chaque redémarrage.