ppp
によって作成されたスクリプトを使用して、インターフェイスをpppoeconf
に自動的に接続するために、作業中の01-netcfg-yaml
ファイルに行を追加します。
しかし、ガイドや例が見つかりません。
これを行うための「ハウツー」ヘルプをいただければ幸いです。
前もって感謝します。
あなたがいじくり回して喜んでいるならオプションがあります。 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インターフェイスにはsystemdを直接使用して、Ubuntuを実行するPPPoEルーターを構成しました。
PPP部分では、PPPoEインターフェイスをネットプランから完全に除外し、次のように/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
およびmru
も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にすべてをまとめるには:
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
を実行します。
PPPステータスには、systemctl status ppp
を使用し、/var/log/syslog
を表示します。