accel-ppp PPPoE 服务器¶
简介¶
PPPoE 是一种主要由 DSL 和光纤到户 ISP 使用的协议,客户使用用户名和密码组合进行身份验证。PPPoE 用于那些需要现有 ISP 与其他 ISP 共享网络的国家,因为可以通过域名将客户路由到所需的 ISP。
accel-ppp 是 Linux 内核加速的 PPPoE 和相关协议(如 PPTP、L2TP 等)的实现。
先决条件¶
- 具有两个网络接口的服务器
- 使用 PPPoE 的客户端路由器或机器
安装 accel-ppp¶
首先安装 EPEL
dnf install -y epel-release
随后,安装 accel-ppp
dnf install -y accel-ppp
设置 accel-ppp¶
首先,我们需要启用 IP 转发
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
然后,将以下内容添加到 /etc/accel-ppp.conf
[modules]
log_file
pppoe
auth_mschap_v2
auth_mschap_v1
auth_chap_md5
auth_pap
chap-secrets
ippool
[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4
[ppp]
ipv4=require
[pppoe]
interface=YOUR_INTERFACE
[dns]
dns1=YOUR_DNS1
dns2=YOUR_DNS2
[ip-pool]
gw-ip-address=YOUR_GW
YOUR_IP_RANGE
[chap-secrets]
gw-ip-address=YOUR_GW
chap-secrets=/etc/chap-secrets
替换以下信息
- YOUR_INTERFACE 为监听 PPPoE 客户端的接口。
- YOUR_DNS1 和 YOUR_DNS2 为要分发给客户端的 DNS 服务器。
- YOUR_GW 是 PPPoE 客户端的服务器 IP 地址。这**必须**与服务器的 WAN 面向 IP 地址或默认网关不同。
- YOUR_IP_RANGE 为要分发给客户端的 IP 范围。这可以是像 X.X.X.Y-Z 这样的 IP 范围,也可以是像 X.X.X.X/MASK 这样的 CDIR 格式。
随后,让我们添加一个简化的 /etc/chap-secrets
文件
user * password *
您可以通过用所需用户名和密码替换 user
和 password
来添加更多具有其他行的用户。
配置 PPPoE 客户端¶
设置好 PPPoE 服务器后,我们就可以开始添加 PPPoE 客户端。作者喜欢使用 MikroTik CHR 作为他们的首选测试 PPPoE 客户端,因此我们将使用它。
一旦我们将 MikroTik CHR 安装到与 PPPoE 服务器的监听接口连接到同一个以太网网络的系统上,我们将配置 PPPoE
[admin@MikroTik] > /interface pppoe-client
[admin@MikroTik] > add add-default-route=yes disabled=no interface=ether1 name=pppoe-out1 \
password=password user=user
如果一切正常,我们应该获得一个 IPv4 地址
[admin@MikroTik] > /ip/address/print
Flags: D - DYNAMIC
Columns: ADDRESS, NETWORK, INTERFACE
# ADDRESS NETWORK INTERFACE
0 D 10.0.0.1/32 10.0.0.0 pppoe-out1
结论¶
PPPoE 通常名声不好,原因也很容易理解:您需要手动配置用户名和密码。尽管如此,它在连接到 ISP 场景中的第 2 层广播域时可以提供安全性,在这些场景中,要求 802.1X 或 MACsec 并不理想,例如允许客户拥有的路由器或静态 IP 地址。现在您就是您自己的小型 ISP,恭喜!
作者:Neel Chauhan