Pages : 1
#1 Le 21/11/2022, à 16:40
- diesel
[RÉSOLU] Routage ipv6
Bonsoir,
Je suis confronté à un problème réseau ipv6 que je ne réussis pas à résoudre.
Ma config est la suivante :
Une Box désservant un sous réseau (2a01:e95:4fc:8420::/64) sur lequel est connecté un routeur (Routeur 1) désservant un deuxième sous réseau (2a01:e95:4fc:8421::/64).
Sur ce sous-réseau, se trouvent un poste de travail (jean-marie) et un deuxième routeur (Routeur 2) désservant un troisième sous-réseau (2a01:e95:4fc:8422::/64) sur lequel se trouve un poste de travail (Debian).
La box est programmée pour router les deux sous-réseaux situés derrière les deux routeurs via l'adresse lien local du routeur 1 sur son sous-réseau.
Le routeur 1 distribue le préfixe du sous réseau qu'il gère et les adresses des DNS via radvd.
La configuration réseau du routeur 2 est réalisée avec systemd-networkd et, dans un premier temps, les fichiers de configuration de systemd-networkd (dans /etc/systemd/network) sont les suivants :
eth1.network
jean-marie@routeur2:/etc/systemd/network $ cat eth1.network
[Match]
Name=eth1
[Network]
Description=Interface vers le sous-réseau 1
DHCP=no
LLMNR=no
IPv6AcceptRA=yes
DefaultRouteOnDevice=no
MulticastDNS=yes
[IPv6AcceptRA]
UseDNS=yes
jean-marie@routeur2:/etc/systemd/network $
eth0.network
jean-marie@routeur2:/etc/systemd/network $ cat eth0.network
[Match]
Name=eth0
[Network]
Description=Interface vers le sous-réseau 2
DHCP=no
LLMNR=no
MulticastDNS=yes
IPv6AcceptRA=no
Address=2a01:e95:4fc:8422:2fd:7fff:fecc:cacb/64
DefaultRouteOnDevice=yes
IPv6SendRA=yes
[IPv6SendRA]
EmitDNS=yes
DNS=2001:910:800::12 2001:910:800::40
[IPv6Prefix]
Prefix=2a01:e95:4fc:8422::/64
OnLink=yes
jean-marie@routeur2:/etc/systemd/network $
L'état des différentes machines est le suivant :
Routeur1
jean-marie@routeur1:~$ ip -6 a s ; echo ; ip -6 r s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a01:e95:4fc:8421:56fd:2ff:fe54:2358/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 85888sec preferred_lft 13888sec
inet6 fe80::56fd:2ff:fe54:2358/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a01:e95:4fc:8420:16ef:20ff:fe45:dfdc/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86187sec preferred_lft 86187sec
inet6 fe80::16ef:20ff:fe45:dfdc/64 scope link
valid_lft forever preferred_lft forever
::1 dev lo proto kernel metric 256 pref medium
2a01:e95:4fc:8420::/64 dev eth1 proto ra metric 1024 expires 86186sec pref medium
2a01:e95:4fc:8421::/64 dev eth0 proto ra metric 1024 expires 85887sec pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::282:aaff:fe12:45cd dev eth1 proto ra metric 1024 expires 1586sec mtu 1500 pref medium
jean-marie@routeur1:~$
jean-marie
jean-marie@jean-marie:~$ ip -6 a s ; echo ; ip -6 r s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp25s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a01:e95:4fc:8421:1e45:66f1:bacd:9812/64 scope global dynamic noprefixroute
valid_lft 86299sec preferred_lft 14299sec
inet6 fe80::2f4:12:fcfd:5eba/64 scope link noprefixroute
valid_lft forever preferred_lft forever
::1 dev lo proto kernel metric 256 pref medium
2a01:e95:4fc:8421::/64 dev enp25s0 proto ra metric 100 pref medium
fe80::/64 dev enp25s0 proto kernel metric 100 pref medium
default via fe80::56fd:2ff:fe54:2358 dev enp25s0 proto ra metric 100 pref medium
jean-marie@jean-marie:~$
routeur2
jean-marie@routeur2:~ $ ip -6 a s ; echo ; ip -6 r s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a01:e95:4fc:8422:2fd:7fff:fecc:cacb/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::2fd:7fff:fecc:cacb/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a01:e95:4fc:8421:2ac:6ff:feba:5542/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86363sec preferred_lft 14363sec
inet6 fe80::2ac:6ff:feba:5542/64 scope link
valid_lft forever preferred_lft forever
::1 dev lo proto kernel metric 256 pref medium
2a01:e0a:4c5:5d21::/64 dev eth1 proto ra metric 1024 expires 86362sec pref medium
2a01:e0a:4c5:5d22::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::56fd:2ff:fe54:2358 dev eth1 proto ra metric 1024 expires 1762sec mtu 1452 pref medium
jean-marie@routeur2:~ $
debian
jean-marie@debian:~$ ip -6 a s ; echo ; ip -6 r s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a01:e95:4fc:8422:1e88:1c7e:3efb:eaee/64 scope global temporary dynamic
valid_lft 604732sec preferred_lft 86186sec
inet6 2a01:e95:4fc:8422:221:f1ff:fe1f:432a/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 2591964sec preferred_lft 604764sec
inet6 fe80::221:f1ff:fe1f:432a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
::1 dev lo proto kernel metric 256 pref medium
2a01:e0a:4c5:5d22::/64 dev ens5 proto ra metric 100 pref medium
fe80::/64 dev ens5 proto kernel metric 100 pref medium
default via fe80::2fd:7fff:fecc:cacb dev ens5 proto ra metric 100 pref medium
jean-marie@debian:~$
Dans cette configuration, tout va bien, sauf que la route vers le sous-réseau 2 n'est pas annoncée sur le sous-réseau 1, mais c'est normal puisque je n'ai pas dit au routeur2 d'annoncer cette route sur le sous-réseau 1.
Eh bien, justement, si je dis au routeur2 d'annoncer sur le sous-réseau 1 la route vers le sous-réseau 2. Le fichier de configuration de l'interface eth1 du routeur 2 devient :
jean-marie@routeur2:/etc/systemd/network $ cat eth1.network
[Match]
Name=eth1
[Network]
Description=Interface vers le réseau internet
DHCP=no
LLMNR=no
IPv6AcceptRA=yes
DefaultRouteOnDevice=no
MulticastDNS=yes
IPv6SendRA=yes
[IPv6RoutePrefix]
Route=2a01:e95:4fc:8422::/64
LifetimeSec=604800
[IPv6AcceptRA]
UseDNS=yes
jean-marie@routeur2:/etc/systemd/network $
et l'état des machines sur le sous réseau 1 devient :
Jean-Marie
jean-marie@jean-marie:~$ ip -6 a s ; echo ; ip -6 r s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp25s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a01:e95:4fc:8421:1e45:66f1:bacd:9812/64 scope global dynamic noprefixroute
valid_lft 86299sec preferred_lft 14299sec
inet6 fe80::2f4:12:fcfd:5eba/64 scope link noprefixroute
valid_lft forever preferred_lft forever
::1 dev lo proto kernel metric 256 pref medium
2a01:e95:4fc:8421::/64 dev enp25s0 proto ra metric 100 pref medium
2a01:e95:4fc:8422::/64 via fe80::2ac:6ff:feba:5542 dev enp25s0 proto ra metric 100 pref medium
fe80::/64 dev enp25s0 proto kernel metric 100 pref medium
default proto ra metric 100
nexthop via fe80::56fd:2ff:fe54:2358 dev enp25s0 weight 1
nexthop via fe80::2ac:6ff:feba:5542 dev enp25s0 weight 1 pref medium
jean-marie@jean-marie:~$
routeur1
jean-marie@routeur1:~$ ip -6 a s ; echo ; ip -6 r s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a01:e95:4fc:8421:56fd:2ff:fe54:2358/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 85888sec preferred_lft 13888sec
inet6 fe80::56fd:2ff:fe54:2358/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2a01:e95:4fc:8420:16ef:20ff:fe45:dfdc/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86187sec preferred_lft 86187sec
inet6 fe80::16ef:20ff:fe45:dfdc/64 scope link
valid_lft forever preferred_lft forever
::1 dev lo proto kernel metric 256 pref medium
2a01:e95:4fc:8420::/64 dev eth1 proto ra metric 1024 expires 86186sec pref medium
2a01:e95:4fc:8421::/64 dev eth0 proto ra metric 1024 expires 85887sec pref medium
2a01:e95:4fc:8422::/64 via fe80::2ac:6ff:feba:5542 dev eth0 proto ra metric 1024 expires 604694sec pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default proto ra metric 1024 expires 1341sec mtu 1500
nexthop via fe80::282:aaff:fe12:45cd dev eth1 weight 1
nexthop via fe80::2ac:6ff:feba:5542 dev eth0 weight 1 pref medium
jean-marie@routeur1:~$
Et là, c'est la cata.
Même si la route vers le sous-réseau 2 est bien annoncée, le routeur 1 et jean-marie se retrouvent avec l'adresse lien local de l'interface du routeur 2 sur le sous réseau 1 (fe80::2ac:6ff:feba:5542) comme route par défaut supplémentaire, ce qui met une pagaille considérable sur le sous-réseau 1.
Cela fait plusieurs jours que je cherche l'erreur sans la trouver. Je ne sais pas d'où vient cette route par défaut du routeur 2 (que je n'ai bien évidemment pas demandée) et quoi faire pour la supprimer.
Si quelqu'un a une idée, je lui en serai extrèmement reconnaissant.
Amicalement.
Jean-Marie
Dernière modification par diesel (Le 22/11/2022, à 17:37)
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#2 Le 22/11/2022, à 17:52
- diesel
Re : [RÉSOLU] Routage ipv6
Ça va, j'ai trouvé.
Une partie de la réponse se trouve dans cette discussion : https://networkengineering.stackexchang … ault-route (après "1 Answer").
Dans le man systemd.network, dans la section [IPv6SendRA], on trouve :
RouterLifetimeSec=
Takes a timespan. Configures the IPv6 router lifetime in seconds. The value must be 0 seconds, or between 4 seconds and 9000 seconds. When set to 0, the host is not acting as a router. Defaults to 1800 seconds (30 minutes)
Dans mon fichier /etc/systemd/network/eth1.network il a suffit d'ajouter les lignes :
[IPv6SendRA]
RouterLifetimeSec=0
et tout fonctionne parfaitement.
Cela dit, le man est quand-même très mal foutu parce que sa traduction est la suivante : "reçoit une durée. Configure la durée de vie du routeur ipv6 en secondes. La valeur doit être de 0 seconde ou entre 4 et 9 000 secondes. Fixée à 0, la machine n'est pas un routeur. La valeur par défaut est de 1 800 secondes (30 minutes)".
En fait par "routeur", il faut comprendre "routeur desservant la route par défaut", ce qui est quand même bien différent et pas évident au premier abord. Ou alors, la notion anglo-saxonne de "router" est différente de "routeur".
Enfin, le plus important (pour moi) est que ça fonctionne.
Amicalement.
Jean-Marie
Dernière modification par diesel (Le 22/11/2022, à 17:52)
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
Pages : 1