« Ipv6 online.net et routage » : différence entre les versions

Aller à la navigation Aller à la recherche
 
(19 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
Par défaut, online vous fournit un bloc /48. On va prendre comme exemple 2a01:b2a:115b::/48
[[Category:serveur]]
[[Category:debian]]
[[Category:networking]]
Par défaut, online vous fournit un bloc /48 pour l'ensemble de votre compte. On va prendre comme exemple 2a01:b2a:115b::/48.<br>
Du bloc 2a01:b2a:115b::/48 nous allons attribuer le bloc 2a01:b2a:115b:1100::/56 à notre serveur. L'idéal est d'utiliser un /56 différent sur chacun de vos serveur.


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.  
Ce bloc doit /56 être routée vers l'un de vos serveurs. Pour cela, il est nécessaire de faire une requête dhcpv6 prefix-delegation en spécifiant le DUID précisé dans votre console online. Le client dhcp doit supporter la délégation de préfixe ipv6.


Nous allons prendre l'exemple suivant :
* Du bloc /56, nous allons utiliser deux blocs /64 : 2a01:b2a:115b:1111::/64 et 2a01:b2a:115b:1112::/64
* Hyperviseur avec deux bridge :  
* 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
** 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
** vmbr1 bridge virtuel
* une vm qui servira de routeur :
* 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
** 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 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::3
* 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=
=Préparation du routage sur votre hyperviseur=
Ligne 15 : Ligne 21 :
Créez le fichier <code>/etc/sysctl.d/ipv6.conf</code> contenant :
Créez le fichier <code>/etc/sysctl.d/ipv6.conf</code> contenant :
<pre>
<pre>
# forwarding ipv6
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
# ra and antoconf sent by the router-vm should be ignored
net.ipv6.conf.vmbr1.accept_ra=0
net.ipv6.conf.vmbr1.autoconf=0
# ra on main interface (default gateway)
net.ipv6.conf.vmbr0.accept_ra=0
net.ipv6.conf.vmbr0.autoconf=0
net.ipv6.conf.vmbr0.autoconf=0
net.ipv6.conf.vmbr0.accept_ra=0
net.ipv6.conf.eth0.accept_ra=0
net.ipv6.conf.eth0.autoconf=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
</pre>
</pre>


On désactive l'autoconfiguration des ipv6 et des routes ipv6 et on active le forwarding pour permettre le routage.
On désactive l'autoconfiguration des ipv6 et des routes ipv6 (RA) et on active le forwarding pour permettre le routage.<br>
Attention, si vous souhaitez profiter des RA ipv6 tout en ayant le forwarding activé, il faut passer la valeur <code>accept_ra</code> à <code>2</code> (et non pas 1).


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 :
=Attributions du préfixe ipv6 à votre hyperviseur=
<pre>echo ipv6 >> /etc/modules</pre>
 
=Attributions du préfixe ipv6 à votre serveur=


Créez le fichier <code>/etc/dhcp/dhclient6.conf</code> contenant (remplacez votre_duid par le duid dans votre console online) :
Créez le fichier <code>/etc/dhcp/dhclient6.conf</code> contenant (remplacez votre_duid par le duid dans votre console online) :
Ligne 49 : Ligne 56 :
Reste encore à ajouter la route ipv6 manuellement étant donné que nous avons désactivé les RA. Tapez <code>ip -6 neigh</code> pour trouver votre routeur :
Reste encore à ajouter la route ipv6 manuellement étant donné que nous avons désactivé les RA. Tapez <code>ip -6 neigh</code> pour trouver votre routeur :
<pre>
<pre>
~# ip -6 neigh
# ip -6 neigh
fe80::225:45ff:fda3:823f dev vmbr0 lladdr 00:25:45:f6:94:7f router REACHABLE
fe80::225:45ff:fda3:823f dev vmbr0 lladdr 00:25:45:xx:xx:xx router REACHABLE
</pre>
</pre>
Comment être certain de quelle ip est le routeur online ?
* aucune idée pour le savoir a coup sur
* c'est forcément un link-local (fe80::)
* comparer la mac (00:25:45:xx:xx:xx) avec une bdd OUI (https://www.wireshark.org/tools/oui-lookup.html par exemple).


Il ne reste plus qu'a définir la route par défaut vers fe80::225:45ff:fda3:823f :
Il ne reste plus qu'a définir la route par défaut vers fe80::225:45ff:fda3:823f :
<pre>ip -6 route add default via fe80::225:45ff:fda3:823f dev vmbr0</pre>
<pre>ip -6 route add default via fe80::225:45ff:fda3:823f dev vmbr0</pre>


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
Vous devriez désormais avoir une connectivité ipv6 sur votre hyperviseur.  
 
Nous allons rajouter une dernière route afin de diriger le trafic destiné à 2a01:b2a:115b:1112::/64 vers notre futur vm-routeur qui aura l'ip 2a01:b2a:115b:1111::2
<pre>ip -6 route add 2a01:b2a:115b:1112::/64 via 2a01:b2a:115b:1111::2 dev vmbr0</pre>
<pre>ip -6 route add 2a01:b2a:115b:1112::/64 via 2a01:b2a:115b:1111::2 dev vmbr0</pre>


Ligne 66 : Ligne 80 :
On ajoute une route par défaut vers notre hyperviseur :
On ajoute une route par défaut vers notre hyperviseur :
<pre>ip -6 route add default via 2a01:b2a:115b:1111::1 dev eth0</pre>
<pre>ip -6 route add default via 2a01:b2a:115b:1111::1 dev eth0</pre>
Note : il est également possible d'ajouter directement la gateway OVH (via son link-local fe80::) en tant que route par défaut. Cela créera néanmoins un routage asymétrique (les paquets sortant vont directement sur la gateway sous être routée sur l'hyperviseur, tandis que les paquets entrant sous d'abord routé sur l'hyperviseur).


Enfin, il faut activer le forwarding ipv6 :
Enfin, il faut activer le forwarding ipv6 :
<pre>sysctl -w net.ipv6.conf.all.forwarding=1</pre>
<pre>sysctl -w net.ipv6.conf.all.forwarding=1</pre>
Ajoutez cette directive dans un fichier <code>/etc/sysctl.d/ipv6.conf</code> afin que le forwarding survive a un reboot.


normalement, les ipv6 2a01:b2a:115b:1111::2 et 2a01:b2a:115b:1112::1 doivent désormais répondre depuis l'extérieur.
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=
==Et si c'était un routeur pfsense ?==
<pre>ip addr add 2a01:b2a:115b:1112::2/64 dev eth0</pre>
 
Même principe : IP fixe attribuées aux interfaces WAN et LAN (dans deux /64 différents)
 
=configuration de la VM client=
<pre>ip addr add 2a01:b2a:115b:1112::10/64 dev eth0</pre>
<pre>ip -6 route add default via 2a01:b2a:115b:1112::1 dev eth0</pre>
<pre>ip -6 route add default via 2a01:b2a:115b:1112::1 dev eth0</pre>
=çamarchepas=
<pre>tcpdump -s0 -n -i eth0 'icmp6 and (ip6[40+0]&0xFE == 128)'</pre>
4 242

modifications

Menu de navigation