technique:infra:collecte

Cette page décrit en l'architecture de collecte ADSL via Grenode et Liazo.

Architecture de collecte xDSL mutualisée au sein de Grenode

L'architecture de collecte xDSL mutualisée au sein de Grenode est décrite de manière détaillé dans la documentation Grenode. https://www.grenode.net/Documentation_technique/R%C3%A9seau/Collecte_xDSL/

Fonctionnement de la collecte xDSL pour Ilico

Chez Ilico, c'est la machine coussin (Nommage des machines) qui est chargée de la collecte.

C'est une machine virtuelle hébergée sur roof chez Grenode https://www.grenode.net/Documentation_technique/Machines/rouf/ .

Lorsqu'un abonné xDSL d'ilico se connecte, le processus est le suivant :

  1. L'abonné initie une session PPP via les équipements de l'opérateur de collecte (Liazo via Orange)
  2. Le LAC de l'opérateur de collecte (Liazo) interroge son serveur Radius qui relai la requête au serveur Radius de Grenode pour déterminer quelles sont les informations de terminaison du tunnel, nottament l'adresse du LNS d'Ilico (coussin) ainsi que le secret partagé.
  3. La requête est transmise au Radius d'Ilico (coussin) puis retournée jusqu'au LAC de Liazo
  4. Le LAC Lizao propage le tunnel L2TP vers le LNS d'Ilico (coussin)
  5. Le LNS d'Ilico reçoit la demande d'établissement du tunnel L2TP et authentifie l'abonné via son Radius
  6. La session PPP de l'abonné est montée

Voici un schéma récapitulant la cinématique de montage du lien PPP entre l'abonné et notre machine de collecte coussin.

Chaque entité est en réalité un proxy radius chargé de rediriger la requête vers le serveur suivant en fonction du domaine. Exemple : lafouine@ilc.gnd.dslnet.fr :

  1. Liazo : dslnet.fr
  2. Grenode : gnd
  3. Ilico : ilc
Le LAC doit se situer à peu près au même niveau que le BAS sur le schéma précédent. Des approximations sont faites car beaucoup d'abstractions sont présentes.

Routage entre le LAC Lizao et le LNS Ilico coussin :

Grenode annonce via radius l'adresse des LNS des membres devant terminer les tunnels L2TP (https://www.grenode.net/Documentation_technique/Machines/ajut/ chez Grenode). Grenode ne dispose donc pas de LAC. En contrepartie, les LAC des fournisseurs de collecte doivent connaître la route pour atteindre chaque LNS des membres de Grenode et inversement. Cela est fait via du routage dynamique entre ajut/attrape, les LAC et les LNS des membres de Grenode.

Il est donc impératif d'annoncer l'adresse IP du LNS Ilico coussin à Grenode sur Ajut. Cela est géré par le daemon de routage Bird.

Configuration des services

Coussin dispose de deux interfaces réseaux :

  • etho : 91.216.110.54 ⇒ ouverte au net
  • eth1 : 91.216.110.43 ⇒ connectée à la pate de ajut, c'est par ici qu'arrive la collecte

Elle dispose de 3 services :

  • Bird (routage)
  • l2tpns (l2tp)
  • FreeRadius (radius)

Extrait de /etc/bird/bird.conf :

# configuration ILICO
protocol kernel {
        learn;
        persist;
        scan time 20;
        import all;
        export all;
        device routes yes;
}
protocol bgp grenode_ajut {
        description "Session ajut";
        local as 65304;
        multihop;
        neighbor 91.216.110.99 as 65300;
        source address 91.216.110.43;
        export all;
        import all;
}
Le “export all” est filtré par Ajut

Extrait de Extrait de /etc/l2tpns/startup-config :

# Log file: comment out to use stderr, use "syslog:facility" for syslog
set log_file "/var/log/l2tpns"

# Write pid to this file
set pid_file "/var/run/l2tpns.pid"

# This host name, if different from the OS one
set hostname "col1-ilico.grenode.net"

# Shared secret with LAC
set l2tp_secret "***"

[...]

# Only 2 DNS server entries are allowed
set primary_dns 80.67.169.12
set secondary_dns 80.67.169.40

# Can have multiple radius server entries, but ony one radius secret
set primary_radius 91.216.110.43
set primary_radius_port 1812

[...]

# Listen address for CLI
set cli_bind_address 127.0.0.1

[...]

# Gateway address given to clients
set peer_address 91.216.110.43

On voit facilement :

  1. Les paramètres réseaux fournis à l'abonnée : passerelle et DNS
  2. L'adresse du serveur Radius auprès duquel il s'authentifie et le secret L2TP utilisé (caché ici)

Doc annexe

LAC, LNS, L2TP, je comprends rien : http://www.frameip.com/l2tp-pppoe-ppp-ethernet/ Bon article qui résume le fonctionnement ADSL jusqu'à l'opérateur : http://piaf.grenouille.com/spip.php?article157

Tuto l2tpns + freeradius/mysql : http://l2tpns.sourceforge.net/docs/vpn/practical-vpns.html

[LNS]: L2TP Network Server : équipement terminant des tunnels PPP. ⇒ notre petit daemon l2tpns [LAC]: L2TP Access Concentrator : équipement relayant des tunnels PPP. ⇒ ce qu'on retrouve au niveau du BAS

Accounting : https://networkradius.com/how-does-radius-accounting-work/index.html http://www.ceenet.org/wp-content/uploads/2014/05/FreeRADIUS-configuration-Jovana-Palibrk.pdf http://www.stat.ufl.edu/system/man/portmaster/RADIUS/guide/7account.html

[A faire - A ranger]

FreeRADIUS


* inclure clients/ dans le clients.conf : une directive pour ça ? DONE * forme du User-Name : changé. DONE

* secret pour les clients * radius côté grenode: 91.216.110.96 ? la doc (./pub/Documentation_technique/Réseau/Collecte_xDSL.mdwn) nous dit:

Il faut autoriser les radius de Grenode à questionner le radius du membre et configurer les bons mots de passe. Adresses possibles pour les radius :

- 91.216.110.99 - 91.216.110.108 - 91.216.110.107

* radtest en local avec le client de test $ radtest 'login@ilc.gnd.dslnet.fr' motdepasse localhost 0 testing123 Sending Access-Request of id 121 to 127.0.0.1 port 1812

      User-Name = "login!ilc%gnd@fdn.nerim"
      User-Password = "motdepasse"
      NAS-IP-Address = 91.216.110.54
      NAS-Port = 0
      Message-Authenticator = 0x00000000000000000000000000000000

rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=121, length=57

      Framed-IP-Netmask = 255.255.255.255
      Framed-IP-Address = 80.67.180.42
      Framed-IPv6-Route = "2001:912:2000:0001::/64"

⇒ faire un coup de radtest à partir de ajut à la fin (en fait la fin c'est pas maintenant mais presque pour le freeradius) radtest 'login@ilc.gnd.dslnet.fr' motdepasse coussin.ilico.org 1 lesecret

=⇒ ne fonctionne PAS =⇒ on voudrait que ça répond et qu'on ai une réponse complète (ie. avec Tunnel-Password & cie)

Bird


* conf v4 : done

* doc: expliqué sur le “export all” est filtré par ajut (iirc)

LNS —

* paquet maison venant de fendo

DOC === * expliquer l'infra de manière globale (possible de se référer à une doc existante chez des copains, grenode & cie) - sur le pourquoi/comment l2tp/freeradius/bird (essayé d'être clair sur la subtilité du pourquoi bird)

* expliquer comment faire l'admin sys dessus (comment relancer les démons, ce qui doit être lancé en premier, etc)

* faire une méthodologie à suivre pour débugger si jamais quelque chose ne fonctionne pas sur la collecte

  1. l2tpns/freeradius/etc
  • technique/infra/collecte.txt
  • Dernière modification: 2017/04/10 20:14
  • par lafouine