Tags

arm bin_sh blocage blosxom bsd bsdfrance cblog certification chroot cluster dg834 dhcp dns dnsmasq dovecot fail-over fail2ban firefox freebsd ftp git guruplug install ipv6 jail kernel kimsufi lex libre linutop makefile ml150 mohawk netbook netbsd nginx ntp ntp.org openbsd openntpd openrd openwrt pkgng poudriere proxy python reverse rmll route rrdcgi sendmail sieve sl2009 ssd symon update usb var_empty vimperator world xen yacc zfs

Powered by

blOg
maRdown
awK
shEll

14/11/2008

[ ntp ipv6 ntp.org ]

200811140800 ntp ipv6 ntp.org

NTP et IPV6

6tuation

Je faisais mumuse avec de l'ipv6 sur une Fonera 2200 / OpenWRT lorsque le besoin s'est fait sentir d'un serveur de temps ipv6 ready. Mon ami google m'a fait (justement) connaitre et plus précisément

J'ai donc décidé de monter mon(es) serveur(s) de temps.

6tèmes

Kimsufi / FreeBSD 7.0

Rien de particulier, le système de base comprenant un ntpd:
kimsufi# grep ntpd /etc/rc.conf 
ntpd_enable="YES"
ntpd_sync_on_start="YES"
ntpd_flags="-L -p /var/run/ntpd.pid -f /var/db/ntpd.drift"

kimsufi# cat /etc/ntp.conf 
server ntp.ovh.net
server ntp.via.ecp.fr
server 0.fr.pool.ntp.org
server 2.fr.pool.ntp.fr
driftfile /var/db/ntp.drift

ntp.ovh.net est un serveur de niveau 1 (GPS).

Extrait du pf.conf:
kimsufi# grep ntp /etc/pf.conf 
pass quick on $ext_if inet  proto { udp,tcp } from any to any port ntp
pass quick on $ext_if inet6 proto { udp,tcp } from any to any port ntp

Une fois le dns correctement renseigné on peut ajouter notre serveur à pool.ntp.org. La procédure se résume à la création d'un compte et un formulaire vous permet d'ajouter votre(vos) serveur(s) au pool (vérifiez votre pf.conf avant, vous gagnerez du temps :)

Fonera 2200 / OpenWRT (snapshot du 20081104)

Connectivité ipv6:
# opkg install kmod-ipv6
# opkg install ip6tables
# opkg install kmod-ip6tables
# opkg install ip
Dans le but d'avoir une machine ipv6 only, je remplace dropbear par openssh. Cette manipulation ne peut se faire qu'avec une console série:
# opkg install openssh-client
# opkg install openssh-server
Serveur ntp:
# opkg install openntpd
# cat /etc/ntp.conf
server ntp6.bsdsx.fr
server ntp6.space.net
server ntp.via.ecp.fr
server ntp2.cines.fr
C'est parti:
# /etc/init.d/ntp start

ip6tables

En simplifiant, ipv6 affecte au moins deux adresses ip à chaque interface: une limitée au réseau local (fe80.....) et une autre publique, routable et accessible depuis n'importe où.

Il faut donc filtrer les accès aux machines ipv6:
# cat /etc/init.d/firewall6
#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org

START=46

PRIVATE=fe80::aaaa:bbbb:cccc:dddd

start() {
# raz des regles
ip6tables -F
ip6tables -X

# on DROP tout le traffic entrant
ip6tables -P INPUT DROP

# pas de filtre sur l'interface lo
ip6tables -A INPUT -i lo -j ACCEPT

# pas de filtre sur l'adresse lien-local
ip6tables -A INPUT -d $PRIVATE -j ACCEPT

# on laisse entrer icmpv6
ip6tables -A INPUT -p icmpv6 -j ACCEPT

# les reponses NTP
ip6tables -A INPUT -p udp --sport ntp -j ACCEPT

}

stop() {
ip6tables -F
ip6tables -X
ip6tables -P INPUT ACCEPT
}
Les puristes d'ip[6]tables me pardonneront (je l'espère :) ce script un peu trop simpliste. La Fonera est désormais accessible uniquement sur son adresse privée. Si on tente, depuis une machine située sur le même lien:
dsx@mini>ping6 -c 1 fe80::aaaa:bbbb:cccc:dddd
PING6(56=40+8+8 bytes) fe80::1%lo0 --> fe80::aaaa:bbbb:cccc:dddd
ping6: sendmsg: Network is unreachable
ping6: wrote fe80::aaaa:bbbb:cccc:dddd 16 chars, ret=-1
^C
--- fe80::aaaa:bbbb:cccc:dddd ping6 statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
Et là, c'est le drame. Notre ami google nous apprend rapidementt qu'avec ipv6, en cas d'utilisation d'adresse locale il faut préciser l'interface de sortie:
dsx@mini>ping6 -c 1 fe80::aaaa:bbbb:cccc:dddd%ne3
PING6(56=40+8+8 bytes) fe80::wwww:xxxx:yyyy:zzzz%ne3 --> fe80::aaaa:bbbb:cccc:dddd%ne3
16 bytes from fe80::aaaa:bbbb:cccc:dddd%ne3, icmp_seq=0 hlim=64 time=1.566 ms

--- fe80::aaaa:bbbb:cccc:dddd%ne3 ping6 statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 1.566/1.566/1.566/NaN ms
Reste à vérifier notre serveur ntp:
# /etc/init.d/ntp stop
# ntpd -d
reply from 2001:41d0:1:34b6::1: offset -0.011423 delay 0.082885, next query 9s
reply from 2001:660:6301:f13::2:1: offset -0.005595 delay 0.092083, next query 7s
reply from 2002:8ac3:802d:1243::71: offset -0.014533 delay 0.096260, next query 5s
reply from 2001:608::1000:1: offset 0.001858 delay 0.100866, next query 5s
reply from 2002:8ac3:802d:1243::71: offset -0.010519 delay 0.086758, next query 8s
reply from 2001:608::1000:1: offset -0.199183 delay 0.498697, next query 6s
reply from 2001:660:6301:f13::2:1: offset 0.003043 delay 0.070645, next query 6s

Mer6

Possédant plusieurs Fonera, j'ai décidé d'utiliser ces mini routeurs wifi pour découvrir ipv6. Cette démarche a été riche d'enseignements:

A venir:

Merci à toute l'équipe d'OpenWRT pour leur fantastique travail et à www.pouf.org qui m'a incité à rejoindre ntp.org.


Lien vers ce billet