cerhu > linux.debian.user.french

BERTRAND Joël (04/09/2019, 08h10)
Bonjour à tous,

Un petit truc me chagrine dans la configuration d'IPv6 sur un serveur.
Ayant un fournisseur d'accès que je qualifierais d'"internet pour les
ploucs" (Wimax avec tous les ports fermés ou presque...), je suis
contraint d'utiliser un serveur dans un bureau distant comme broker IPv6
(et accès IPv4 entrant tant qu'à faire). Comme le FAI (celui d'internet
pour les ploucs) coupe autoritairement les ports mêmes utilisés, j'ai
bricolé un VPN sur deux ports avec du stp. Ça fonctionne. J'ai juste un
souci avec IPv6 au démarrage.

En effet, lors d'un redémarrage du serveur, tout fonctionne sauf le
routage IPv6 (comprendre : br0 a bien une adresse IPv6, mais la route
vers le sous réseau au bout de br0 n'est pas montée) :

ifconfig retourne :
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1336
inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::64b9:94ff:fe3b:1b5 prefixlen 64 scopeid 0x20<link>
inet6 2001:7a8:a8ed:1::1 prefixlen 64 scopeid 0x0<global>
ether 66:b9:94:3b:01:b5 txqueuelen 1000 (Ethernet)
RX packets 14018 bytes 1126600 (1.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14995 bytes 25922932 (24.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
....
tap1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1336
ether 9e:74:8c:46:30:19 txqueuelen 100 (Ethernet)
RX packets 14018 bytes 1322852 (1.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28464 bytes 26748756 (25.5 MiB)
TX errors 0 dropped 3 overruns 0 carrier 0 collisions 0

tap2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1336
ether 66:b9:94:3b:01:b5 txqueuelen 100 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4895 bytes 250208 (244.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Or, dans /etc/network/interface, j'ai bien :

auto br0
iface br0 inet static
bridge_stp on
mtu 1336
bridge_ports tap1 tap2
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
post-up /sbin/route add -net 192.168.10.0/24 gw 192.168.1.2
pre-down /sbin/route del -net 192.168.10.0/24

iface br0 inet6 static
address 2001:7a8:a8ed:1::1
netmask 64
post-up /sbin/route -A inet6 add 2001:7a8:a8ed:10::/64 gw
2001:7a8:a8ed:1::2
pre-down /sbin/route -A inet6 del 2001:7a8:a8ed:10::/64 gw
2001:7a8:a8ed:1::2

J'avoue que je ne comprends pas bien. Pourquoi br0 prend-elle la bonne
adresse IPv6 sans prendre la route associée ? Il suffit en effet que je
lance à la main :

/sbin/route -A inet6 add 2001:7a8:a8ed:10::/64 gw 2001:7a8:a8ed:1::2

pour que le routage IPv6 fonctionne à nouveau.

Le serveur est un Linux debian/testing, le client est un NetBSD (côté
NetBSD aucun problème de ce genre, le routage IPv6 est persistant).

Toute idée sera la bienvenue.

Bien cordialement,

JKB
Daniel Huhardeaux (04/09/2019, 09h50)
Le 04/09/2019 à 08:03, BERTRAND Joël a écrit :
[..]
> lance à la main :
> /sbin/route -A inet6 add 2001:7a8:a8ed:10::/64 gw 2001:7a8:a8ed:1::2
> pour que le routage IPv6 fonctionne à nouveau.
> Le serveur est un Linux debian/testing, le client est un NetBSD (côté
> NetBSD aucun problème de ce genre, le routage IPv6 est persistant).
> Toute idée sera la bienvenue.


Bonjour,

j'ai eu un problème au démarrage/sortie hibernation ou sysctl
n'appliquait pas les règles ipv6. Mon post-up dans interfaces lance un
sctipt dans if-up.d dans lequel entre autres j'active sysctl par "sysctl
-p 1>&2>/dev/null" J'adapte également la mtu à 1492 ayant également eu
des soucis sans cette adaptation.

Ubuntu 16.04 tout comme Debian 9
BERTRAND Joël (04/09/2019, 10h10)
Daniel Huhardeaux a écrit :
> Bonjour,
> j'ai eu un problème au démarrage/sortie hibernation ou sysctl
> n'appliquait pas les règles ipv6. Mon post-up dans interfaces lance un
> sctipt dans if-up.d dans lequel entre autres j'active sysctl par "sysctl
> -p 1>&2>/dev/null" J'adapte également la mtu à 1492 ayant également eu
> des soucis sans cette adaptation.


Je ne saisis pas bien la réponse. Dans mon cas, l'adresse IPv6 est bien
prise. Ce sont les scripts qui ne se lancent pas.

Sep 4 05:35:27 rayleigh avahi-daemon[1350]: Joining mDNS multicast
group on interface br0.IPv6 with address 2001:7a8:a8ed:1::1.
Sep 4 05:35:27 rayleigh avahi-daemon[1350]: New relevant interface
br0.IPv6 for mDNS.
Sep 4 05:35:27 rayleigh avahi-daemon[1350]: Registering new address
record for 2001:7a8:a8ed:1::1 on br0.*.
Sep 4 05:35:27 rayleigh systemd[1]: NetworkManager-dispatcher.service:
Succeeded.
Sep 4 05:35:33 rayleigh ifup[1368]: Waiting for DAD... Timed out
Sep 4 05:35:33 rayleigh ifup[1368]: ifup: failed to bring up br0
Sep 4 05:35:33 rayleigh systemd[1]: networking.service: Main process
exited, code=exited, status=1/FAILURE
Sep 4 05:35:33 rayleigh systemd[1]: networking.service: Failed with
result 'exit-code'.

Root rayleigh:[/var/log] > systemctl status networking.service
? networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled;
vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2019-09-04 05:35:33
CEST; 4h 29min ago
Docs: man:interfaces(5)
Process: 1368 ExecStart=/sbin/ifup -a --read-environment (code=exited,
status=1/FAILURE)
Main PID: 1368 (code=exited, status=1/FAILURE)

sept. 04 05:35:16 rayleigh ifup[1368]: Cannot find device "tap1"
sept. 04 05:35:16 rayleigh ifup[1368]: interface tap1 does not exist!
sept. 04 05:35:16 rayleigh ifup[1368]: Cannot find device "tap2"
sept. 04 05:35:16 rayleigh ifup[1368]: interface tap2 does not exist!
sept. 04 05:35:17 rayleigh ifup[1368]: Waiting for br0 to get ready
(MAXWAIT is 32 seconds).
sept. 04 05:35:33 rayleigh ifup[1368]: Waiting for DAD... Timed out
sept. 04 05:35:33 rayleigh ifup[1368]: ifup: failed to bring up br0
sept. 04 05:35:33 rayleigh systemd[1]: networking.service: Main process
exited, code=exited, status=1/FAILURE
sept. 04 05:35:33 rayleigh systemd[1]: networking.service: Failed with
result 'exit-code'.
sept. 04 05:35:33 rayleigh systemd[1]: Failed to start Raise network
interfaces.

tap1 et tap2 n'existent pas encore (il faut du temps pour qu'ils
montent). Mais visiblement, ce qui ne lui plaît pas, c'est "Waiting for
DAD... Timed out". Or je suis en adressage IPv6 _statique_. Je ne vois
pas trop ce que les paquets DAD viennnt faire ici.

JKB
Daniel Huhardeaux (04/09/2019, 10h40)
Le 04/09/2019 à 10:06, BERTRAND Joël a écrit :
> Daniel Huhardeaux a écrit :
> Je ne saisis pas bien la réponse. Dans mon cas, l'adresse IPv6 est bien
> prise. Ce sont les scripts qui ne se lancent pas.


Dans mon cas également l'adresse ipv6 était prise: c'est la gw par
défaut qui ne l'était pas. En lançant manuellement c'était tout bon,
comme toi.

Tu as bien

net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0

dans sysctl.conf ?
[..]
Pascal Hambourg (04/09/2019, 11h10)
Le 04/09/2019 à 10:06, BERTRAND Joël a écrit :
[..]
> interfaces.
> tap1 et tap2 n'existent pas encore (il faut du temps pour qu'ils
> montent).


Déjà, ça ce n'est pas terrible. A mon avis les ports ne devraient pas
être spécifiés s'ils n'existent pas à la création du pont.

> Mais visiblement, ce qui ne lui plaît pas, c'est "Waiting for
> DAD... Timed out". Or je suis en adressage IPv6 _statique_. Je ne vois
> pas trop ce que les paquets DAD viennnt faire ici.


Pourquoi la DAD ne s'appliquerait-elle pas en statique ?
Si le problème vient de la DAD tu peux essayer de la désactiver avec

dad-attemps 0
BERTRAND Joël (04/09/2019, 11h30)
Daniel Huhardeaux a écrit :
> Le 04/09/2019 à 10:06, BERTRAND Joël a écrit :
> Dans mon cas également l'adresse ipv6 était prise: c'est la gw par
> défaut qui ne l'était pas. En lançant manuellement c'était tout bon,
> comme toi.
> Tu as bien
> net.ipv6.conf.lo.disable_ipv6 = 0
> net.ipv6.conf.all.disable_ipv6 = 0
> net.ipv6.conf.default.disable_ipv6 = 0
> dans sysctl.conf ?


Root rayleigh:[~] > sysctl -a | grep ipv6 | grep disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.br0.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth1.disable_ipv6 = 0
net.ipv6.conf.eth2.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.tap0.disable_ipv6 = 0
net.ipv6.conf.tap1.disable_ipv6 = 1
net.ipv6.conf.tap2.disable_ipv6 = 1

Je me demande bien d'où proviennent les deux dernières lignes,
d'ailleurs...

JKB
BERTRAND Joël (04/09/2019, 11h30)
Pascal Hambourg a écrit :
> Le 04/09/2019 à 10:06, BERTRAND Joël a écrit :
> Déjà, ça ce n'est pas terrible. A mon avis les ports ne devraient pas
> être spécifiés s'ils n'existent pas à la création du pont.


Je sais que ce n'est pas terrible. Mais c'est la seule solution que
j'ai trouvé pour éviter les grosses grouilles en cas de démontage et
remontage de tap1 ou tap2. À l'autre bout, j'ai un FAI du type "internet
pour les ploucs" et j'ai bien essayé de faire avec les scripts openvpn
sans succès. Dans certains cas, je me retrouvais avec des routes en
double, bref, un truc pas fiable.

J'ai _aussi_ essayé de faire avec systemd, en lui demandant de ne créer
br0 que lorsque tap1 et tap2 étaient déjà là. Ça eut fonctionné avec une
version de systemd mais depuis une mise à jour vers une nouvelle version
plus mieux de la bouse systemd, ça ne fonctionne plus correctement.

>> Mais visiblement, ce qui ne lui plaît pas, c'est "Waiting for
>> DAD... Timed out". Or je suis en adressage IPv6 _statique_. Je ne vois
>> pas trop ce que les paquets DAD viennnt faire ici.

> Pourquoi la DAD ne s'appliquerait-elle pas en statique ?


Parce que je pense que je suis assez intelligent pour ne pas avoir
d'adresse dupliquée sur un sous réseau qui ne comporte que deux adresses
IPv6.

> Si le problème vient de la DAD tu peux essayer de la désactiver avec
>   dad-attemps 0


Directement dans le fichier interfaces ?

JKB
Pascal Hambourg (04/09/2019, 11h30)
Le 04/09/2019 à 11:26, BERTRAND Joël a écrit :
>> Si le problème vient de la DAD tu peux essayer de la désactiver avec
>>   dad-attemps 0

> Directement dans le fichier interfaces ?


Oui, dans la définition inet6 de br0. Cf. man interfaces.
Pascal Hambourg (04/09/2019, 11h30)
Le 04/09/2019 à 11:21, BERTRAND Joël a écrit :
[..]
> net.ipv6.conf.tap2.disable_ipv6 = 1
> Je me demande bien d'où proviennent les deux dernières lignes,
> d'ailleurs...


Peut-être du pontage, pour éviter que les interfaces membres d'un pont
se ramassent des adresses IPv6 (link local ou autoconf).
MAS Jean-Louis (06/09/2019, 14h40)
Le 04/09/2019 à 10:06, BERTRAND Joël a écrit :

> tap1 et tap2 n'existent pas encore (il faut du temps pour qu'ils
> montent). Mais visiblement, ce qui ne lui plaît pas, c'est "Waiting for
> DAD... Timed out". Or je suis en adressage IPv6 _statique_. Je ne vois
> pas trop ce que les paquets DAD viennnt faire ici.


J'ai un gag similaire tout récemment avec Debian 10 avec samba et leDAD
qui comme toi empêche le service de redémarrer.

Peut être est-ce lié à ce bug qui est réapparu :

[..]

Personnellement je l'ai solutionné en ajoutant une ligne dans l'unit
systemd du service

ExecStartPre=/bin/sleep 3.

La solution proposée par Pascal me parait beaucoup plus propre.

Néanmoins, je vois que je pourrais a la place désactiver le DADsur ces
serveurs spécifiquement avec la commande temporaire

echo 0 > /proc/sys/net/ipv6/conf/all/accept_dad

Ou avec une ligne dans un fichier de configuration sysctl.d

net.ipv6.conf.all.accept_dad=0

Sachant que comme toi je suis en IPv6 fixe et que l'autoconf et le ra
sont désactivés

Des objections ou des remarques ?

Cordialement
BERTRAND Joël (10/09/2019, 08h50)
MAS Jean-Louis a écrit :
> Le 04/09/2019 à 10:06, BERTRAND Joël a écrit :
> qui comme toi empêche le service de redémarrer.
> Peut être est-ce lié à ce bug qui est réapparu :
> [..]
> Personnellement je l'ai solutionné en ajoutant une ligne dans l'unit
> systemd du service
> ExecStartPre=/bin/sleep 3.


De quel service ?

> La solution proposée par Pascal me parait beaucoup plus propre.


Je viens de m'apercevoir qu'elle ne fonctionne malheureusement pas.

> Néanmoins, je vois que je pourrais a la place désactiver le DAD sur ces
> serveurs spécifiquement avec la commande temporaire
> echo 0 > /proc/sys/net/ipv6/conf/all/accept_dad
> Ou avec une ligne dans un fichier de configuration sysctl.d
> net.ipv6.conf.all.accept_dad=0


Je vais essayer de forcer cela sur br0.

> Sachant que comme toi je suis en IPv6 fixe et que l'autoconf et le ra
> sont désactivés
> Des objections ou des remarques ?


Pas encore, mais ce problème risque d'être rigolo à corriger...

JKB
MAS Jean-Louis (11/09/2019, 12h00)
Le 10/09/2019 à 08:40, BERTRAND Joël a écrit :

>> Personnellement je l'ai solutionné en ajoutant une ligne dans l'unit
>> systemd du service
>> ExecStartPre=/bin/sleep 3.


> De quel service ?


samba-ad-dc.service dans mon cas. Pour toi il semble que ce soit le même
service qui monte le bridge et qui vérifie le DAD, donc à la réflexion
le hack ci-dessus ne fonctionnera probablement pas.

>> net.ipv6.conf.all.accept_dad=0

> Je vais essayer de forcer cela sur br0.


Test fait sur nos serveurs (samba).

J'ai commenté dans l'unit du service samba-ad-dc la ligne ajoutée

ExecStartPre=/bin/sleep 3

Et j'ai arrêté le DAD via le fichier sysctl.conf

net.ipv6.conf.all.accept_dad=0

et, ça ne fonctionne pas mieux?
extrait de /var/log/syslog
?
samba: task[cldapd][975]: Failed to bind to
ipv6:2001:xxxx:xxxx::xxxx:636 - NT_STATUS_ADDRESS_NOT_ASSOCIATED
?
sh[510]: Waiting for DAD... Done
sh[510]: eth0=eth0

Cordialement
BERTRAND Joël (12/09/2019, 07h30)
MAS Jean-Louis a écrit :
<snip>

La seule solution qui fonctionne est ceci :
> net.ipv6.conf.all.accept_dad=0


Voilà, voilà... Merci pour tout.

JKB
Discussions similaires
FreeWifi_secure, EAP-SIM, /etc/network/interfaces

re /etc/network/interfaces

Re : /etc/network/interfaces

config /etc/network/interfaces (?)


Fuseau horaire GMT +2. Il est actuellement 14h08. | Privacy Policy