Handleiding

PPPoE-server en RADIUS

Je router als aanbieder: elke klant logt in met een eigen account en krijgt een eigen adres.

Bij PPPoE logt een apparaat in op het netwerk voordat het een adres krijgt. Meestal zit jouw router aan de klantkant van dat gesprek: hij vult de gebruikersnaam en het wachtwoord van je provider in en krijgt internet terug. Dat staat in WAN: de verbinding naar internet.

Dit hoofdstuk gaat over de andere kant. Je router wordt zelf de partij die de accounts kent, de adressen uitdeelt en de sessies bijhoudt. Dat is de rol van een provider.

Wanneer je dit wilt

Een PPPoE-server heeft zin als je per aansluiting wilt kunnen zeggen wie hij is, en dat achteraf wilt kunnen terugzien of intrekken:

  • Een klein netwerk waar je zelf internet doorlevert, bijvoorbeeld een bedrijvenverzamelgebouw, een camping of een woongroep.
  • Een opstelling waar elke klant een vast adres of een eigen snelheid hoort te krijgen, gekoppeld aan zijn account en niet aan de poort of het apparaat waar hij toevallig in zit.
  • Een netwerk waarin je sessies centraal wilt kunnen afsluiten, met RADIUS erachter.

Heb je dat niet nodig, dan is DHCP eenvoudiger en sneller. Een PPPoE-sessie kost verwerking per pakket, en elke klant die niet kan inloggen belt jou.

Waar het staat

In geavanceerd, in het onderdeel Hotspot, PPPoE-server, RADIUS, onder de groep PPPoE server. Er is geen wizardrol voor; dit is bewust geavanceerd werk. Het onderdeel staat standaard uit.

De instellingen

Interface

De interface waarop de server naar inlogverzoeken luistert. Dat kan een fysieke poort zijn, een bridge of een VLAN. Kies hier nooit de poort waarmee je zelf naar je eigen provider gaat: dan zit je server te antwoorden op de kant waar hij juist moest vragen.

Service name

Standaard isp. De naam die de server in zijn aankondiging meestuurt. Een client die zelf een service name opgeeft, krijgt alleen antwoord van een server met dezelfde naam. Draai je één server, dan doet de naam er weinig toe, zolang je klanten hem leeg laten of exact overnemen.

Lokaal adres en adrespool

Het lokale adres, standaard 10.9.0.1, is het adres van de router aan elke sessie: dat wordt de gateway van je klant. De adrespool, standaard 10.9.0.2-10.9.255.254, is waaruit klanten hun adres krijgen. Anders dan bij een LAN hoeft die reeks geen net subnet te zijn: elke sessie is een puntverbinding.

Houd het lokale adres buiten de pool en zorg dat de reeks nergens botst met je eigen netwerken. De controles boven het script kijken mee op overlappende subnetten.

DNS voor clients

Wat je hier invult krijgen klanten mee in hun sessie, komma's ertussen. Laat je het leeg, dan krijgen ze geen DNS van jou en moeten ze het zelf regelen.

Abonnees

De tabel Abonnees is de lijst met accounts als je geen RADIUS gebruikt. Per abonnee: een gebruikersnaam, een wachtwoord (de knop genereert er een van twaalf tekens), optioneel een vast adres en optioneel een snelheid.

Let op het snelheidsveld. Dat wordt in het script een opmerking bij het account, geen limiet die iets afdwingt. Het script zegt dat er ook bij: een echte limiet per abonnee zet je in een eigen PPP-profiel per snelheid, of je laat RADIUS hem meesturen. Vul je alleen dit veld in, dan haalt die klant gewoon de volle lijn.

Wat er in het script komt

  • /ip pool met de naam pppoe-pool.
  • /ppp profile met de naam pppoe: het lokale adres, de pool als remote address, je DNS, change-tcp-mss=yes en only-one=yes.
  • /ppp secret per abonnee, met service pppoe en eventueel zijn vaste adres.
  • /interface pppoe-server server op de gekozen interface, met authentication=pap,chap,mschap2, one-session-per-host=yes en MTU en MRU op 1480.

change-tcp-mss=yes is er niet voor de sier: met een MTU van 1480 lopen klanten zonder MSS-aanpassing tegen sites aan die halverwege blijven hangen. only-one=yes en one-session-per-host=yes houden samen tegen dat hetzelfde account op twee plekken tegelijk online komt.

RADIUS erachter

Met meer dan een handvol abonnees wil je de lijst niet in elke router hebben staan. Zet dan in dezelfde sectie de RADIUS-client aan, vul het serveradres en het shared secret in, en vink bij Voor in elk geval ppp aan. De generator schrijft dan /ppp aaa met use-radius=yes en accounting aan, naast de /radius-regel zelf.

Vanaf dat moment komen accounts, en als je server dat meestuurt ook snelheden en vaste adressen, van de server. Je eigen abonneetabel mag dan leeg blijven. Incoming CoA op poort 3799 laat de server een lopende sessie aanpassen of afbreken, bijvoorbeeld als iemand niet betaalt.

De configurator schrijft alleen de client. Een RADIUS-server, User Manager of iets anders, zet je zelf op.

Het verschil met PPPoE als client

 Client (WAN)Server (dit hoofdstuk)
Waar je het invultWAN / internet, per uplinkHotspot, PPPoE-server, RADIUS
Wat je invultJouw account bij de providerDe accounts van je klanten
AdresKrijg jeDeel je uit, uit de pool
In het script/interface pppoe-client/interface pppoe-server server

Beide tegelijk op hetzelfde apparaat kan, zolang het niet op dezelfde interface is: klantkant naar de provider, serverkant naar je eigen netwerk.

Dingen om op te letten

  • Firewall. De sessies die klanten opzetten zijn dynamische interfaces. Die zitten niet automatisch in de interfacelijsten LAN of WAN die de firewall gebruikt, dus regels die "vanaf LAN" toestaan gelden er niet vanzelf voor. Beslis bewust wat abonnees van de router zelf mogen benaderen. Zie Firewall.
  • NAT. Krijgen klanten adressen uit de pool, dan moeten die net als je LAN door de NAT naar buiten, anders komen ze niet op internet.
  • Eén server per broadcastdomein. Staan er twee PPPoE-servers op hetzelfde segment, dan wint wie het eerst antwoordt. Dat is een lastig probleem om te vinden.
  • Controleren. /ppp active print toont wie er nu online is, /interface pppoe-server print de server zelf en het log vertelt waarom een inlog mislukt.

Verder lezen: De hotspot, WAN: de verbinding naar internet en QoS.

Meteen proberen? Open de configurator