Projet

Général

Profil

Routage » Historique » Version 43

Version 42 (Matthieu Herrb, 03/03/2016 09:13) → Version 43/81 (Matthieu Herrb, 03/03/2016 09:26)

{{>toc}}

h1. Routage

h2. Étape pour un changement d'adresse ipv6 sans indisponibilité temporaire:

* mettre les deux adresses dans /etc/network/interface (ou similaire)
* mettre que la nouvelle adresse dans votre zone DNS (sauf l'enregistrement SPF qui devra contenir l'ancienne et la nouvelle adresse)
* si serveur mail/web mettre l'ancienne et la nouvelle adresse dans le fichier /etc/hosts
* si serveur de mail, mettre à jour les ips du domain local (ie: mynetworks pour postfix)

On attends ensuite quelque jours que le DNS se propage, puis.

* Virer la vielle adresse de partout.
* Nettoyer l'enregistrement SPF

h2. Routage

Coté Adhérent-e :

<pre>
# IPv4 Adherent
ip addr add IP/32 dev eth0
ip route add default via 91.224.148.0 dev eth0 onlink

# IPv6 adherent
ip -6 addr add fe80::XX:YY/64 dev eth0
ip -6 route add default via fe80::31 dev eth0
ip -6 addr add IP/NN...
</pre>

Et coté routeur :

<pre>
# IPv4 routeur
ip addr add 91.224.148.0/32 dev lo
ip route add IP/32 dev eth0.NNN

# IPv6 routeur
ip -6 addr add fe80::31/64 dev eth0.NNN
ip route add IP/56 vi fe80:XX:YY dev eth0.NNN
</pre>

h2. Adressage

<pre>
PA 2a01:6600:8000::/40 LIR fullsave
2a01:6600:8080:HH00::/56 => 91.224.148.DDD fe80::80:HH PI tetaneutral.net
2a01:6600:8081:HH00::/56 => 91.224.149.DDD fe80::81:HH PI tetaneutral.net
2a01:6600:8082:HH00::/56 => 80.67.182.DDD fe80::82:HH PA gitoyen
2a01:6600:8083:HH00::/56 => 89.234.156.DDD fe80::83:HH PA opdop
2a01:6600:8084:HH00::/56 => 89.234.157.DDD fe80::84:HH PA opdop
2a01:6600:8085:HH00::/56 => 185.119.168.DDD fe80::85:HH PA tetaneutral.net
2a01:6600:8085:HH00::/56 => 185.119.169.DDD fe80::86:HH PA tetaneutral.net
2a01:6600:8085:HH00::/56 => 185.119.170.DDD fe80::87:HH PA tetaneutral.net
2a01:6600:8085:HH00::/56 => 185.119.171.DDD fe80::88:HH PA tetaneutral.net

PA 2a03:7220::/32 LIR tetaneutral.net
2a03:7220:8080:HH00::/56 => 91.224.148.DDD fe80::80:HH
...
</pre>

h2. Migration

<pre>
91.224.149.DDD/24 gw 91.224.149.254
=>
91.224.149.DDD/32 gw 91.224.148.0 onlink
</pre>

Sur VM

<pre>
# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet6 static
pre-up /sbin/sysctl -w net.ipv6.conf.eth0.accept_ra=0
pre-up /sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0
up ip addr add fe80::YY:XX/64 dev eth0
address 2a01:6600:80YY:XX00::1
netmask 56
gateway fe80::31

iface eth0 inet manual
up ip link set eth0 up
down ip link set eth0 down
pre-up /sbin/sysctl -w net.ipv6.conf.eth0.accept_ra=0
pre-up /sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0
up ip addr add 91.224.148.DDD/32 dev eth0
up ip route add 91.224.148.0/32 dev eth0
up ip route add default via 91.224.148.0
down ip route flush dev eth0
down ip addr flush dev eth0
</pre>

h2. Configuration openstack/bird

openstack ttnn route update <VM_NAME>

VM ipv6 only DNS 2a01:6600:8081:ffff:: et 2a01:6600:8081:ffff::2

h2. Courriel

https://lists.tetaneutral.net/pipermail/technique/2016-February/002208.html
https://lists.tetaneutral.net/pipermail/technique/2016-March/002215.html

<pre>
Sujet : Migration adressage IPv6 et changement de routage IPv4 de 91.224.149.DDD

Bonjour

Pour la partie adressage IPv6 maintenant que tetaneutral.net a sa plage
IPv6 LIR 2a03:7220::/32 il est temps de migrer et rendre la plage
IPv6 historique 2a01:6600:8000::/40 à Fullsave.

Pour simplifier la migration nous avons juste substitué les 32
premiers bits du préfixe sans autre changement :

2a01:6600 => 2a03:7220

Les deux plages IPv6 sont actuellement routées en même temps, si vous
avez un hébergement à tetaneutral.net il vous faut donc :

1/ Ajouter l'adresse 2a03:7220:xxx en plus de votre 2a01:6600:xxx
par exemple sous debian votre /etc/network/interfaces doit ressembler à :

iface eth0 inet6 static
pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra
pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf
address 2a03:7220:808X:YZ00::1
netmask 56
gateway fe80::31
up ip -6 addr add fe80::8X:YZ/64 dev $IFACE
up ip -6 addr add 2a01:6600:808X:YZ00::1/56 dev $IFACE preferred_lft 0 # Legacy a enlever des que DNS ok

Au passage un petit détail vous pouvez ajouter dans /etc/resolv.conf
ou via dns-nameservers les IPv6 des resolveurs récursifs :

nameserver 2a03:7220:8081:fe00::1
nameserver 2a03:7220:8080:0a00::1

Et rappel en IPv4 les résolveurs sont :

nameserver 91.224.149.254
nameserver 91.224.148.10

2/ Migrer vos DNS forward AAAA toto.chezmoi.net de 2a01:6600:xxx vers 2a03:7220:xxx

3/ Si vous gérez vos reverse DNS il faut créer une nouvelle zone reverse 2a03:7220:xxx
identique à celle 2a01:6600:xxx. La délégation de cette nouvelle zone à été faite vers
les mêmes serveurs que pour l'ancienne.

4/ Une fois la propagation DNS terminée vous pouvez enlever 2a01:6600:xxx de vos
AAAA et enlever la zone reverse 2a01:6600:xxx

Pour les VM nous allons faire l'étape 1 automatiquement (ce qui implique un reboot),
restera 2 à 4 à faire à votre charge

Pour les accès internet nous allons mettre à jour votre routeur OpenWRT à distance
quand nous y avons accès.

Nous visons au plus tard dimanche 20 mars 2016 soit dans un peu moins d'un mois
pour la suppression de l'ancienne plage 2a01:6600:8000::/40
et son retour à Fullsave, ce qui laisse un mois pour
faire la migration IPv6.

Coté routage en IPv4 nous allons profiter de cette migration pour passer
les IP actuellement en 91.224.149.DDD/24 avec gateway 91.224.149.254
à un routage "/32" avec 91.224.149.DDD/32 et gateway 91.224.148.0 "onlink"
comme pour le reste des IPv4 tetaneutral.net

iface eth0 inet manual
up ip link set eth0 up
up ip addr add 91.224.149.DDD/32 dev eth0
up ip route add default via 91.224.148.0 dev eth0 onlink

Nous allons faire automatiquement pour les VMs et OpenWRT ou nous
avons accès, il restera à faire par les adhérent-e-s la où nous
n'avons pas accès et sur les machines en hébergement

Nous allons démarrer les travaux tôt le matin du lundi 29 février 2016
</pre>

h2. Questions

h3. Attention aux fichiers de configuration reseau

https://lists.tetaneutral.net/pipermail/technique/2016-March/002217.html

h3. Gmail

Attention, gmail risque de refuser vos mails en vous criant dessus si vous
envoyez des mails depuis vos VM après ce changement, tant que les étapes
suivantes ne sont pas faites :

https://support.google.com/mail/answer/81126?p=ipv6_authentication_error&rd=1#authentication

(Ok, plus une remarque qu'une question :) )

h3. Sans reboot

* Je veux eviter un reboot ou le risqué /etc/init.d/network restart comment faire ?

=> Comme suit :
<pre>
ip addr add 2a03:7220:80YY:XX00::1/56 dev eth0
ip addr add fe80::8X:YZ/64 dev eth0 # si pas deja present
ip addr del 2a01:6600:80YY:XX00::1/56 dev eth0
</pre>

h3. Interfaces

* Je veux etre bien sur d'avoir compris comment modifier mon /etc/network/interfaces :
<pre>
AVANT
-----
iface eth0 inet static
address 91.224.149.40
netmask 255.255.255.0
network 91.224.149.0
broadcast 91.224.149.255
gateway 91.224.149.254
dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 91.224.149.254

APRES? (changement de routage)
------------------------------
iface eth0 inet manual
up ip link set eth0 up
up ip addr add 91.224.149.40/32 dev eth0
up ip route add default via 91.224.148.0 dev eth0 onlink
dns-nameservers 91.224.149.254 91.224.148.10
</pre>

=> Oui c'est bon :)

h3. pre-up ou up

* équivalence des commandes pre-up

pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra
pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf
et
pre-up /sbin/sysctl -w net.ipv6.conf.eth0.accept_ra=0
pre-up /sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0

semblent équivalent, y a t'il un avantage à en utiliser une forme plutot que l'autre ?

=> c'est identique, on peut aussi les mettre dans sysctl.conf suivant le systeme
=> au passage $IFACE est un peu plus generique que eth0 sinon

h3. pfsense

* Et si je suis avec un frontal pfSense devant mes VMs, je fais comment pour IPv4? (Yannick)

=> Je réponds à ma question, car cette histoire m'a bien pris le choux. (Yannick)
Vous avez des explications dans le lien qui suit.
http://blog.magiksys.net/pfsense-firewall-default-gateway-different-subnet

Mais en gros, ça se configure via le shell de la console pfSense, en utilisant une partie des commandes qui ont été citées plus haut.
Pas vu par contre d'option "onlink", si quelqu'un pouvait m'éclairer sur le sujet...

EN PREMIER LIEU, IL FAUT EFFACER TOUTES SES ROUTES PAR DEFAUT

Il faut figer son interface WAN en shell: (option 8)

<pre>
ifconfig em0 91.224.XXX.YYY 255.255.255.255 (remplacer em0 par son nom d'interface WAN)
</pre>

Il faut ensuite ajouter le chemin d'accès à la GW, car avec une @IP en /32, la GW est "unreachable":

<pre>
route add -net 91.224.148.0/32 -iface em0 (remplacer em0 par son nom d'interface WAN)
</pre>

Il faut enfin définir sa GW par défaut:

<pre>
route add default 91.224.148.0
</pre>

NE PLUS MODIFIER LES PARAMETRES RESEAUX DE L'INTERFACE WAN PAR LA CONSOLE OU LA WEB-UI (uniquement en shell)

Si vous aller dans la web UI puis dans "diagnostique>routage", vous devriez voir votre oeuvre.

h3. OpenBSD

_if_ représente le nom de l'interface à configurer.



h4. 5.8 et 5.7

dans /etc/hostname.if :
<pre>
inet 91.224.149.DDD 255.255.255.255 NONE
! route add 91.224.148.0/32 -link -iface if
</pre>

dans /etc/mygate :
<pre>
91.224.148.0
</pre>

commandes pour modifier la config sans reboot (à faire en local ou connecté via IPv6): :
<pre>
# route delete default
# route
add 91.224.148.0/32 -link -iface if
# route add default 91.224.148.0
# ifconfig if inet 91.224.149.DDD/32
# route delete default 91.224.149.254

</pre>

h4. -current et 5.9

La commande *arp* ci-dessous avec l'adresse MAC explicite du routeur est nécessaire à cause d'un bug du noyau qui ne fait plus la différence entre une route en /32 et une entrée ARP et l'expire donc en l'absence de trafic au bout d'un timeout de 20mn. Ça donne pour /etc/hostname.if:

<pre>
inet 91.224.149.DDD/32
!route add 91.224.148.0/32 -link -iface if
!route add default 91.224.148.0
!arp -F -s 91.224.148.0 bc:5f:f4:ee:0c:88 permanent
</pre>
et supprimer l'adresse IPv4 de /etc/mygate

Avec ce patch :
http://marc.info/?l=openbsd-tech&m=145658298115360&w=2

on peut utiliser l'option -cloning comme le suggère Martin avec la config de 5.8. (Attention typo 92.224 à remplacer par 91.224)