Route ipv6 et forward

Bonjour,

Je suis en train de me monter un routeur pour mon LAN.

La passerelle par défaut pour sortir sur internet est 2001:db8:c9ea:aaaa:aaaa:aaaa:aaaa:aaa1/64

J’ai installé un pc avec deux interfaces eth0 vers la passerelle et eth1 vers mon lan
eth0 2001:db8:c9ea:aaaa:aaaa:aaaa:aaaa:1111/64
eth1 2001:db8:c9ea:aaaa:aaaa:aaaa:aaaa:2222/64

J’utilise RADVD pour configurer les postes de mon lan au travers de eth1, cela fonctionne.

Je pingue bien la passerelle 2001:db8:c9ea:aaaa:aaaa:aaaa:aaaa:aaa1 depuis mon pc routeur.
Le problème est que je n’arrive pas à pinguer une machine du lan depuis mon pc routeur, la requête ping essaye de passer par eth0 au lieu de eth1
Je ne pingue pas non plus l’interface eth1 depuis mon pc du lan !

Le forward ipv6 est bien activé sur sysctl.

Plusieurs erreurs :

  • La notation d’une adresse de passerelle n’a pas à être accompagnée d’une longueur de préfixe. C’est 2001:db8:c9ea:aaaa:aaaa:aaaa:aaaa:aaa1 tout court.
  • Le préfixe 2001:db8::/32 est réservé aux exemples et à la documentation, il ne doit pas être utilisé en condition opérationnelle. Accessoirement, quel est l’intérêt d’avoir autant de “a” ? Des “0” à la place permettrait d’avoir des adresses en notation réduite beaucoup plus courtes.
  • Les deux adresses configurées sur eth1 et eth2 sont dans le même préfixe 2001:db8:c9ea:aaaa::/64. C’est une erreur de configuration basique. En clair tu dis : cette destination est accessible par eth0 et par eth1. Mais le routage du noyau choisira toujours la même route et pas l’autre. Il ne va pas chercher si telle adresse du préfixe est sur eth0 ou sur eth1. Tu dois définir un préfixe /64 différent sur eth1 pour ton LAN. Et bien sûr la passerelle doit avoir une route lui disant que le préfixe de ton LAN est accessible via ton routeur.

Normal, il s’agit d’un test donc j’utilise celui-là pour le moment… Peut importe l’adresse dans mon lab.

Le prefixe est automatiquement envoyé sur l’interface eth0. Comment faire pour l’utiliser sur eth1 (donc le lan) sans forcément faire un pont ?

Oui mais non. Exemples et documentation, cela n’inclut pas les tests. Il y a d’autres plages pour cela. Par exemple tu peux te créer un préfixe local ULA.

Ce n’est pas possible. Le routage, c’est fait pour router entre des réseaux différents. Tu ne peux pas avoir le même réseau des deux côtés d’un routeur. (Non, je ne veux pas parler de proxy ND)

Autre détail important : si je comprends bien eth0 reçoit son adresse en autoconf par RA, or sache que l’activation du forwarding IPv6 désactive l’autoconf sur toutes les interfaces réseau de la machine. Tu devras donc passer eth0 en configuration statique.

Ok sans proxy ndp comment faire pour que la passerelle par défaut (2001:db8:c9ea:aaaa:aaaa:aaaa:aaaa:aaa1/64) soit joignable depuis par exemple le réseau 2001:db8:c9ea:1:bbbb:bbbb:bbbb:bbbb/64

En gros voici le schéma :

Sur le routeur internet/passerelle par défaut, il faut ajouter une route vers le préfixe du LAN 2001:db8:c9ea:1::/64 via la passerelle 2001:db8:c9ea:aaaa:aaaa:aaaa:aaaa:aaa2 (l’adresse du PC routeur dans le réseau du routeur internet).

PS : 2001:db8:c9ea:1::/64 est bien le préfixe du LAN et pas l’adresse attribuée au PC routeur côté LAN ? L’adresse 2001:db8:c9ea:1:: est réservée car elle a une signification particulière : c’est une adresse dite “anycast” à laquelle est censé répondre tout routeur connecté directement au préfixe 2001:db8:c9ea:1::/64. On peut la comparer avec l’adresse de réseau en IPv4 qui est réservée, bien que le rôle soit différent. L’interface de la machine doit avoir une adresse différente dans le préfixe, par exemple 2001:db8:c9ea:1::1.

(erratum)

Sauf erreur, c’est ce que seb a fait dans son dernier message : 2001:db8:c9ea:aaaa::/64 et 2001:db8:c9ea:1::/64.

[quote=“PascalHambourg”]Sur le routeur internet/passerelle par défaut, il faut ajouter une route vers le préfixe du LAN 2001:db8:c9ea:1::/64 via la passerelle 2001:db8:c9ea:aaaa:aaaa:aaaa:aaaa:aaa2 (l’adresse du PC routeur dans le réseau du routeur internet).
[/quote]

Donc quelque chose comme ça :

ip -6 route add 2001:db8:c9ea:1::/64 via 2001:db8:c9ea:aaaa:aaaa:aaaa:aaaa:aaa2

[quote=“PascalHambourg”]
PS : 2001:db8:c9ea:1::/64 est bien le préfixe du LAN et pas l’adresse attribuée au PC routeur côté LAN ?[/quote]

Oui il s’agit du préfixe annoncé par RADVD sur le lan, donc un client derrière le PC routeur aura comme adresse 2001:db8:c9ea:1:xxxx:xxxx:xxxx:xxxxx

Oui, si le routeur internet est aussi une machine Linux.