IPv6 IPoE環境からNetworkManagerでIPv4 PPPoE接続するには

IPv6 IPoE接続した環境の中から、PPPoEパススルー機能を使用して、IPv4 PPPoE接続したい場合。

NetworkManagerではできなかった。という記録です。でもちゃんとできました。

NetworkManagerは、nmcliコマンドやnmtuiコマンドでネットワークを設定するアレです。

設定手順を記録させて頂こうと思います。

※23.9.24追記:1週間前、できなかったという記事で公開しましたが、その後、設定を調整してできるようになりました。

※23.9.30追記: PPPoE接続した場合、インターネットの接続をeth0ではなくppp0から行う設定を追加しました。


IPv6 IPoE環境からIPv4 PPPoE接続する場合の機器構成例

ONUがある場合、スイッチングハブで物理的にルータを2台、IPv6 IPoE用とIPv4 PPPoE用を接続する方法もありますが。

近年、ONUがIPv6 IPoEルータのSFP端子に内蔵されている傾向もあります。

IPv4 PPPoE接続は、ルータのPPPoEパススルー機能、またはPPPoEブリッジ機能を使用する構成になります。


Raspberry Pi 4 Rocky Linux 9にて検証

マシンは、Raspberry Pi 4のRocky Linux 9を使用しました。

Raspberry Pi 4でRocky Linux 9を起動してみました
Red Hat Linuxとバイナリ互換のあるOSとしまして、CentOS LinuxやCentOS Streamが挙げられますが。 ...

Rocky Linuxは、CentOSのようなRHEL互換のLinuxディストリビューションの1つになります。

まずは、dnfコマンドでOSを更新しました。


NetworkManagerのPPPoE設定例

NetworkManager-pppのインストール

コマンドで設定するのは難易度が高いため、TUI(Terminal User Interface)で設定しようと思います。

pppパッケージのほか、メニュー形式で設定が可能になるtuiをインストールしました。

sudo dnf install NetworkManager-ppp NetworkManager-tui

特に問題なくインストールできました。


nmtui-editによるPPPoEコネクション作成

PPPoEコネクションの作成は、nmtui-editコマンドを使用しました。Addメニューから

「DSL」を追加します。

  • Profile nameを「PPPoE」に変更
  • Username欄にIPv4 PPPoE接続のユーザ名を入力
  • Password欄にパスワードを入力
  • MTU欄に1454を入力(NTTさんのNGNまたは地域IP網を通ってPPPoE接続する場合)

※23.9.26追記:フレッツ網、NGN網を使用する場合は、ETHERNET→MTU欄に1454を入力します。パケットサイズを適正に設定することで、パケットの分割がなくなり通信の効率化に繋がります。

右下の<OK>を選択。

「PPPoE」コネクションが追加されました。タイプはpppoeになります。


PPPoEパススルーの確認

IPv6 IPoE接続しているルータの設定を確認します。

PPPoEパススルーを有効にすることで、IPv6 IPoE接続したネットワークの内側から、地域IP網またはNGNを経由したPPPoE接続が可能になります。


PPPoEコネクションの有効化はまだ

tuiから接続確認してみました。

※23.9.24追記:Activateせずに、この後の併用設定を行って下さい。先程作成した、PPPoEコネクションを有効にします。

はい。接続はされます。

しかし、PPPoEに接続した瞬間、「Wired connection 1」が使用できなくなります。

設定の調整が必要とわかりました。


NetworkManagerの既定の設定ではeth0とppp0の併用ができない

NetworkManagerが想定した、PPPoEの接続形態は

  • LAN端子(eth1):イントラネットへ接続
  • WAN端子(eth0):ONU(地域IP網またはNGN)に接続
    • ppp0接続専用

一方、やろうとしたことは。

  • eth1:なし
  • eth0:イントラネットとPPPoE接続、両方に使用
    • ONU(地域IP網またはNGN)への接続は、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つの設定を行います。

# PPPoE接続の親デバイスを指定
sudo nmcli connection modify PPPoE pppoe.parent eth0
# 親デバイスを使用するためppp0名前付け
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回の接続のみ有効になります。


マルチコネクト設定は既定

マルチコネクトの設定は既定から変えていませんが。

基本的に、ISP(インターネット・サービス・プロバイダ)のPPPoE接続は、1セッションの契約かと思います。複数セッションは、例外的に使用する感じでしょうか。

本当は、マルチコネクトの設定をSingleに変えたほうが良いのかもしれません。(試してない


PPPoE接続中のインターネット接続ルートを変更

※23.9.30追記

NetowrkManagerのmetricは、接続の順番を表しています。

既定では、下記の設定のようです。

  1. VPN=50
  2. Ethernet=100

作成したPPPoEコネクションを有効にしたところ。

defaultルート、つまりインターネットへ接続する経路が2つできて、PPPoE接続のmetricは460になりました。

接続の順番は、数値が小さい方が優先されます。このため、PPPoE接続した場合でも、既定のLAN側からインターネットに接続されます。

PPPoE接続中に、2つあるdefaultのPPPoE側を通るように。

  1. VPN=50
  2. PPPoE=80
  3. Ethernet=100

このような順序にしようと思います。

# PPPoE接続のデフォルトルートの優先度を80に設定
sudo nmcli c modify PPPoE ipv4.route-metric 80
sudo nmcli c s PPPoE

確認すると、このような感じになりました。


IPv4 PPPoE向けに設定を調整

接続・切断コマンド

# 接続
sudo nmcli connection up PPPoE
# 確認
ip address show dev ppp0
# 切断
sudo nmcli connection down PPPoE

nmcli c upコマンドで、PPPoE接続を有効にしました。

確かにppp0デバイスが作成されて、(私の場合)グローバルIPアドレスが割り当てられました。(割当られるIPアドレスはPPPoE接続先のISP契約により異なります

接続中は、デフォルトルート2がつになり、PPPoE接続側の優先度は80になります。

このため、インターネットへの接続ルートは、100のeth0ではなく80のppp0が使用される動きになりました。


Rocky Linux 9では既定の設定でppp0側からping応答とSSH接続可能

ファイアウォールの設定をしっかり確認してから、ppp0接続したほうが良いかもしれません。

わたしのおうち環境では、Rocky Linux 9既定の設定で、ppp0側のグローバルアドレスで、ssh接続ができてしまいました。

本格的にサーバホスティングやVPNサーバとして使用したい場合は、セキュリティ設定をしっかりと点検したほうが良さそうです。

※23.9.30追記:firewalldの設定手順をこの記事の最後に追記しました。


PPPoE設定ファイルの確認

設定の確認ですが。nmcliのshowコマンドを使うと、膨大な設定が表示されてしまいます。

sudo nmcli c show PPPoE

別の確認方法としまして。

nmcliまたはnmtuiコマンドでコネクションを作成した結果として、/etc/NetworkManager/system-connectionsディレクトリ内のファイルに、設定内容が格納されています。

このような内容になりました。

IPv6 IPoE環境の中からIPv4 PPPoE接続したい場合のポイントとしまして。

  1. connection.interface-name=ppp0
  2. ethernet.mtu=1454
  3. pppoe.parent=eth0
  4. ipv4.route-metric=80

このあたりが必要になる結果となりました。


firewalldの設定調整

firewalldの設定を確認したところ。

既定のpublicゾーンにppp0が割当られています。

そしてsshやpingの応答も可能になっていました。

ppp0はpublicではなくexternalゾーンに割り当てて、ssh接続はできないように設定しましょう。

# 既存の設定確認
sudo firewall-cmd --list-all
# ppp0をexternalに割当
sudo firewall-cmd --zone=external --change-interface=ppp0
sudo firewall-cmd --zone=external --change-interface=ppp0 --permanent
sudo firewall-cmd --list-all --zone=external
# ssh削除
sudo firewall-cmd --zone=external --remove-service="ssh"
sudo firewall-cmd --zone=external --remove-service="ssh" --permanent
sudo firewall-cmd --list-all --zone=external
# 設定反映
sudo firewall-cmd --reload

設定を確認して反映します。今後、ppp0側向けにサービスを公開したい場合は、externalゾーンのファイアウォール設定を変更すれば良い、ということになります。

ちなみにping応答、ICMPは既定の許可の状態から変えていません。ppp0のグローバルIPアドレスはpingに応答する動きですが、接続確認のためにこのままにしようと思います。


マシン起動時にPPPoE自動接続

PPPoEにてサーバをホスティングする使い方に備えまして。Raspberry Pi 4起動時にPPPoE接続するように設定します。

sudo nmcli c s PPPoE |grep autoconnect
sudo nmcli c m PPPoE connection.autoconnect yes
sudo nmcli c s PPPoE |grep autoconnect

connection.autoconnectをyesに設定しました。

実際にRaspberry Pi 4を再起動後、ppp0の状態を確認してみました。

再起動後すぐにppp0を確認しましたが、このように接続されていて、末尾「63.165」のグローバルIPアドレスが割り当てられています。

別記事のNo-IP 3 DUCによるIPアドレス登録も正常に行われて、ホスト名によりRaspbery Piへのアクセスが可能になりました。


というわけで。

IPv6 IPoE環境の中から、IPv4 PPPoE接続したい場合は、以前に作らせて頂いた2つの記事。

rp-pppoeを使用するパターン

Raspberry Pi 4のFedora 37でPPPoE接続するには
先日、Fedora 37 Serverのサポート対象として、Raspberry Pi 4が正式サポートされました。 またRaspber...

pppoeconfを使用するパターン

v6プラス環境からRaspberry Pi 4でIPv4 PPPoE接続するには
v6プラス(IPv6 IPoE)環境はインターネットアクセスが高速な反面、たとえば自宅サーバ公開や自宅VPN接続等、IPv6 IPo...

が依然有効のようです。

※23.9.24追記:

第3番目のパターンとして、NetworkManagerでもPPPoEパススルーを使用して、問題なくPPPoE接続できるようになりました。

もしも、NetworkManagerでPPPoE接続したい場合は、このあたりにご注意頂ければと思います。

スポンサーリンク

フォローする

スポンサーリンク