如何使用netplan配置PPPoE?

我想在工作的01-netcfg-yaml文件中添加行,以使用pppoeconf创建的脚本自动将接口连接到ppp

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

我非常感谢“howto”帮助做到这一点。

提前致谢。

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

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

此外,现在在“宇宙”存储库中接受了Bionic(18.04):

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

 # Install sudo apt install networkd-dispatcher # Documentation man networkd-dispatcher 

我已经使用netplan配置我的PPPoE路由器运行Ubuntu用于常规以太网接口,并直接使用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行,那么也将mtumru更改为1492.我也在这里启用ipv6。 如果您希望使用ISP提供的DNS服务器(而不是静态配置它们),请添加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 

我的/etc/ppp/chap-secrets看起来像这样。 如果您的ISP不支持CHAP,您可能需要使用/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/syslog以获取PPP状态。