» Product Line        
» ISP Billing System UTM5        
» Other Products        
ISP Billing Software RUEN
  Products Services Customer Area Partners Contact

PPPoE server
         » Products
         » Documentation
         » Customer Area
         » Online Demo Version
         » Download Demo
         » Information Request
         » Pricelist
 

How to Install & Configure a PPPoE server

PPPoE Server Installation: Preface

PPPoE (Point-to-Point Protocol over Ethernet) is a network protocol for encapsulating PPP frames in Ethernet frames. Just as pptp, it allows organizing subscriber network access by using authorization, encryption, compression etc.

For providing access via PPPoE it is required a PPPoE network access server (NAS) and a subscriber’s unit (PPPoE client). In this guide as a PPPoE network access server it is used a freeware packet rp-pppoe working in kernel mode on Gentoo Linux (rp-pppoe project web-page: http://www.roaringpenguin.com/penguin/open_source_rp-pppoe.php). As a client it is used a Microsoft Windows 2003 based PC and raspppoe packet (raspppoe packet project web-page: http://www.raspppoe.com/).

Authorization of subscribers is carried out via RADIUS protocol by using a joint repository of subscriber information in the ISP billing system "UTM 5" developed by NetUP.

PPPoE Network Access Server Installation & Configuration

For setting up a server it is necessary to install pppd packages supporting RADIUS protocol and rp-pppoe. In order to install pppd, add a string net-dialup/ppp radius in the file /etc/portage/package.use. After that perform installation by using the command:

emerge ppp

After installation it is necessary to edit configuration files. In particular, in the file /etc/ppp/radius/radiusclient.conf it is important to define the variables authserver and acctserver correctly. In these fields it should be indicated a domain name or IP-address of the RADIUS server (utm5_radius process). Example:


authserver localhost: 1812
acctserver localhost:1813

For correct authorization and accounting via RADIUS protocol it is necessary to define a secret word in the file /etc/ppp/radius/servers.

Example:

localhost   secret

After that install the package rp-pppoe by using the command:


emerge rp-pppoe

For correct work of rp-pppoe in the kernel mode put the following string in the file /etc/ppp/pppoe.conf:


LINUX_PLUGIN=rp-pppoe.so

Additionally, in the file /etc/ppp/pppoe-server-options it is necessary to set the following:


require-chap
require-mschap-v2
proxyarp
nologfd
plugin radius.so

According to these settings secure authorization protocols CHAP and MSCHAPv2 are allowed. It is also defined that the radius.so plug-in should be loaded for working with RADIUS protocol.

Before starting the server, load the Linux kernel module by using the command:


modprobe pppoe

In order to load the module automatically on start-up of the operating system it is necessary to add the string pppoe in the file /etc/modules.autoload.d/kernel-2.6. If an error of the module absence in the system appears then it is necessary to set the following option for compilation of the Linux kernel:


<M>   PPP over Ethernet

After the module has been loaded, it is possible to start the server by using the command:


pppoe-server –k

The PPPoE server configuration is now complete.

PPPoE client installation & configuration

For setting up a subscriber’s PC it is necessary to download and unpack the raspppoe package from the web-site of the developer. As a result you should have the RASPPPOE_099 folder. For installation it is necessary to enter “Control panel"->"Network Connections" and in properties of any connection select “Install …" –> “Protocol" -> “Have Disk …"-> "Browse …". Set a path to the RASPPPOE_099 folder and select the file RASPPPOE.INF. Press “OK" when the system offers installing “PPP over Ethernet Protocol".

After the protocol installation has been finished, it is possible to start RASPPPOE.EXE from the RASPPPOE_099 folder. In the menu select «Ethernet adapter connected to the local network» and press "Query Available Services". After a short search, found PPPoE servers are shown (figure 1).

Search of a PPPoE server

Figure 1. Search of available PPPoE servers in a local area network

Select a PPPoE server and press "Create a Dial-Up Connection for the selected Service". As a result, in the Windows OS it shouldappear "Connection to zavidovo". For establishing the connection go to "Control panel"->"Network Connections" and click twice on the connection icon. Enter your login and password and press "Dial" (figure 2).

connecting to the PPPoE server

Figure 2. Establishing PPPoE connection with a server

Debugging and Testing

PPPoE server messages are recorded in the file /var/log/messages. Below there is a part of the file in case of successful subscriber authorization:

Oct 7 22:27:29 zavidovo pppoe-server[18595]: Session 10 created for client 00:80:48:30:4b:f8 (10.67.15.10) on eth0 using Service-Name ‘’

Oct 7 22:27:29 zavidovo pppd[18595]: Plugin /etc/ppp/plugins/rp-pppoe.so loaded.

Oct 7 22:27:29 zavidovo pppd[18595]: RP-PPPoE plugin version 3.3 compiled against pppd 2.4.3

Oct 7 22:27:29 zavidovo pppd[18595]: Plugin radius.so loaded.

Oct 7 22:27:29 zavidovo pppd[18595]: RADIUS plugin initialized.

Oct 7 22:27:29 zavidovo pppd[18595]: pppd 2.4.3 started by root, uid 0

Oct 7 22:27:29 zavidovo pppd[18595]: using channel 66

Oct 7 22:27:29 zavidovo pppd[18595]: Using interface ppp0

Oct 7 22:27:29 zavidovo pppd[18595]: Connect: ppp0 <--> eth0

Oct 7 22:27:29 zavidovo pppd[18595]: sent [LCP ConfReq id=0x1 1492> ]

Oct 7 22:27:29 zavidovo pppd[18595]: rcvd [LCP ConfReq id=0x0 1492> 3.4d.35.0e.08.2d.4f.5d.9b.16.34.42.43.fb.be.74.00.00.00.00]>]

Oct 7 22:27:29 zavidovo pppd[18595]: sent [LCP ConfRej id=0x0 back CBCP> ]

Oct 7 22:27:29 zavidovo pppd[18595]: rcvd [LCP ConfReq id=0x1 1492> .34.42.43.fb.be.74.00.00.00.00]>]

Oct 7 22:27:29 zavidovo pppd[18595]: sent [LCP ConfAck id=0x1 1492> .34.42.43.fb.be.74.00.00.00.00]>]

Oct 7 22:27:32 zavidovo pppd[18595]: sent [LCP ConfReq id=0x1 1492> ]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [LCP ConfAck id=0x1 1492> ]

Oct 7 22:27:32 zavidovo pppd[18595]: sent [CHAP Challenge id=0x47 <139c175d3a37a56422dd83540583188f38a8c8>, name = “net11”]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [LCP Ident id=0x2 magic=0x19595f15 “MSRASV5.20”]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [LCP Ident id=0x3 magic=0x19595f15 “MSRAS-0-MONDIALE”]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [CHAP Response id=0x47 1f6597d1c7208c0285121ded1e2b>, name = “pppoe”]

Oct 7 22:27:32 zavidovo pppd[18595]: sent [CHAP Success id=0x47 “”]

Oct 7 22:27:32 zavidovo pppd[18595]: peer from calling number 00:80:48:30:4B:F8 authorized

Oct 7 22:27:32 zavidovo pppd[18595]: sent [IPCP ConfReq id=0x1 10.0.0.1>]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [CCP ConfReq id=0x4 -M -S -L -D +C>]

Oct 7 22:27:32 zavidovo pppd[18595]: sent [CCP ConfReq id=0x1]

Oct 7 22:27:32 zavidovo pppd[18595]: sent [CCP ConfRej id=0x4 -M -S -L -D +C>]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [IPCP ConfReq id=0x5 0.0.0.0> ]

Oct 7 22:27:32 zavidovo pppd[18595]: sent [IPCP ConfRej id=0x5 press VJ 0f 01> ]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [IPCP ConfAck id=0x1 10.0.0.1>]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [CCP ConfAck id=0x1]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [CCP TermReq id=0x6 19 59 5f 15 00 3c cd 74 00 00 02 dc]

Oct 7 22:27:32 zavidovo pppd[18595]: sent [CCP TermAck id=0x6]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [IPCP ConfReq id=0x7 0.0.0.0>]

Oct 7 22:27:32 zavidovo pppd[18595]: sent [IPCP ConfNak id=0x7 172.16.0.102>]

Oct 7 22:27:32 zavidovo pppd[18595]: rcvd [IPCP ConfReq id=0x8 172.16.0.102>]

Oct 7 22:27:32 zavidovo pppd[18595]: sent [IPCP ConfAck id=0x8 172.16.0.102>]

Oct 7 22:27:32 zavidovo pppd[18595]: Cannot determine ethernet address for proxy ARP

Oct 7 22:27:32 zavidovo pppd[18595]: local IP address 10.0.0.1

Oct 7 22:27:32 zavidovo pppd[18595]: remote IP address 172.16.0.102

Oct 7 22:27:32 zavidovo pppd[18595]: Script /etc/ppp/ip-up started (pid 18608)

Oct 7 22:27:32 zavidovo pppd[18595]: Script /etc/ppp/ip-up finished (pid 18608), status = 0x1

As a result of successful authorization utm5_radius gives out IP-address 172.16.0.102 for a subscriber. RADIUS server functioning is recorded to the file /netup/utm5/log/radius_main.log. Below there is an extract from the file in case of successful authorization of a subscriber:

?Debug : Oct 07 22:27:32 AuthServer: User connecting

?Debug : Oct 07 22:27:32 AuthServer: Session for sessionid not found in <127.0.0.1> cache

?Debug : Oct 07 22:27:32 RADIUS DBA: Info for login found. type <1>

?Debug : Oct 07 22:27:32 AuthServer: Auth scheme: CHAP

?Debug : Oct 07 22:27:32 AuthServer: CHAP: Challenge size: 19

?Debug : Oct 07 22:27:32 AuthServer: CHAP: Authorized user

?Debug : Oct 07 22:27:32 AuthServer: IP claimed: 0xac100066 (<172.16.0.102>)

?Debug : Oct 07 22:27:32 AuthServer: Calling fill radius attributes for service. Attr storage size <0>

?Debug : Oct 07 22:27:32 AuthServer: Calling fill radius attributes for slink. Attr storage size <0>

?Debug : Oct 07 22:27:32 AuthServer: Calling fill radius attributes for NAS. Attr storage size <0>

Notice: Oct 07 22:27:32 AuthServer: Login OK from NAS <127.0.0.1> CLID <>

Notice: Oct 07 22:27:32 AuthServer: Login OK from NAS <127.0.0.1> CLID <>

?Debug : Oct 07 22:27:32 AuthServer: Setting interim update interval from config

On successful authorization, on the server it is created a dedicated interface for the current subscriber:

ppp0 Link encap:Point-to-Point Protocol

inet addr:10.0.0.1 P-t-P:172.16.0.102 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1

RX packets:9 errors:0 dropped:0 overruns:0 frame:0

TX packets:9 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:3

RX bytes:133 (133.0 b) TX bytes:115 (115.0 b)



The article is protected by International Copyright Laws, and may not be copied, reprinted or published
without explicit permission of NetUP.


© 2007 NetUP Inc. All Right reserved.

+7 (495) 543-9220

info@netup.biz