PPPoEパススルー機能を使用して。
IPv4 PPPoE接続したい場合。
NetworkManagerではできなかった。という記録です。でもちゃんとできました。
※23.9.24追記:1週間前、できなかったという記事で公開しましたが、その後、設定を調整してできるようになりました。
目次
NetworkManagerのPPPoE設定例
NetworkManagerでPPPoE接続したい場合の手順です。
Raspberry Pi 4 Rocky Linux 9の更新
マシンは、Raspberry Pi 4のRocky Linux 9を使用しました。
dnfコマンドでOSを更新しました。
NetworkManager-pppのインストール
pppパッケージのほか、メニュー形式で設定が可能になるtuiをインストールしました。
sudo dnf install NetworkManager-ppp NetworkManager-tui
nmtui-editによるPPPoEコネクション作成
PPPoEコネクションの作成は、nmtui-editコマンドを使用しました。Addメニューから
- Profile nameを「PPPoE」に変更
- Username欄にIPv4 PPPoE接続のユーザ名を入力
- Password欄にパスワードを入力
- MTU欄に1454を入力
※23.9.26追記:フレッツ網、NGN網を使用する場合は、ETHERNET→MTU欄に1454を入力します。パケットサイズを適正に設定することで、パケットの分割がなくなり通信の効率化に繋がります。
PPPoEパススルーの確認
IPv6 IPoE接続しているルータの設定を確認します。
PPPoEパススルーを有効にすることで、IPv6 IPoE接続したネットワークの内側から、地域IP網またはNGNを経由したPPPoE接続が可能になります。
PPPoEコネクションの有効化
※23.9.24追記:Activateせずに、この後の併用設定を行って下さい。
先程作成した、PPPoEコネクションを有効にします。
はい。接続はされます。
しかし、PPPoEに接続した瞬間、「Wired connection 1」が使用できなくなります。
NetworkManagerの既定の設定では、eth0とppp0の併用ができない?
NetworkManagerが想定した、PPPoEの接続形態は
- eth0をWAN端子として使用する、つまりONU(地域IP網またはNGN)に接続する
- eth1等、イントラネットは別のデバイス経由で接続
- ppp0接続すると、eth1からppp0、つまりIPv4 PPPoEネットワークに接続可能となる。
- eth0であるWAN端子は、ppp0接続専用。
一方、やろうとしたことは。
- eth0はイントラネットで使用。
- ONU(地域IP網またはNGN)への接続は、eth0を経由して、PPPoEパススルー(トンネル)を使用する。
- ppp0接続した後でも、eth0はイントラネットへの接続で使用したい
- しかし、NetworkManagerは、ppp0接続すると、eth0はWAN端子として稼働し、使用できなくなる。
という感じでしょうか。
※23.9.24追記:このあとの併用の設定を行えば、eth0経由でppp0設定できるようになりました。
NetworkManagerでeth0とppp0を併用する設定
※23.9.24追記
こちらの公式マニュアルを参考にさせて頂きました。
PPP-over-Ethernet Settingとして、pppoe.parentという設定項目があります。
こちらが、ppp接続を行う場合のインタフェースの指定のようです。こちらにeth0を指定したいと思います。
またマニュアルには、こちらを使用する場合は、「NMSettingConnectionのinterface-name」を記述するように記載があります。
というわけで、その2つの設定を行います。
sudo nmcli connection modify PPPoE pppoe.parent eth0
sudo nmcli connection modify PPPoE connection.interface-name ppp0
sudo nmcli c show PPPoE |grep pppoe.parent
sudo nmcli c show PPPoE |grep connection.interface-name
PPPoEのセッションは必ず1つにする必要があります。
既定では、1回の接続のみ有効になります。(Singleに変えても良いのかも?
PPPoE接続
# 接続
sudo nmcli connection up PPPoE
# 確認
ip address show dev ppp0
# 切断
sudo nmcli connection down PPPoE
nmcli c upコマンドで、PPPoE接続を有効にしました。
確かにppp0デバイスが作成されて、(私の場合)グローバルIPアドレスが割り当てられました。(割当はPPPoE接続先のISP契約により異なります
PPPoE設定の確認
nmcliまたはnmtuiコマンドでコネクションを作成した結果として、/etec/NetworkManager/system-connectionsディレクトリ内のファイルに、設定内容が格納されています。
しかしこれは結果であり、このファイルを編集しても、設定は変更できません。
nmtuiコマンドでは、pppoe.parent等の細かい設定はできませんでした。
どうしてもnmcliコマンドで設定を行う必要があると思います。
sudo nmcli c show PPPoE
このあたりの設定の難易度は、たとえばCockpit等のWeb系管理ツールで、細かい設定が可能なGUIの提供を待つ感じでしょうか。(確認していないだけで、既に提供されてる?
※23.9.26追記:ethernet.mtu、pppoe-parent、connection.interface-nameを設定した場合のPPPoE.nmconnectionファイルはこのような内容になりました。
というわけで。
IPv6 IPoE環境の中から、IPv4 PPPoE接続したい場合は、以前に作らせて頂いた2つの記事。
rp-pppoeを使用するパターン
pppoeconfを使用するパターン
が依然有効のようです。
※23.9.24追記:第3番目のパターンとして、NetworkManagerでもPPPoEパススルーを使用して、問題なくPPPoE接続できるようになりました。
もしも、NetworkManagerでPPPoE接続したい場合は、このあたりにご注意頂ければと思います。