Comme on a de la collecte xDSL/4G/FTTH, on a des LNS pour collecter tout ça, et donc du RADIUS pour le AAA des lignes.
Historiquement on avait une seule porte à Rennes, et on ne s’est jamais trop embêtés à redonder le RADIUS parce que globalement sauf si ça tombe des heures ça empêche pas les lignes de tourner.
Par contre, depuis récemment, on a de la collecte à Paris pour les FTTH ; on a donc commencé un chantier d’anycast des RADIUS entre Rennes et Paris.
On aurait pu se contenter de synchroniser à la main le fichier users
entre les deux machines, mais bon, c'est pas très marrant. Du coup, on a fait vachement plus drôle : du LDAP. (oh wait)
En gros, les deux machines RADIUS font aussi office de cluster LDAP et se répliquent entre elles et ensuite le RADIUS vient taper sur le LDAP.
Hormis le LDAP, il y a quelques subtilités :
ntlm_auth
car ça provoquait des erreurs depuis un routeur ZyXEL VMG3625-T50B
Auth: (178) Login incorrect (mschap: FAILED: No NT-Password. Cannot perform : [jeanmichel@grifon.ift/<via Auth-Type = mschap>] (from client lns03 port 0 cli 178.20.54.1)
users
à l'ancienne.Pour que le radius renvoie les bons champs en fonction par rapport à ceux présents dans le schema ldap, si vous en utilisez un nouveau, il faut penser à les rajouter dans la conf :
reply:Tunnel-Type := 'radiusTunnelType' reply:Tunnel-Medium-Type := 'radiusTunnelMediumType' reply:Tunnel-Private-Group-ID := 'radiusTunnelPrivategroupId' reply:Framed-IP-Address := 'radiusFramedIPAddress' reply:Framed-IP-Netmask := 'radiusFramedIPNetmask' reply:Framed-IPv6-Address := 'radiusFramedIPv6Address' reply:Framed-Protocol := 'radiusFramedProtocol' reply:Framed-Routing := 'radiusFramedRouting' reply:Delegated-IPv6-Prefix := 'radiusDelegatedIPv6Prefix' reply:Tunnel-Server-Endpoint := 'radiusTunnelServerEndpoint' reply:Tunnel-Client-Endpoint := 'radiusTunnelClientEndpoint' reply:Tunnel-Preference := 'radiusTunnelPreference' reply:Tunnel-Assignment-ID := 'radiusTunnelAssignmentId' reply:Framed-MTU := 'radiusFramedMTU' reply:Class := 'radiusClass' reply:Tunnel-Password := 'radiusTunnelPassword' reply:ADSL-Agent-Circuit-Id := 'radiusADSLAgentCircuitId' reply:Alc-Default-Router := 'radiusAlcDefaultRouter' reply:Alc-Primary-Dns := 'radiusAlcPrimaryDns' reply:Alc-Secondary-Dns := 'radiusAlcSecondaryDns' reply:Alc-Ipv6-Primary-Dns := 'radiusAlcIpv6PrimaryDns' reply:Alc-Ipv6-Secondary-Dns := 'radiusAlcIpv6SecondaryDns' reply:Alc-Ipv6-Address := 'radiusAlcIpv6Address' reply:Service-Type := 'radiusServiceType'
En revanche, si un champ n'existe pas dans le schéma ldap, vous pouvez utiliser un attribut radiusAttribute
qui porte l'attribut radius en direct en mode clé-valeur :
Mon-Attribut-Radius: valeurmonattribut
.