PPPoE Setup with pppd
From ArchWiki
| i18n |
|---|
| English |
| Русский |
This page explains how to set up a PPPoE connection using pppd and the kernel PPPoE driver. Note that this setup does not need rp-pppoe. ( With rp-pppoe you can have only one account configuration, however, using the method described below, you can have several account configurations at the same time and use anyone of them easily. Besides the dial speed of pppd is much faster than pppoe-start. )
[edit] Configuration
- Make sure pppd is installed and your kernel is compiled with PPPoE support
$ pacman -Q ppp ppp 2.4.3-1
$ zgrep CONFIG_PPPOE /proc/config.gz CONFIG_PPPOE=m
- Create the configuration file
/etc/ppp/peers/pppoe
# /etc/ppp/peers/pppoe plugin rp-pppoe.so # rp_pppoe_ac 'your ac name' # rp_pppoe_service 'your service name' # network interface eth0 # login name name "someloginname" usepeerdns persist # Uncomment this if you want to enable dial on demand #demand #idle 180 defaultroute hide-password noauth
If you want usepeerdns to work, you have to edit your /etc/ppp/ip-up and add a command that copies /etc/ppp/resolv.conf to etc/resolv.conf.
- Edit
/etc/ppp/pap-secrets
Put a line like this in /etc/ppp/pap-secrets
someloginname * yourpassword
You can now start the link using the command
pppd call pppoe
Alternatively, you can use this
pon pppoe
If you want to make the "pppoe" configuration file the default one, just creat a link /etc/ppp/peers/provider point to the default one and then call
pon
To close a pppoe connection, use this
poff pppoe
[edit] Starting pppd with Arch
- Create a symlink to
/etc/ppp/peers/provider
ln -s pppoe /etc/ppp/peers/provider
- Make sure ppp module is loaded
If ppp support is compiled as a module, you have to load the ppp_generic module. In this case, add this to rc.conf:
MODULES=(... ppp-generic ...)
- Add ppp to DAEMONS in
/etc/rc.conf
DAEMONS=(... ppp ...)
[edit] Troubleshooting
If you have a preconfigured default route before the pppd is started, the default route is kept, so take a look in /var/log/errors.log and if you have something like:
pppd[nnnn]: not replacing existing default route via xx.xx.xx.xx
and xx.xx.xx.xx is not the correct route for you
- Create a new script
/etc/ppp/ip-pre-up
$ chmod +x /etc/ppp/ip-pre-up
with this content:
#!/bin/sh /sbin/route del default
- Restart pppd:
$ /etc/rc.d/ppp restart