如何使用 netplan 配置 PPPoE?

如何使用 netplan 配置 PPPoE?

我想向工作文件中添加行,以便使用 创建的脚本01-netcfg-yaml自动连接接口。ppppppoeconf

但我找不到任何指南或示例。

我将非常感激有关如何做到这一点的“如何做”的帮助。

提前致谢。

答案1

我已经配置了运行 Ubuntu 的 PPPoE 路由器,使用 netplan 作为常规以太网接口,并直接使用 systemd 作为 PPPoE 接口。

对于 PPP 部分,我完全将 PPPoE 接口从 netplan 中移除,并创建了一个/etc/systemd/system/ppp.service如下文件。ens7是我的接口,它连接到我的 PPPoE 调制解调器,您需要根据自己的情况进行更改(每次发生)。我还通过将 MTU 设置为 1508 来使用小型巨型帧。如果您的 NIC 或 ISP 无法处理这种情况,那么您应该删除该行:

[Unit]
BindsTo=sys-subsystem-net-devices-ens7.device
After=sys-subsystem-net-devices-ens7.device

[Service]
ExecStartPre=/sbin/ip link set mtu 1508 dev ens7
ExecStartPre=/sbin/ip link set up dev ens7
ExecStart=/usr/sbin/pppd call provider
Type=forking
SuccessExitStatus=5
PIDFile=/run/ppp-pppoe.pid

[Install]
WantedBy=sys-subsystem-net-devices-ens7.device

我的/etc/ppp/peers/provider看起来像这样。再次强调,ens7是我的 PPPoE 接口;您需要将其更改为您自己的接口,以及my_username_with_my_isp。如果您的硬件(或 ISP)无法处理小型巨型帧,并且您删除了上面的 mtu 行,则还要将下面的mtu和更改为 1492。我还在这里启用了 ipv6。如果您希望使用 ISP 提供的 DNS 服务器(而不是静态配置它们),mru请添加。usepeerdns

user my_username_with_my_isp
plugin rp-pppoe.so
ens7
noipdefault
defaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
noauth
persist
maxfail 0
mtu 1500
mru 1500
noaccomp
default-asyncmap
+ipv6
linkname pppoe

我的看起来像这样。如果您的 ISP 不支持 CHAP,/etc/ppp/chap-secrets您可能需要使用。/etc/ppp/pap-secrets

* * my_password_with_my_isp

在 18.04 上将所有内容放在一起:

  1. 安装该ppp包。

  2. 创建/编辑/etc/systemd/system/ppp.service/etc/ppp/peers/provider/etc/ppp/chap-secrets如上所述。

  3. 运行sudo systemctl daemon-reloadsudo systemctl enable ppp然后sudo systemctl start ppp

  4. 使用systemctl status ppp和查看/var/log/syslogPPP 状态。

答案2

如果您愿意进行一些修补,那么有一个选择。 networkd-dispatcher可以帮助您运行自己的脚本来执行您需要的操作,并且大致遵循 /etc/network/ 中脚本的语法。

https://github.com/craftyguy/networkd-dispatcher

此外,这现在已被 Bionic (18.04) 的“universe”存储库所接受:

https://launchpad.net/ubuntu/+source/networkd-dispatcher/1.7-0ubuntu1

# Install
sudo apt install networkd-dispatcher

# Documentation
man networkd-dispatcher

相关内容