Table des matières

Configuration de MPD5 sous FreeBSD pour collecte ADSL FDN

Configuration de MPD5 sous FreeBSD pour se faire livrer de la collecte ADSL par FDN. Il faut être interconnecté avec les LNS de FDN.

Patch

Il est nécessaire de patcher MPD5 pour accepter les connexions des LNS l2tpns modifiés par fendo. Le problème vient des paquets SCCN L2TP qui ne passent pas.

Patch : http://paste.debian.net/plain/353170

Pour compiler MPD5 depuis les ports avec le patch :

$ cd /usr/ports/net/mpd5/
$ cp ~/patch-src__l2tp_ctrl.c files/
$ make
$ make install

Testé avec MPD 5.7

Template de configuration de PClight

startup:
        set user admin password <motdepasse>
        set user user password <motdepasse>
        set console self <ip> <port>
        set console open
        set web self <ip> <port>
        set web open

default:
        load l2tp
        load pptp_server

l2tp:
        create bundle template B
        set iface idle 1800
        set iface enable tcpmssfix
        set ipcp ranges <ip local de terminaison du LNS. Peut être une RFC1918 sans soucis>/32 0.0.0.0/0
        set ipcp dns <IP resolver 1> <IP resolver 2>
        create link template L1 l2tp
        set l2tp self <IP du endpoint L2TP retourné par le Radius. IE IP d'interco avec les LNS du provider>
        set l2tp hostname <hostname local>
        set l2tp secret skret
        set l2tp disable dataseq
        set link action bundle B
        set link enable incoming pap no-orig-auth
        set link disable eap acfcomp protocomp check-magic
        set link deny acfcomp protocomp
        set link keep-alive 10 60
        load radius
        set link mtu 1460
        set link mru 1460
        set link enable incoming
        set link disable peer-as-calling

radius:
        set radius me <IP d'interco avec le radius. 127.0.0.1 si radius local>
        set radius server <IP du radius. 127.0.0.1 si radius local> <password radius> 1812 1813
        set radius retries 3
        set radius timeout 3
        set auth enable radius-auth
        set auth enable radius-acct

# Option pour pouvoir gérer également des VPN pptp avec le même daemon
pptp_server:
        set ippool add pool1 <IP de début de pool> <IP de fin de pool>
        create bundle template C
        set iface enable proxy-arp
        set iface idle 1800
        set iface enable tcpmssfix
        set iface route <ip de terminaison du vPN. Peut être une RFC1918>
        set ipcp yes vjcomp
        set ipcp ranges <IP de terminaison du VPN> ippool pool1
        set ipcp dns <IP resolver 1> <IP resolver 2>
        set ipcp nbns <IP de terminaison du VPN>
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e128
        set mppc yes stateless
        create link template L2 pptp
        set link action bundle C
        set link yes acfcomp protocomp
        set link no pap chap
        set link enable chap
        set link keep-alive 10 60
        set link mtu 1460
        set pptp self <IP routable de endpoint VPN>
        set link enable incoming

Configuration d'Illyse

startup:
    #log +auth +ipcp +ipv6cp +iface +radius
    log +auth
    set user admin <password> admin
    set console self 127.0.0.1 5678
    set console open

default:
    load l2tp

l2tp:
    create bundle template ADSL
    set iface idle 1800
    set iface enable tcpmssfix
    set ipcp ranges 89.234.140.1/32 0.0.0.0/0
    set ipcp dns 89.234.140.1
    create link template ILLYSE l2tp
    set l2tp self 91.216.110.45
    set l2tp hostname loremipsum
    set l2tp secret <my_l2tp_secret>
    set l2tp disable dataseq
    set link action bundle ADSL
    set link enable incoming pap no-orig-auth
    set link disable eap acfcomp protocomp check-magic
    set link deny acfcomp protocomp
    set link keep-alive 10 60
    load radius
    set link mtu 1492
    set link mru 1492
    set link enable incoming
    set link disable peer-as-calling

radius:
    set radius me 127.0.0.1
    set radius server 127.0.0.1 <secret_radius_password>
    set radius retries 3
    set radius timeout 3
    set auth enable radius-auth
    set auth enable radius-acct

myl2tpsecret est un mot de passe à mettre dans les attributs Radius de chaque abonné, tandis que secretradiuspassword sert juste à parler au serveur Radius en local.

Administration

MPD5 propose une interface d'administration en console, accessible via un port réseau local (set console self dans la configuration) :

telnet 127.0.0.1 5678

Les identifiants sont ceux définis dans la configuration.

Example de commandes :

[] show sessions
ng0	89.234.140.X	ADSL-1	XXXX-ADSL-1	ILLYSE-1	1	XXXX-ILLYSE-1	toto-dsl1!ils%gnd@fdn.nerim	80.67.161.41
[] iface ng0          
[ILLYSE-1] show customer
(statut, durée de connexion, nombre d'octets échangés, etc)
[ILLYSE-1] show iface
[ILLYSE-1] show bundle
[ILLYSE-1] show link

Pour forcer un modem à se reconnecter :

[] destroy bundle ADSL-1

où “ADSL-1” est l'identifiant donné dans show sessions.

Attention, pour quitter la console, ne pas taper quit, ça tue le daemon lui-même… Utiliser plutôt exit.