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 地址范围。这可以是一个 IP 地址范围,如 X.X.X.Y-Z,或者以 CDIR 格式,如 X.X.X.X/MASK。
接下来,我们添加一个最简化的 /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 场景中,当 802.1X 或 MACsec 是不希望采用的选项时,例如允许客户自有路由器或静态 IP 地址。现在您就是自己的迷你 ISP,恭喜您!
作者:Neel Chauhan