Table des matières

Network - Mettre en place un réseau IPv6 avec des IPv6 "statiques" privées

A la maison, j'ai un réseau “classique” (ISP, Firewall, Vlans, etc…) s'il est facile de créer des sous-réseaux en IPv4 avec des IPs “privées” (172.16.0.0/12, 192.168.0.0/16, 10.0.0.0/8); ce n'est pas aussi simple en IPv6, car la notion même de NAT, n'est pas vraiment recommandée (et n'est pas toujours très bien supporté/implémenté par les vendeurs).

Cet article relate un peu mes recherches et mes trouvailles.

Un peu de contexte

Je dispose d'un Firewall pfSense qui gère à la fois la négociation “internet” avec mon ISP (recevoir les IPs et gérer les routes/règles). Il gère également Quelques VLANs : LAN, Servers, Guest, etc.

Mon ISP me fournis des IPs (une IPv4 et un préfixe IPv6) relativement stables, mais sans aucune garantie que celles-ci soient toujours les mêmes, je ne peux donc pas utiliser d'IPs “publiques”.

En terme réseau, j'ai donc une IP dynamique et un préfixe IPv6 dynamique (souvent référencé comme un GUA [Global Unicast Address]).

J'ai donc créé des VLANs séparés pour chaque usage, chacun sera gérer avec un subnet IPv4 et un subnet IPv6, il y aura une attention particulière pour le VLAN Servers.

Chaque VLAN aura une configuration très classique, un subnet IPv4 “privé” statique et un subnet IPv6 configuré en “Track Interface” pour diffuser ce GUA aux clients.

Seul le VLAN Servers aura une petite particularité en plus, un subnet ULA ((Unique Local Address) qui l'équivalent d'une IP fixe, mais accessible via PfSense, sans pour autant être routé vers internet.

IPv6 sur pfSense

Configuration de l'Interface "WAN"

L'interface WAN c'est la porte d'entrer/sortie de notre réseau, quelque soit sa complexité ou configuration, il faut IMPERATIVEMENT que cet interface fonctionne parfaitement

Tout commence par configurer son Interface WAN, cela dépends principalement de la configuration de son ISP, chez moi l'IPv4 est reçue via une negotiation PPPoE, et l'IPv6 par une configuration DHCP6.

MTU (Maximum Transmission Unit)

C'est la taille maximale (en octets) d’une trame IP qu’on peut transmettre sur une interface réseau, sans fragmentation, par défaut sur Ethernet, cette valeur est de 1500 octets (en réalité c'est 1518 octets, mais il faut retirer 14 octets pour l’en-tête Ethernet et 4 octets pour le CRC).

Le PPPoE ajoute un en-tête de 8 octets, donc le MTU maximum chute à 1492 (1500 - 8).

Il existe d'autres modes (Jumbo frame, MPLS, etc…) qui modifient cette valeur (parfois beaucoup), mais ces modes sont plutôt réservés aux professionnels et donc peu répandu dans le grand public.

On va donc faire un setup classique IPv4 privé statique, et une IPv6 “Track Interface” avec l'interface WAN en référence et un préfixe ID unique (au PfSense) pour chaque interface où l'on veut ajouter de l'IPv6 “internet”.

MSS (Maximum Segment Size)

C'est la taille maximale du segment de données TCP utile (payload) qu’un hôte accepte dans une connexion TCP.

Calcul :

IP Header TCP Header
Minimum Maximum Minimum Maximum
IPv4 20 60 20 60
IPv6 40 40

en prenant en compte les valeurs ci-dessus et notre MTU de 1492, nous avons:

IPv4, avec headers au minimum:

MTU [1492] - (IP+TCP) [20+20] =