Tech Note Plus

PC から Azure まで幅広い伝道を目指してます

OpenWrt で固定 IPv4 on IPv6 のインターネット接続をする

この記事では OpenWrt のインターネット接続設定を記載しています。既に OpenWrt の基本設定は以下の記事にて完了しています。 cube309b.hatenablog.com

ネットワーク接続図

改めて今回目指す接続図を示します。なお、この時点では LAN 側のケーブルのみ接続した状態です。

インターフェースと通信図

今回は、LAN、WAN、WAN6 の 3 つのインターフェイスの設定を行ってインターネットに接続します。

インターフェイスの整理とインターネット接続

IPIP パッケージの取得と手動アップデート

ここまで連載しておいてなんですが、OpenWrt の公式モジュールだけでは固定 IPv4 on IPv6 は実装できません。 そのため、有志の方が作られたモジュールを取り込む必要があります。

github.com

上記のサイトを用いて自分でビルドしたり ipk ファイルを作成するのも良いですが、私は以下のブログのお力を借りました。 以下のブログ内で ipk の作り方を記載してくれてます。

akashisn.hatenablog.com

残念ながら OpenWrt 上では tar コマンドに失敗するようなので、私は WSL 上での作成成功を確認しました。 (--numeric-owner --group=0 --owner=0 なので権限といえば権限問題で無視ができるのかもしれませんが・・・) 今度再インストールするときには作った方のモジュールでも試してみようと思います。

  1. [システム]-[ソフトウェア] パッケージをアップロードを押します。
  2. 前項で作成した ipip6_0.1_all.ipk ファイルを選択した上で、アップロードを押します。
  3. 警告はそのまま、インストールを押します。
  4. パッケージが読み込まれるので、閉じるを押します。
  5. [システム]-[再起動] 再起動するを押します。
eth3 を WAN6 インターフェースに割り当て

まずは未使用の eth3 を WAN6 インターフェースに割り当てます。

[ネットワーク]-[インターフェース]-[インターフェース]-[WAN6 (編集)] バイスeth3 に変更し、保存 → 保存&適用します。

br-lan デバイスの再定義

元 WAN6 インターフェースに割り当てられていた eth1 を含めて eth0-eth2 を br-lan デバイスとして定義します。これで eth0-2 はスイッチングハブのように利用できるようになります。

[ネットワーク]-[インターフェース]-[デバイス]-[br-lan (設定)]-[デバイスの一般オプション] ブリッジポートeth0-eth2 に変更し、保存 → 保存&適用します。

LAN インターフェース設定変更 (IPv6 をリレーする設定等)

ルーター配下の LAN 内のデバイスIPv6 通信するためには、WAN6 インターフェースが上位 VNE から受け取った IPv6 の情報をリレーしなければなりません。

  1. [ネットワーク]-[インターフェース]-[インターフェース]-[LAN (編集)]-[詳細設定] IPv6 割り当て長無効に変更し、保存します。
  2. 【任意】[ネットワーク]-[インターフェース]-[インターフェース]-[LAN (編集)]-[DHCP サーバー]-[一般設定] リースアドレスなどを自宅に合わせます。変更したら保存で。
    初見ではよくわからなかったのですが、
     開始 = リース範囲の最初の第四オクテットアドレス (セグメントは LAN インターフェースになる)
     制限 = そこから何個の範囲でアドレスを払い出すか
    という意味のようです。

    要素
    LAN インターフェースのセグメント 192.168.1.0 (/24)
    開始 50
    制限 20

    の場合、DHCP でリースされるアドレスは、192.168.1.50 から 20 個の範囲ということです。 わかりづらいです。。。

  3. [ネットワーク]-[インターフェース]-[インターフェース]-[LAN (編集)]-[DHCP サーバー]-[IPv6 設定] 以下の通りに設定し、保存 → 保存&適用します。

    要素
    RA-Service リレーモード
    DHCPv6-サービス サーバーモード
    NDP プロキシ リレーモード

WAN6 インターフェース設定変更 (IPv6 をリレーする設定等)

ルーター配下の LAN 内のデバイスIPv6 で通信するためには、ここで VNE から IPv6 の情報を受け取って内部にリレーさせなければなりません。

  1. [ネットワーク]-[インターフェース]-[インターフェース]-[WAN6 (編集)]-[DHCP サーバー]-[IPv6 設定] 以下の通りに設定し、保存 → 保存&適用します。

    要素
    Designated master チェック
    RA-Service リレーモード
    DHCPv6-サービス リレーモード
    NDP プロキシ リレーモード

  2. SSH で OpenWrt に接続し、プロバイダーから提示された ID を付与します。「::」は消してはいけないのでお間違えないように。なお、この作業は GUI では行えません。

    uci set network.wan6.ifaceid="::プロバイダーから提示された ID"
    uci commit network
WAN インターフェース設定変更 (IPv4 を固定する設定等)

今回の構成では、OpenWrt の既定の WAN インターフェース (DHCP クライアント) は不要です。そのため、インターフェースのガワだけ流用して中身を IPv4 のトンネルインターフェースに書き換えます。

  1. [ネットワーク]-[インターフェース]-[インターフェース]-[WAN (編集)]-[一般設定] プロトコルIPv4 over IPv6 (ipip6) に変更し、プロトコルを切り替えるを押します。 続けて、Tunnel remote IPv6 address、Your global IPv4 address にプロバイダーから提示された値を設定し、保存します。
  2. [ネットワーク]-[インターフェース]-[インターフェース]-[WAN (編集)]-[詳細設定] トンネルインターフェースでMTUを使用1460 に変更し、保存 → 保存&適用します。
仕上げの再起動

これで設定はすべて完了したので、OS を再起動してください。

切り替え

一時的な設定を解除して入れ替えのためにシャットダウン

後は eth3 に ONU からの LAN ケーブルを差せばインターネット接続できます。 現行のルーターと切り替えるために、一度 LAN から切り離した上でコンソールケーブルで以下を実施します。

  • LAN インターフェース上の DHCP サーバー機能を有効化します
  • LAN インターフェースの IP アドレスを現行のルーターと同じ値に変更します
  • LAN インターフェースのデフォルトゲートウェイの値を削除します
  • LAN インターフェースの DNS 参照先を削除します
  • 入れ替えのためにシャットダウンします
uci delete dhcp.lan.ignore
uci commit dhcp
uci set network.lan.ipaddr="現行のルーターの IP アドレス"
uci delete network.lan.gateway
uci delete network.lan.dns
uci commit network
poweroff
現行のルーターとそっくり入れ替えて動作確認

確認君+(Plus) にアクセスして IPv6 の通信が通っていることや IPv4 のアドレスがプロバイダー提示のものであることなどを確認してください。

最終的な各インターフェースの状況

最終的に各インターフェースがどう見えるかの参考にしてください。このあと語る予定の OpenVPNIPsec VPN のインターフェースも含まれています。

OpenWrt のインターネット接続設定を終えて

こうして OpenWrt を使って固定 IPv4 でインターネットができるようになりました。 VPN に興味がなければここで完了になります。お疲れさまでした。

OpenVPN を用いてリモートアクセス環境を構築する場合は、次節に続いていきます。 cube309b.hatenablog.com


Note
・ 当ブログは個人主催であり、ブログ中のすべての情報は個人的な観点となります。
・ 情報については正確な内容となるよう努めますが、完全性や正確性、有用性、安全性、最新性について一切保証できかねます。