[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