Je ne parviens pas à configurer la route par défaut à l'aide de netplan
sur un système Ubuntu 18.04.2. La route fonctionne lorsqu'elle est explicite ip -6 route add ...
des commandes sont émises.
Les extensions de confidentialité ont été désactivées: /etc/sysctl.d/10-ipv6-privacy.conf
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.ens192.use_tempaddr = 0
SLACC et RA ont été désactivés, le transfert IPv4/IPv6 en est un (la machine sert de serveur OpenVPN)
/etc/sysctl.d/10-ipv6-router.conf
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.all.proxy_ndp = 1
/etc/sysctl.conf
net.ipv4.ip_forward=1
...
net.ipv6.conf.all.forwarding=1
/etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens18:
dhcp4: no
addresses:
- a.b.c.d/24
gateway4: a.b.c.e
dhcp6: no
accept-ra: no
addresses:
- "2001:0db8:0004:4a1a::dead:beef/64"
gateway6: "2001:0db8:0004::0001"
ens19:
dhcp6: no
accept-ra: no
addresses:
- "2001:0db8:0004:4a1a::dead:dead/64"
gateway6: "2001:0db8:0004::0001"
Cela affecte les adresses à l'interface comme indiqué ci-dessous:
$ ip -6 addr show
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2001:0db8:0004:4a1a::dead:beef/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::abcd:efff:fea3:2a03/64 scope link
valid_lft forever preferred_lft forever
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
inet6 2001:0db8:0004:4a1a::dead:dead/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::defc:deff:fe98:7c74/64 scope link
valid_lft forever preferred_lft forever
Les itinéraires utilisant ip -6 route show
2001:0db8:0004:4a1a::/64 dev ens19 proto kernel metric 256 pref medium
2001:0db8:0004:4a1a::/64 dev ens18 proto kernel metric 256 pref medium
fe80::/64 dev ens19 proto kernel metric 256 pref medium
fe80::/64 dev ens18 proto kernel metric 256 pref medium
Il n'y a aucun itinéraire par défaut configuré et le ping des sites externes ne fonctionne PAS:
$ ping -6 -c3 ipv6.google.com
connect: Network is unreachable
Exécution des deux commandes suivantes:
$ Sudo ip -6 route add 2001:0db8:0004::0001 dev ens18 metric 1
$ Sudo ip -6 route add default via 2001:0db8:0004::0001 dev ens18 metric 1
En cours d'exécution ip -6 route
montre:
2001:0db8:4::1 dev ens18 metric 1 pref medium
2001:0db8:4:4a1a::/64 dev ens19 proto kernel metric 256 pref medium
2001:0db8:4:4a1a::/64 dev ens18 proto kernel metric 256 pref medium
fe80::/64 dev ens19 proto kernel metric 256 pref medium
fe80::/64 dev ens18 proto kernel metric 256 pref medium
default via 2001:0db8:4::1 dev ens18 metric 1 pref medium
Un itinéraire par défaut est maintenant configuré et le ping des sites externes fonctionne :
$ ping -6 -c3 ipv6.google.com
PING ipv6.google.com(ord38s18-in-x0e.1e100.net (2607:f8b0:4009:804::200e)) 56 data bytes
64 bytes from ord38s18-in-x0e.1e100.net (2607:f8b0:4009:804::200e): icmp_seq=1 ttl=56 time=23.2 ms
64 bytes from ord38s18-in-x0e.1e100.net (2607:f8b0:4009:804::200e): icmp_seq=2 ttl=56 time=23.2 ms
64 bytes from ord38s18-in-x0e.1e100.net (2607:f8b0:4009:804::200e): icmp_seq=3 ttl=56 time=23.2 ms
--- ipv6.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 23.274/23.283/23.293/0.176 ms
Alors, quel est le problème avec la configuration de netplan? Pourquoi les routes IPv6 par défaut ne sont-elles pas configurées?
Modifié après avoir apporté les modifications suggérées par @slangasek:
ethernets:
ens18:
...
dhcp6: no
accept-ra: no
addresses:
- "2001:0db8:0004:4a1a::dead:beef/64"
routes:
- to: "::/0"
via: "2001:0db8:0004::1"
metric: 1
on-link: true
Cependant, cela ne fonctionne pas . Je reçois des messages comme ens18: Could not set route: No route to Host
dans les journaux de journal.
D'après la réponse à https://askubuntu.com/a/101468 , j'ai ajouté l'itinéraire supplémentaire vers le routeur en utilisant scope: link
:
routes:
- to: "2001:0db8:0004::1/128"
via: "2001:0db8:0004::1"
metric: 1
scope: link
- to: "::/0"
via: "2001:0db8:0004::1"
metric: 1
on-link: true
Mais, ne fonctionne toujours pas !
Votre configuration montre que vous avez un réseau local de 2001: 0db8: 0004: 4a1a ::/64 mais vous essayez de configurer une passerelle de 2001: 0db8: 0004 :: 0001 qui ne fait pas partie de ce réseau. Ainsi, networkd refuse d'ajouter une route par défaut via un routeur vers lequel vous n'avez pas de route.
Votre configuration manuelle avec ip route
reflète également cela: vous ajoutez d'abord un itinéraire pour l'adresse du routeur, déclarez qu'il est connecté localement à votre Ethernet, puis définissez l'itinéraire par défaut.
Vous devez donc faire l'équivalent avec netplan, qui consiste à déclarer deux entrées dans les routes :, une qui est scope: link
et celui qui définit on-link: true
:
addresses:
- "2001:0db8:0004:4a1a::dead:dead/64"
routes:
- to: "2001:0db8:0004::0001/128"
scope: link
- to: "::/0"
via: "2001:0db8:0004::0001"
on-link: true