網路上找到的範例都有缺, 主要是缺 pppoe kernel module 的部份, 也不會很難, 在 Ubuntu 18.04 下需要上個 patch 修掉 compile bug.
以下假設各位用 root 跑 (我好懶)
Download RP-PPPoE
$ apt-get remove pppoe
$ apt-get install ppp ppp-dev pppoeconf
$ wget https://dianne.skoll.ca/projects/rp-pppoe/download/rp-pppoe-3.13.tar.gz
$ tar xvzf rp-pppoe-3.13.tar.gz
$ cd rp-pppoe-3.13/src
$ wget https://www.roaringpenguin.com/files/download/rp-pppoe-3.12.tar.gz
$ tar zxvf rp-pppoe-3.12.tar.gz
$ cd rp-pppoe-3.12/src
Apply Patch (3.13 fixed this problem)
依照下面的文字 patch rp-pppoe 的 source code
--- a/pppd/plugins/rp-pppoe/plugin.c 2016-11-29 15:39:09.289843383 +0530
+++ b/pppd/plugins/rp-pppoe/plugin.c 2016-11-29 15:39:22.659843111 +0530
@@ -49,6 +49,8 @@
#include <net/ethernet.h>
#include <net/if_arp.h>
#include <linux/ppp_defs.h>
+#define _LINUX_IN_H
+#define _LINUX_IN6_H
#include <linux/if_pppox.h>
#ifndef _ROOT_PATH
Compile rp-pppoe and install
$ ./configure
$ make
$ make rp-pppoe.so
$ make install
Configure file /etc/ppp/pppoe-server-options
# PPP options for the PPPoE server
# LIC: GPL
require-pap
#login
auth
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 192.168.1.254
logfile /var/log/pppd.log
plugin /etc/ppp/plugins/rp-pppoe.so
Password file /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
"user1" * "123456" *
Setting NAT
$ echo 1 > /proc/sys/net/ipv4/ip_forward
$ iptables -A POSTROUTING -t nat -o ens33 -j MASQUERADE
Running PPPoE Server
example
$ pppoe-server -I ens34 -L 10.10.10.1 -R 10.10.10.100 -N 100
-I interface name
-L client’s gateway ip。
-R client start ip address
-N allow users
In syslog file, it should have rp-pppoe.so loaded keyword
Jun 29 00:21:01 TEST1804-1 pppoe[2106]: read (asyncReadFromPPP): Session 1: Input/output error
Jun 29 00:21:24 TEST1804-1 pppoe-server[5992]: Session 1 created for client 02:0f:b7:81:00:01 (10.10.10.100) on ens34 using Service-Name ''
Jun 29 00:21:24 TEST1804-1 pppd[5992]: Plugin /etc/ppp/plugins/rp-pppoe.so loaded.
Jun 29 00:21:24 TEST1804-1 pppd[5992]: RP-PPPoE plugin version 3.12 compiled against pppd 2.4.7
Jun 29 00:21:24 TEST1804-1 pppd[5992]: pppd 2.4.7 started by richliu, uid 0
Jun 29 00:21:24 TEST1804-1 pppd[5992]: Using interface ppp0
Jun 29 00:21:24 TEST1804-1 pppd[5992]: Connect: ppp0 <--> /dev/pts/4
Jun 29 00:21:24 TEST1804-1 systemd-udevd[5995]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Jun 29 00:21:27 TEST1804-1 pppd[5992]: PAP peer authentication succeeded for user1
ref.
[SOLVED] Conflict between kernel and glibc headers when compiling PPP
Set up PPPoE Server on Ubuntu
Ubuntu pppoe server
發佈留言