Auteur Sujet: [TUTO] Éviter les coupures toutes les 24 heures avec l'ERL en PPPOE  (Lu 2979 fois)

0 Membres et 1 Invité sur ce sujet

aljarreau

  • Abonné Maroc Telecom
  • *
  • Messages: 276
  • Casablanca
Bonsoir,
Pour ceux d'entre nous qui connaissent les affres du renouvellement d'IP par le FAI toutes les 24 heures avec une déconnexion et une reconnexion que l'ERL ne sait pas gérer (j'en ai fait la mauvaise expérience et rangé le routeur au placard jusqu'à aujourd'hui), la FTTH au Maroc n'étant pas en DHCP mais en pppoe chez tous les opérateurs. Voici donc la méthode que j'ai trouvée, à travers des recherches sur des forums amis qui utilisent les équipements d'Ubiquiti en général, et qui m'a permis d'oublier un peu l'ERL.

Préambule: je voulais juste m'amuser à bypasser un équipement obsolète vendu au prix fort par l'opérateur et impossible à remplacer, du moins pour sa fonction ONT

L'équipement :
ONT/routeur/modem (Alcatel/Lucent G-240W-A) passé an mode bridge pour débarrasser ma configuration du wifi et ethernet bas de gamme.
ERL 3 avec :
Eth0: ONT fibre
Eth1: vers switch non manageable pour le réseau Lan (domestique) et l'AP Wifi

Le problème :
En configurant une connexion pppoe0 (sur eth.881, le Vlan Internet ici) tout se passe bien et le serveur m'attribue une IP, puis j'ai accès à Internet sans problème pendant 24 heures.
au bout de ces 24 heures la connexion est stoppée par le serveur du FAI et l'ERL tente donc de se reconnecter pour obtenir une nouvelle  IP, mais n'y arrive pas (il y a une discussion que j'ai entamée l'année dernière sans arriver avec les participants à débusquer et régler le problème : https://lafibre.info/routeur/perte-de-connection-pppoe/msg424776).
J'ai reporté le problème sur le forum ubnt, mais un des employés m'a répondu qu'un ticket a été ouvert à ce sujet et qu'une action était prévue... pour corriger le problème dans la version 2.0 du firmware, autant dire dans une autre vie :)

La solution :
Étant donné, et sans savoir ni pourquoi ni comment, que les commandes manuelles "disconnect interface pppoe0" puis "connect interface pppoe0" font le job, mais il faut être devant le CLI au moment de la coupure d'internet, j'ai cherché à automatiser ces actions et voilà ce que j'ai fait, espérant que ça pourrait aider ceux d'entre vous qui ont le même souci que moi:

1/ Créer un script (001pppoefixdrop.sh) (merci @mrmiyagi)
 sudo vi /config/scripts/ppp/ip-down.d/001fixpppoedrop.sh 
#!/bin/bash
run=/opt/vyatta/bin/vyatta-op-cmd-wrapper
$run clear interfaces connection pppoe0
 
et rendre le script executable:
 chmod +x /config/scripts/ppp/ip-down.d/001pppoefixdrop.sh 
Le script est enregisté ici (Vous devez créer le répertoire auparavant:  mkdir):
 /config/scripts/ppp/ip-down.d
Lorsque la connexion se rompt, l’interface pppoe est vidée et la connexion est relancée et établie sans problème.

Ce n'est pas une solution pérenne, mais dans mon cas, ça fonctionne en attendant.


2/ Il y aurait une autre solution à tester, c'est celle de créer un cronjob qui réinitialise la connexion (ou plutôt l'interface pppd) toutes les XX Heures (23 heures par exemple) pour l'obtention d'une nouvelle ip et là encore ça marche, à vous de prendre la solution qui vous convient le mieux :

Générer le fichier "/etc/cron.d/pppoe-reconnect"
sudo touch /etc/cron.d/pppoe-reconnect
editer le fichier avec vi:
sudo vi /etc/cron.d/pppoe-reconnect
taper "I" et insérer la ligne suivante (merci @UBNT-cmb):
0 23 * * * root /usr/bin/killall -HUP pppd
Appuyez sur "ESC" puis tapez ":wq" pour sauver et quitter.

Voilà


zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 283
  • Antibes (06) / Mercury (73)
[TUTO] Éviter les coupures toutes les 24 heures avec l'ERL en PPPOE
« Réponse #1 le: 05 juin 2018 à 08:08:36 »
Ce qui m'étonne dans cette histoire, c'est qu'avant qu'Orange ne passe en DHCP, j'ai utilisé mon ERL en PPPoE pendant presque 1 an, avec reconnexion et changement d'IP tous les 7 jours, et je n'ai jamais eu le moindre problème...

aljarreau

  • Abonné Maroc Telecom
  • *
  • Messages: 276
  • Casablanca
[TUTO] Éviter les coupures toutes les 24 heures avec l'ERL en PPPOE
« Réponse #2 le: 05 juin 2018 à 08:33:11 »
C'est à croire qu'ici, ils ont préféré adopter cette solution pour (je ne me rappelle plus où je l'ai lu), pouvoir  tracer les utilisateurs (clients). De toutes les manières, flicage ou pas flicage, au bout de 24 heures à la seconde prêt, chez tous les clients, en fonction de l'heure de leur dernière connexion, hop! changement d'ip.

et voilà ce que ça donne quand ça coupe avec l'ERL:
ipcp: down
Connect time 352.4 minutes.
Sent 4488869 bytes, received 7916407 bytes.
Script /etc/ppp/ip-down started (pid 10763)
sent [LCP TermReq id=0x2 "User request"]
rcvd [LCP TermAck id=0x2]
Connection terminated: no multilink.
Tue Jun  5 05:56:34 WET 2018: User  stopping PPP daemon for pppoe0 by clear command
Terminating on signal 15
Waiting for 1 child processes...
  script /etc/ppp/ip-down, pid 10763
sending SIGTERM to process 10763
Tue Jun  5 05:56:40 WET 2018: User  starting PPP daemon for pppoe0 by clear command
Connected to XX:XX:XX:XX:XX:XX via interface eth0.881
using channel 3
Using interface ppp0
Connect: ppp0 <--> eth0.881
sent [LCP ConfReq id=0x1 <mru 1492> <magic 0xf2783252>]
rcvd [LCP ConfAck id=0x1 <mru 1492> <magic 0xf2783252>]
rcvd [LCP ConfReq id=0x2 <mru 1492> <auth chap MD5> <magic 0xab2560f8>]
lcp_reqci: returning CONFACK.
sent [LCP ConfAck id=0x2 <mru 1492> <auth chap MD5> <magic 0xab2560f8>]
sent [LCP EchoReq id=0x0 magic=0xf2783252]
rcvd [CHAP Challenge id=0x1 <f65df856b2vfr6u893994861dab2dcb293e>, name = "nom du serveur"]
sent [CHAP Response id=0x1 <144c3d78d2abc9a0359d7353bb3bbb4f>, name = "login client"]
rcvd [LCP ConfReq id=0x3 <mru 1492> <auth chap MD5> <magic 0xa7db8e3b>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
lcp_reqci: returning CONFACK.
sent [LCP ConfAck id=0x3 <mru 1492> <auth chap MD5> <magic 0xa7db8e3b>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x1f13512>]
....
----> ça reste en boucle jusqu'à ce que je  l'arrête manuellement
Hangup (SIGHUP)
sent [LCP TermReq id=0x3 "User request"]
sent [LCP TermReq id=0x4 "User request"]
Connection terminated: no multilink.
Modem hangup
LCP: Down event in state 0!
Connected to XX:XX:XX:XX:XX:XX via interface eth0.881
using channel 4
Using interface ppp0
Connect: ppp0 <--> eth0.881
sent [LCP ConfReq id=0x5 <mru 1492> <magic 0x95b1cdb>]
rcvd [LCP ConfAck id=0x5 <mru 1492> <magic 0x95b1cdb>]
rcvd [LCP ConfReq id=0x2 <mru 1492> <auth chap MD5> <magic 0x9bfb722b>]
lcp_reqci: returning CONFACK.
sent [LCP ConfAck id=0x2 <mru 1492> <auth chap MD5> <magic 0x9bfb722b>]
sent [LCP EchoReq id=0x0 magic=0x95a1cdb]
rcvd [CHAP Challenge id=0x1 <9b9a772a113027cdhfvggtrcf666d749dd4>, name = "nom du serveur]"]
sent [CHAP Response id=0x1 <783d3baoed6g8ant10e6d99224db535>, name = "login client"]
rcvd [LCP EchoRep id=0x0 magic=0x9bfb736b]
rcvd [CHAP Success id=0x1 "Authentication success,Welcome!"]
CHAP authentication succeeded: Authentication success,Welcome!
CHAP authentication succeeded
peer from calling number XX:XX:XX:XX:XX:XX authorized
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr xxx.xxx.xxx.xxx>]
ipcp: returning Configure-ACK
sent [IPCP ConfAck id=0x1 <addr xxx.xxx.xxx.xxx>]
rcvd [IPCP ConfNak id=0x1 <addr xxx.xxx.xxx.xxx> <ms-dns1 yyy.yyy.yyy.yyy> <ms-dns3 yyy.yyy.yyy.yyy>]
sent [IPCP ConfReq id=0x2 <addr xxx.xxx.xxx.xxx> <ms-dns1 yyy.yyy.yyy.yyy> <ms-dns3 yyy.yyy.yyy.yyy>]
rcvd [IPCP ConfAck id=0x2 <addr xxx.xxx.xxx.xxx> <ms-dns1 yyy.yyy.yyy.yyy> <ms-dns3 yyy.yyy.yyy.yyy>]
ipcp: up
Script /etc/ppp/ip-pre-up started (pid 11206)
Script /etc/ppp/ip-pre-up finished (pid 11206), status = 0x0
local  IP address xxx.xxx.xxx.xxx
remote IP address xxx.xxx.xxx.xxx
primary   DNS address yyy.yyy.yyy.yyy
secondary DNS address yyy.yyy.yyy.yyy
Script /etc/ppp/ip-up started (pid 11274)
Script /etc/ppp/ip-up finished (pid 11274), status = 0x0

Il ya quelques semaines j'avais douté du routeur lui même, mais je ne pense pas qu'il y ait un problème physique, d'autant plus que j'e viens de changer il y a un mois son usb par une clé neuve de 16 Go qui tourne comme un charme avec le firmware v1.10.1.

Alors s'il te reste la config de cette période où tu étais avec Orange en PPPoE avec l'ERL, je suis preneur pour comparer et essayer de comprendre.

Edit : à ton avis, dans les options ppp si on limite le maxfail à 10 au lieu de 0 (et donc no limite, comme configuré), ça peut terminer la connection et relancer?

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 283
  • Antibes (06) / Mercury (73)
[TUTO] Éviter les coupures toutes les 24 heures avec l'ERL en PPPOE
« Réponse #3 le: 05 juin 2018 à 08:43:50 »
Malheureusement non, je n'ai pas gardé ma config. Mais elle était plutôt basique, sans paramètres particuliers...

Par contre à l'époque je devais être en 1.8.1 (ou 1.8.3 je ne me souviens plus très bien). Il n'est pas exclu qu'un bug ait été introduit depuis...

Pour le maxfail, aucune idée...

Le log semble indiquer que l'ERL n'obtient aucune réponse à la requête d'identification.

aljarreau

  • Abonné Maroc Telecom
  • *
  • Messages: 276
  • Casablanca
[TUTO] Éviter les coupures toutes les 24 heures avec l'ERL en PPPOE
« Réponse #4 le: 05 juin 2018 à 08:48:36 »
Je précise juste par rapport à ce bug, qu'il ne survient pas si l'ONT est rebooté par moi-même, mais juste quand cette action est lancée côté FAI.

aljarreau

  • Abonné Maroc Telecom
  • *
  • Messages: 276
  • Casablanca
[TUTO] Éviter les coupures toutes les 24 heures avec l'ERL en PPPOE
« Réponse #5 le: 05 juin 2018 à 20:46:20 »
Je suis presque au bout du tunnel, car en fait, après 24 heures de test, j'ai compris que le problème réside en fait dans le fait que le routeur part en vrille lorsqu'il ne reçoit pas de réponse à sa requête :
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x17c9108c>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x17c9108c>]
sent [LCP ConfReq id=0x2 <mru 1492> <magic 0x17c9108c>]
...
qui reste indéfiniment en boucle jusqu'à intervention manuelle.
Dans ce cas, le script que j'ai posté plus haut ne sert à rien, puisqu'il n'y a plus moyen de faire appel à une réinitialisation de l'interface, à part d'intervenir en mannuel.

D'où ma question vitale pour les connaisseurs en protocole ppp svp:

Existe-t-il (par exemple dans les options de réglage) une manière de stopper cette hémorragie au bout d'un nombre défini de requêtes non abouties. Car en principe le routeur est sensé recevoir quelque chose comme cela pour que la connexion se fasse et que le serveur attribue l'IP:
rcvd [CHAP Challenge id=0x1 <71c868416ad2beb5a6e98eada202c414>, name = "Nom du Serveur"]
sent [CHAP Response id=0x1 <bbe7db678223ab8f315f659e59f5acf2>, name = "Login Client"]
rcvd [LCP EchoRep id=0x0 magic=0xa57723891d]
rcvd [CHAP Success id=0x1 "Authentication success,Welcome!"]

Et donc l'interface doit être relancée de nouveau.

Merci pour votre aide.


aljarreau

  • Abonné Maroc Telecom
  • *
  • Messages: 276
  • Casablanca
[TUTO] Éviter les coupures toutes les 24 heures avec l'ERL en PPPOE
« Réponse #6 le: 09 juin 2018 à 01:22:08 »
Finalement, j'ai trouvé une solution plus simple sans toucher aux fichiers de config qui peuvent être remplacés en cas de mise à jour du Firmware.

Je l'ai postée ici : https://lafibre.info/tcpip/demande-aide-creation-dun-script-de-surveillance-pppoe/msg550234/#msg550234

Désolé si j'ai pollué le forum avec ce problème depuis un an, mais je n'avais pas d'autre choix que persévérer.