Projet

Général

Profil

Routage

Configuration

Coté Adhérent-e :

# 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...

Et coté routeur :

# 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

Adressage

PA 2a03:7220::/32 LIR tetaneutral.net
2a03:7220:8080:HH00::/56 => 91.224.148.DDD  fe80::80:HH PI tetaneutral.net
2a03:7220:8081:HH00::/56 => 91.224.149.DDD  fe80::81:HH PI tetaneutral.net
2a03:7220:8082:HH00::/56 => 80.67.182.DDD   fe80::82:HH PA gitoyen # rendu à gitoyen
2a03:7220:8083:HH00::/56 => 89.234.156.DDD  fe80::83:HH PA opdop
2a03:7220:8084:HH00::/56 => 89.234.157.DDD  fe80::84:HH PA opdop
2a03:7220:8085:HH00::/56 => 185.119.168.DDD fe80::85:HH PA tetaneutral.net
2a03:7220:8085:HH00::/56 => 185.119.169.DDD fe80::86:HH PA tetaneutral.net
2a03:7220:8085:HH00::/56 => 185.119.170.DDD fe80::87:HH PA tetaneutral.net
2a03:7220:8085:HH00::/56 => 185.119.171.DDD fe80::88:HH PA tetaneutral.net

2a03:7220:8080:HH00::/56 => 91.224.148.DDD fe80::80:HH
...

Migration

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

Sur VM

# 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 2a03:7220: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

É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

Configuration openstack/bird

openstack ttnn route update <VM_NAME>

Courriel

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

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

Questions

Attention aux fichiers de configuration reseau

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

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 :) )

Sans reboot

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

=> Comme suit :

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

Interfaces

  • Je veux etre bien sur d'avoir compris comment modifier mon /etc/network/interfaces :
    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
    

=> Oui c'est bon :)

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

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... Trouvé, c'est l'option "-link" à rajouter. Pour spécifier que c'est directement accessible via l'interface configurée.

EN PREMIER LIEU, IL FAUT EFFACER TOUTES SES ROUTES PAR DEFAUT (en shell, option 8)

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

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

route del default

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

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

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

route add default 91.224.148.0

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.

OpenBSD

<if> représente le nom de l'interface à configurer.

commandes pour modifier la config sans reboot (à faire en local ou connecté via IPv6):

# 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

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>:

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 90:e2:ba:20:b7:5c permanent

et supprimer l'adresse IPv4 de /etc/mygate

Avec ce patch (commité dans -current le 7/3/2016): http://marc.info/?l=openbsd-tech&m=145701234317330&w=2

on peut utiliser la config de 6.0.

6.0 et suivantes

Plus de bug, il suffit d'ajouter la route explicite (/32) vers le routeur dans /etc/hostname.<if>:

inet 91.224.149.DDD 255.255.255.255 NONE
! route add 91.224.148.0/32 -link -iface <if>

dans /etc/mygate :

91.224.148.0

CentOS/RHEL

Modif IPv4 :

Dans : /etc/sysconfig/network-scripts/ifcfg-eth0

NETMASK=255.255.255.255
IPADDR=91.224.149.XXX

Dans : /etc/sysconfig/network-scripts/route-eth0

default via 91.224.148.0 dev eth0 onlink

Windows (on ne sait jamais :-D)

route -p add GATEWAY mask 255.255.255.255 0.0.0.0 if INTERFACENUMBER
route -p add 0.0.0.0 mask 0.0.0.0 GATEWAY