Configuration de MPD5 sous FreeBSD pour se faire livrer de la collecte ADSL par FDN. Il faut être interconnecté avec les LNS de FDN.
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
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
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.
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
.