pppoeセッションをsystemdに任せる [v6プラス]
v6プラスを用いて自宅サーバを運用する場合、ipv4用に独自のpppoeセッションを張ることでipv4の任意のポートをlistenできるようになる。debianのサーバにて、今まで/etc/network/interfacesにpppoeセッションを記述してきたが、ネットワークインターフェース(NIC)の管理をsystemdで行うことが有力かつ一般的になってきたので、pppoeセッションもsystemdに任せる設定を行ってみた。以下、その方法について説明する。
まず、pppoeを通常の方法で接続できるように設定する。これは、pppoeconfパッケージに入っているpppoeconfというプログラムを用いる。pppoeconfを起動すると質問形式に答える形で設定ファイルが作成される。プロバイダーから指定されるppp接続のアカウントIDとパスワードや、pppoe接続に用いるネットワークインターフェース(NIC)を指定する。デフォルトで作成される接続名は、dsl-connectである。
pppoeの設定ファイルは、/etc/pppディレクトリの下に作成される。
/etc/ppp/options ppp接続オプションのデフォルト
/etc/ppp/peers 個別のppp接続のスクリプトが接続名ごとのファイルになっている
/etc/ppp/pap-secrets pap方式のIDごとのパスワード
/etc/ppp/chap-secrets chap方式のIDごとのパスワード
pppoeは、pppと同様の仕組みで動作することから、pppの設定ファイルが用いられるわけである。
pon 接続名で接続できるので、pppoeconfで作成した接続名dsl-connectを用いて接続できることを確認する。
systemdは、各種ネットワークインターフェースの管理に用いることができるが、pppのための仕組みは用意されていなく、*.networkファイルによってpppoeの設定が行えない。
そのため、次の2つを行う。
1. ppp接続スクリプトを改変し、systemdが監視できるようにする。
ppp接続スクリプトにnodetachを加え、ppp接続プロセスがdetachすることを避ける。
これにより、systemdの起動スクリプトを簡素化することができる。
https://github.com/systemd/systemd/issues/481#issuecomment-640060544
2. systemd用のserviceファイルを作成する。
次のファイルを作成した。
/etc/systemd/system/pppoe-client.service
参考文献
https://wiki.debian.org/PPPoE
https://github.com/Distrotech/rp-pppoe/
https://tex2e.github.io/rfc-translater/html/rfc2516.html
https://github.com/systemd/systemd/issues/481
https://enakai00.hatenablog.com/entry/20130914/1379146157
まず、pppoeを通常の方法で接続できるように設定する。これは、pppoeconfパッケージに入っているpppoeconfというプログラムを用いる。pppoeconfを起動すると質問形式に答える形で設定ファイルが作成される。プロバイダーから指定されるppp接続のアカウントIDとパスワードや、pppoe接続に用いるネットワークインターフェース(NIC)を指定する。デフォルトで作成される接続名は、dsl-connectである。
pppoeの設定ファイルは、/etc/pppディレクトリの下に作成される。
/etc/ppp/options ppp接続オプションのデフォルト
/etc/ppp/peers 個別のppp接続のスクリプトが接続名ごとのファイルになっている
/etc/ppp/pap-secrets pap方式のIDごとのパスワード
/etc/ppp/chap-secrets chap方式のIDごとのパスワード
pppoeは、pppと同様の仕組みで動作することから、pppの設定ファイルが用いられるわけである。
pon 接続名で接続できるので、pppoeconfで作成した接続名dsl-connectを用いて接続できることを確認する。
systemdは、各種ネットワークインターフェースの管理に用いることができるが、pppのための仕組みは用意されていなく、*.networkファイルによってpppoeの設定が行えない。
そのため、次の2つを行う。
1. ppp接続スクリプトを改変し、systemdが監視できるようにする。
ppp接続スクリプトにnodetachを加え、ppp接続プロセスがdetachすることを避ける。
これにより、systemdの起動スクリプトを簡素化することができる。
https://github.com/systemd/systemd/issues/481#issuecomment-640060544
2. systemd用のserviceファイルを作成する。
次のファイルを作成した。
/etc/systemd/system/pppoe-client.service
[Unit] Description=PPPoE Client on eno1 Requires=sys-subsystem-net-devices-eno1.device After=sys-subsystem-net-devices-eno1.device [Service] Type=simple ExecStart=/usr/sbin/pppd call dsl-provider Restart=always StandardOutput=null [Install] WantedBy=network-pre.target
参考文献
https://wiki.debian.org/PPPoE
https://github.com/Distrotech/rp-pppoe/
https://tex2e.github.io/rfc-translater/html/rfc2516.html
https://github.com/systemd/systemd/issues/481
https://enakai00.hatenablog.com/entry/20130914/1379146157
2022-01-23 15:35
nice!(0)
コメント(0)
コメント 0