[technique] [Fwd: Re: [rhz-Admins] incidents réseau hier et aujourd'hui]
Laurent GUERBY
laurent at guerby.net
Mar 3 Avr 18:01:12 CEST 2012
FYI.
tetaneutral.net fournit temporairement un tunnel avec
des IP publiques fixe a l'association Rhizome à Compiègne.
Sincèrement,
Laurent
-------- Forwarded Message --------
From: Jocelyn Delalande <jocelyn.delalande at etu.utc.fr>
To: admins at listes.rhizome-fai.net, Laurent GUERBY <laurent at guerby.net>
Subject: Re: [rhz-Admins] incidents réseau hier et aujourd'hui
Date: Tue, 03 Apr 2012 17:56:28 +0200
Pour expliciter un peu le souci et sa solution (attention, c'est tordu):
Pour la première fois depuis le début, la 9box chez Étienne a changé
d'IP publique SFR.
(et alors ?). Et alors, évidemment changer d'IP ça casse la connexion
avec le endpoint VPN chez tetaneutral.net (gateway.tetaneutral.net).
Jusque là rien de méchant. On a l'option "keepalive" qui nous redémarre
le tunnel en cas de tunnel qui ne répond plus.
Seulement lorsque le tunnel redémarre, il (essaye) de se reconnecter à
gateway.tetaneutral.net avec le même port *source*. C'est comme ça que
marche openvpn par défaut, port source et port destination prennen la
même valeur par défaut. Ici 65010.
Or, là où la 9box foire c'est qu'elle fait son NAT et qu'elle a
certainement maintenu dans sa table un état de NAT avec le port 65010
entrant mais avec l'ancienne @IP publique de la neufbox.
La solution pour ça c'est qu'à chaque reconnexion, openvpn prenne un
port source aléatoire (ce que font habituellement tous les logiciels
qui se connectent en client) au lieu d'un port fixe. Ainsi, on évite
d'utiliser l'entrée de table NAT corrompue.
Cela se fait par l'option nobind que j'ai ajoutée au fichier de conf
openvpn de notre côté.
Pour plus d'infos/compréhension de ce problème :
-> le fichier /etc/openvpn/tetaneutral.conf sur bambou
-> man openvpn les options "port" "nobind" et "keepalive" notamment
-> la discussion avec guerby (merci!) de tetaneutral.net qui m'a
grandement aidé à solutionner le problème que je vous colle ci-dessous
Bonne journée, hésitez pas si questions,
Jocelyn
---
16:43 JocelynD$ Coucou
16:44 JocelynD$ y'a un souci sur le routage des VPN ?
16:44 JocelynD$ (pasque nous ça débloque, je suis en train d'investiguer)
16:49 @guerby$ JocelynD, le VPN serveur ne voit plus de client depuis 14h49
16:51 @guerby$ JocelynD, de ton coté tu vois quoi dans les logs ? en
general reboot du modem, et/ou changement du port source
16:52 @guerby$ JocelynD, ton IP avant etait 89.170.129.105, la je vois
aucun paquet qui arrive depuis cette IP
17:00 JocelynD$ guerby: j'ai l'impression que SFR a renuméroté :o
17:00 JocelynD$ a non, suis con, c'est SFR, c'est normal
17:00 JocelynD$ donc là c'est 89.170.153.78
17:02 JocelynD$ guerby: Mais j'ai redémarré openvpn ça aurait du
raccrocher ou tu filtre sur l'IP du endpoint ?
17:03 JocelynD$ guerby: au niveau du log
http://friendpaste.com/20jFcePCTOb5qGvALgSZem
17:04 # Netk-taf !netkiller at 2001:5c0:1515:6342:175::195 has joined
#tetaneutral.net
17:07 # numahell !~ehe at mir31-1-82-224-13-158.fbx.proxad.net has left
#tetaneutral.net []
17:07 JocelynD$ guerby: et niveau tcpdump je vois bien mes paquets
partir mais jamais de réponse sur le port openvpn
17:08 # isAAAc !~isaaac at vpn-195-88-84-235-v510.toile-libre.net has
quit [Quit: Konversation terminated!]
17:08 # cdrx !legoater at nat/ibm/x-ivoemtbejjuojorz has quit [Ping
timeout: 260 seconds]
17:08 JocelynD$ guerby: j'arrive à ping gw.tetaneutral.net en revanche
17:15 @guerby$ JocelynD, je vois rien arriver de 89.170.153.78
17:15 @guerby$ JocelynD, tu ping qqch ?
17:17 @guerby$ JocelynD, le modem/routeur il est en bridge ou NAT ?
souvent les modem se vautrent dans la gestion du NAT, soit reboot modem
soit tu change le port source
17:18 @guerby$ JocelynD, par exemple --lport 57256
17:18 @guerby$ sur openvpn
17:18 JocelynD$ guerby: il NAT
17:18 JocelynD$ guerby: ok, j'essaye ça
17:19 @guerby$ JocelynD, ayé je vois tes paquets source port 57256
17:19 @guerby$ Tue Apr 3 17:18:53 2012 Peer Connection Initiated with
[AF_INET]89.170.153.78:57256
17:19 @guerby$ Tue Apr 3 17:18:53 2012 Initialization Sequence Completed
17:19 @guerby$ JocelynD, ^
17:19 JocelynD$ guerby: yep, je vois que je reçois (pratique --verb=5)
17:19 @guerby$ JocelynD, c'etait donc le NAT du modem qui a fait pouf
17:20 JocelynD$ guerby: ouahou, balèze, merci beaucoup, j'aurais eu du
mal à deviner ça…
17:20 @guerby$ JocelynD, on a deja eu le soucis sur certains modems
17:20 JocelynD$ donc en gros ce problème risque de se produire à chaque
changement d'adresse IP de la box
17:20 @guerby$ JocelynD, ca arrive pas a tous les coups
17:20 JocelynD$ (là à priori c'est ça le facteur déclencheur)
17:21 @guerby$ JocelynD, mais sur une box un long running VPN faut un
peu de script poudre magique pour que ca marche :)
17:21 JocelynD$ bah c'est la seule fois où on a eu ça en l'occurence
et c'est la première fois depuis le début que la 9box change d'IP
17:21 @guerby$ JocelynD, probable bug du firmware du modem
17:21 JocelynD$ le modem est une 9box
17:22 @guerby$ JocelynD, genre il doit garder sa table de NAT non valide
en IP source pour les connections etablies en UDP ...
17:23 JocelynD$ guerby: ok
17:23 JocelynD$ guerby: le port source il est pas choisi random au
démarrarge du tunnel ?
17:25 @guerby$ JocelynD, oui il est random au demarrage du tunnel sauf
si tu utilises --lport
17:25 JocelynD$ guerby: hm mais je pige pas pourquoi avec tous les
restart que j'ai fait le souci s'est pas réglé
17:29 @guerby$ JocelynD, si tu as mis --port ca fixe le source et dest
je crois (a verifier dans le man)
17:32 JocelynD$ guerby: bien vu ! la solution à ce souci est donc
l'option --nobind en l'occurence là je change bien de port à chaque fois
et le keepalive redémarre la chose si ça foirouille
17:33 @guerby$ JocelynD, a tester :)
17:39 JocelynD$ bah on se dit à dans 3 mois quand la 9box change d'IP
alors ;)
17:39 JocelynD$ guerby: sans rire merci beaucoup par contre !
17:39 @guerby$ JocelynD, :)
--
Jocelyn Delalande,
Étudiant Génie Informatique,
Université Technologique de Compiègne
tel : 06.21.96.86.99
Plus d'informations sur la liste de diffusion technique