Ipv6 online.net et routage
Par défaut, online vous fournit un bloc /48. On va prendre comme exemple 2a01:b2a:115b::/48
Ce bloc doit être routée vers l'un de vos serveurs. Pour cela, il est nécessaire de faire une requête dhcpv6 en spécifiant le duid précisé dans votre console online. Le client dhcp doit supporter la délégation de préfixe ipv6, chose relativement rare à ce jour, mais ça bouge.
- Hyperviseur avec deux bridge :
- vmbr0 bridge de eth0 (l'interface avec le réseau online) auquel on attribuera l'ipv6 2a01:b2a:115b:1111::1
- vmbr1 bridge virtuelle dummy
- une vm qui servira de routeur :
- avec une interface eth0 assigné sur le bridge vmbr0 a laquelle on attribuera l'ipv6 2a01:b2a:115b:1111::2
- une interface eth1 assigné sur le bridge vmbr1 a laquelle on attribuera l'ipv6 2a01:b2a:115b:1112::1
- une vm "client", avec uniquement une interface eth0 assigné sur le bridge vmbr1 a laquelle on attribuera l'ipv6 2a01:b2a:115b:1112::10
Préparation du routage sur votre hyperviseur
Créez le fichier /etc/sysctl.d/ipv6.conf
contenant :
net.ipv6.conf.vmbr0.autoconf=0 net.ipv6.conf.vmbr0.accept_ra=0 net.ipv6.conf.eth0.autoconf=0 net.ipv6.conf.eth0.accept_ra=0 #net.ipv6.conf.all.accept_redirects=0 #net.ipv6.conf.all.router_solicitations=1 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1 #net.ipv6.conf.default.proxy_ndp=1 #net.ipv6.conf.all.proxy_ndp=1
On désactive l'autoconfiguration des ipv6 et des routes ipv6 et on active le forwarding pour permettre le routage.
Notez que sous debian squeeze, il est nécessaire de charger manuellement le module ipv6 sinon les sysctl ne seront pas pris en compte au boot :
echo ipv6 >> /etc/modules
Attributions du préfixe ipv6 à votre hyperviseur
Créez le fichier /etc/dhcp/dhclient6.conf
contenant (remplacez votre_duid par le duid dans votre console online) :
interface "vmbr0" { send dhcp6.client-id votre_duid; }
On peut maintenant lancer le dhclient et s'attribuer notre prefixe ipv6 :
dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -v vmbr0
Puis vous pouvez configurer une ip du bloc :
ip addr add 2a01:b2a:115b:1111::1/64 dev vmbr0
Reste encore à ajouter la route ipv6 manuellement étant donné que nous avons désactivé les RA. Tapez ip -6 neigh
pour trouver votre routeur :
~# ip -6 neigh fe80::225:45ff:fda3:823f dev vmbr0 lladdr 00:25:45:xx:xx:xx router REACHABLE
Il ne reste plus qu'a définir la route par défaut vers fe80::225:45ff:fda3:823f :
ip -6 route add default via fe80::225:45ff:fda3:823f dev vmbr0
Vous devriez désormais avoir une connectivité ipv6 sur votre hyperviseur.
Nous allons rajouter une dernière route afin de diriger le trafic dirigé vers 2a01:b2a:115b:1112:: vers notre futur routeur qui aura l'ip 2a01:b2a:115b:1111::2
ip -6 route add 2a01:b2a:115b:1112::/64 via 2a01:b2a:115b:1111::2 dev vmbr0
configuration de votre VM routeur
ip addr add 2a01:b2a:115b:1111::2/64 dev eth0
ip addr add 2a01:b2a:115b:1112::1/64 dev eth1
On ajoute une route par défaut vers notre hyperviseur :
ip -6 route add default via 2a01:b2a:115b:1111::1 dev eth0
Enfin, il faut activer le forwarding ipv6 :
sysctl -w net.ipv6.conf.all.forwarding=1
normalement, les ipv6 2a01:b2a:115b:1111::2 et 2a01:b2a:115b:1112::1 doivent désormais répondre depuis l'extérieur.
configuration du client
ip addr add 2a01:b2a:115b:1112::10/64 dev eth0
ip -6 route add default via 2a01:b2a:115b:1112::1 dev eth0
çamarchepas
tcpdump -s0 -n -i eth0 'icmp6 and (ip6[40+0]&0xFE == 128)'