TUTO - IPv6 : Proxmox + PfSense
... / TUTO - IPv6 : Proxmox + P...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
question

TUTO - IPv6 : Proxmox + PfSense

Par
Lythom
Créé le 2022-09-19 07:24:26 (edited on 2024-09-04 11:59:26) dans Serveurs dédiés

Bonjour à tous,

Concernant la possibilité d’utiliser l’IPv6 fournie par OVH sur une infrastructure virtualisée Proxmox + Pfsense, je vous fais part de ma solution (cela servira certainement !). J’ai épluché tous les tutoriels et explications variées sur divers sites (Anglais, Allemand, …), mais la plupart sont anciens ou complètement indigestes (peut-être que celui-là le sera aussi ^^). Cette solution fonctionne sur un serveur baremetal OVH (RISE), certainement qu’elle fonctionnera sur les autres serveurs (Kimsufi, SYS, …).
Partons du principe que vous avez une configuration Proxmox + VM PfSense parfaitement fonctionnelle en IPv4. Le Proxmox possède 2 interfaces ou plus (selon vos besoins), (1 WAN => vmbr0 bridgé sur interface publique , 1 LAN => vmbr1 sur laquelle les autres VM seront connectés).
Sur la VM PfSense l’interface WAN est configurée avec une IPv4 Failover disposant d’une MAC virtuelle (générée dans le Manager OVH). Possibilité ensuite d’ajouter d’autres IPv4 (en IP alias)… Il est pour le moment obligatoire d’avoir une IPv4 FO avec une MAC virtuelle de configurée, pour utiliser IPv6 en virtualisation !

**• Pour la partie IPv6 :**

OVH fournie une IPv6 de la forme 2001:db8:534:d5a4::/64 et comme gateway 2001:db8:534:d5ff:00ff:00ff:00ff:00ff
Nous allons ensuite diviser notre réseau IPv6 en sous-bloc de /80 (pour éviter une erreur d’overlap de réseau dans PfSense).

- Pour notre Proxmox : 2001:db8:534:d5a4:1000::1/80
- Pour le WAN de la VM Pfsense : 2001:db8:534:d5a4:1000::2/80
- Pour le LAN de la VM PfSense : 2001:db8:534:d5a4:2000::1/80

**Proxmox :**
Configurer l’IPv6 sur l’interface publique Proxmox et ajouter nos futures routes qui communiqueront avec le LAN de la VM PfSense en passant par l’IPv6 du WAN de la VM PfSense (via GUI, ou dans /etc/network/interfaces) :
iface vmbr0 inet6 static
address 2001:db8:534:d5a4:1000::1/80
gateway 2001:db8:534:d5ff:00ff:00ff:00ff:00ff
post-up ip -6 route add 2001:db8:534:d5a4:2000::/80 via 2001:db8:534:d5a4:1000::2
post-down ip -6 route del 2001:db8:534:d5a4:2000::/80 via 2001:db8:534:d5a4:1000::2

Tester un ping IPv6 depuis Proxmox : ping -6 google.fr, si OK on continue.
Toujours sous Proxmox, modifier sysctl.conf et ajouter les lignes suivantes (pour autoriser le forwad ipv6 entre la patte WAN du PfSense et Proxmox) :
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1

Appliquer les changement sysctl -p.

Il est également nécessaire d’utiliser un proxy NDP (vraiment pas le choix !). Nous allons utiliser le paquet ndppd permettant de déclarer des réseaux et sous-réseau entiers, plutôt que de déclarer un à un les IP des VM à « proxyfier » et éviter d'utiliser les commandes _"ip -6 neigh add proxy xxxx:: dev vmbr0"_...
=> apt-get install ndppd

Créer un fichier de configuration /etc/ndppd.conf et ajouter les lignes suivantes (pour déclarer les 2 sous-réseaux /80, les IPv6 des VM seront ensuite automatiquement ajoutées aux tables NDP) :
proxy vmbr0 {

# sous-réseau 1
rule 2001:db8:534:d5a4:1000::/80 {
static
}

# sous-réseau 2
rule 2001:db8:534:d5a4:2000::/80 {
static
}

}

Appliquer les changements : systemctl restart rdppd

La configuration Proxmox est terminée passons à la VM Pfsense.

**PfSense (GUI ):**

Configurer l’interface WAN avec l’IPv6 2001:db8:534:d5a4:1000::2/80. Dans Routing, ajouter la passerelle qui sera l’IPv6 de notre Proxmox 2001:db8:534:d5a4:1000::1/80 (ET NON la passerelle fournie par OVH !).
Configurer l’interface LAN avec l’IPv6 2001:db8:534:d5a4:2000::1/80.

Tester le ping (Ex : Dans Diagnostics / Ping => google.fr / IP Porotocol : IPv6 / Source address : WAN / LAN => tester les deux interface).
PING6(56=40+8+8 bytes) 2001:db8:534:d5a4:1000::2--> 2a00:1450:4007:810::2003
16 bytes from 2a00:1450:4007:810::2003, icmp_seq=0 hlim=114 time=5.191 ms
16 bytes from 2a00:1450:4007:810::2003, icmp_seq=1 hlim=114 time=5.164 ms
16 bytes from 2a00:1450:4007:810::2003, icmp_seq=2 hlim=114 time=5.138 ms

--- google.fr ping6 statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 5.138/5.164/5.191/0.022 ms

Résultat OK. La PfSense peut communiquer en IPv6 via le WAN et le LAN. Vous pouvez normalement attribuer une IPV6 à une autre VM connectée sur le LAN :
Ex : VM1 (IPv6 : 2001:db8:534:d5a4:2000::cafe/80 et comme passerelle 2001:db8:534:d5a4:2000::1 => l’IPV6 de la patte LAN de la VM PfSense). Plus besoin d’avoir une 1 IP FO MAC + IPv6. Pas besoin d’attribuer une IPv4 FO OVH ! Seule l’IPV4 FO de la VM PfSense suffit : économies futures !.

A vous ensuite de configurer les règles de pare-feu...mais ça normalement vous devez savoir le faire ! :-)

J’espère que cela vous servira, et n’hésitez pas à faire un retour !


2 réponses ( Latest reply on 2023-08-02 06:27:54 Par
PascalB88
)

Bonjour
Je suis dans le même cas que vous mais a une différence près c'est que j'ai pas de superviseur de virtualisation de type promox en tete. Mon pfsense est directement installer sur la machine physique d'ovh.
J'ai appliquer votre tutoriel mais il m'est impossible de pinger google.fr par ex.
ma config :
wan ipv6 fixe 2001:41d0:303:f18d:1000::2/80 passerelle 2001:41d0:0303:f1ff:00ff:00ff:00ff:00ff (celle d'ovh)
lan ipv6 fixe 2001:41d0:303:f18d:2000::1 /80
je pense que le réglage qui coince c'est concernant la gateway mais je ne sais pas comment la résoudre .
pourquoi n'avez vous pas directement configurer la passerelle d'ovh dans pfsense pour le wan?

Avez vous une idée de quelle option /reglages il faudrait mettre dans pfsense afin de faire marcher l'ipv6 directement dans un pfsense installer sur un serveur physique .

Merci pour votre aide .

Bonjour,

merci de ce tuto qui fonctionne parfaitement.
Juste faire attention pour les novices car il y a une petite erreur de frappe dans ta phrase suivante


Appliquer les changements : systemctl restart rdppd <=======


Le service est ndppd et non pas rdppd ;)

Thks !

Les réponses sont actuellement désactivées pour cette question.