Я хочу добавить строки в рабочий файл 01-netcfg-yaml
, чтобы автоматически подключить интерфейс к ppp
, используя скрипт, созданный pppoeconf
.
Но я не могу найти какие-либо руководства или примеры.
Я был бы очень признателен за «помощь», чтобы сделать это.
Спасибо заранее.
Есть вариант, если вы счастливы немного поработать. 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
Я настроил свой маршрутизатор PPPoE, работающий под управлением Ubuntu, используя netplan для обычного интерфейса Ethernet и напрямую используя systemd для интерфейса PPPoE.
Для части PPP я полностью исключил интерфейс PPPoE из netplan и создал файл /etc/systemd/system/ppp.service
следующим образом. ens7
- это мой интерфейс, который подключен к моему модему PPPoE, который вам необходимо изменить (каждый раз) для вашего случая. Я также использую кадры baby jumbo, устанавливая свой MTU на 1508. Если ваш сетевой адаптер или интернет-провайдер не может с этим справиться, то вам следует удалить эту строку:
[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
My /etc/ppp/peers/provider
выглядит следующим образом. Опять же, ens7
- это мой интерфейс PPPoE; вам нужно изменить его на свой ниже, вместе с my_username_with_my_isp
. Если ваше оборудование (или интернет-провайдер) не может обрабатывать кадры baby jumbo, и вы удалили строку mtu выше, то также измените mtu
и mru
ниже на 1492. Я также включаю здесь ipv6. Добавьте usepeerdns
, если хотите, чтобы используемые DNS-серверы вашего интернет-провайдера использовались (вместо того, чтобы настраивать их статически).
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
выглядит следующим образом. Возможно, вам придется использовать /etc/ppp/pap-secrets
вместо этого, если ваш провайдер не поддерживает CHAP.
* * my_password_with_my_isp
Чтобы собрать все вместе 18.04:
Установите пакет ppp
.
Создайте / отредактируйте /etc/systemd/system/ppp.service
, /etc/ppp/peers/provider
и /etc/ppp/chap-secrets
, как указано выше.
Выполнить sudo systemctl daemon-reload
, sudo systemctl enable ppp
, а затем sudo systemctl start ppp
.
Используйте systemctl status ppp
и просмотрите /var/log/syslog
для статуса PPP.