作業中のメモ

よく「計算機」を使って作業をする.知らなかったことを中心にまとめるつもり.

IPv4 と IPv6 の併用環境下におけるルーティング情報の設定

どうも,筆者です.

最近,v6プラスを導入した.v6プラスの導入により,ルータに搭載されている VPN サーバ機能が利用できなくなった.このため,IPv4 のネットワークを構築し,VPN 環境を作成する方針とした. ここまでは良かったのだが,IPv4 から IPv6 のネットワークにアクセスできない.ネットワークが異なるため,アクセスできないのは当然であるが,これでは非常に不便である.

ここでは,構築した IPv4IPv6 の併用環境下において,IPv4 のネットワークから IPv6 のネットワーク上のサーバにアクセスできるように設定を行う.

前提

ネットワーク構成

IPv4IPv6 のネットワークを以下に示す.ここで,Router A は,IPv6 のネットワークが,Router B は,IPv4 のネットワークが構築されているものとする.また,PC のデフォルトゲートウェイは,Router B,Raspberry Piデフォルトゲートウェイは,Router A に設定されているものとする.

ネットワーク構成

ネットワーク機器の設定情報

  • 192.168.0.x(IPv6)側の設定
対象機器 NIC IP アドレス
Router A - 192.168.0.1
Raspberry Pi X eth0 192.168.0.3
Raspberry Pi Y eth0 192.168.0.5
  • 192.168.100.x(IPv4)側の設定
対象機器 NIC IP アドレス
Router B - 192.168.100.1
Raspberry Pi Y eth1 192.168.100.5
PC eth0 192.168.100.10

目的

ここでは,以下に示すように,PC から Router B,Raspberry Pi Y,Router A を経由し,Raspberry Pi X 内にある IRC サーバにアクセスする場合を考える.

通信経路

通信のための設定

目的に示した通信を実現するためには,以下の 2 点について設定を行う.

  1. Router B におけるルーティング情報の登録
  2. Raspberry Pi X におけるルーティング情報の登録

Router B におけるルーティング情報の登録

Router B の設定画面を開き,「Static Route」や「静的経路情報」の設定画面を開く.その設定画面で,以下の情報を追加後,設定を有効にする.

項目 内容
Destination IP 192.168.0.0
Subnet Mask 255.255.255.0
Next Hop 192.168.100.5
Interface LAN
Metric 0

上記の設定の意味としては,「192.168.0.0/24 宛のパケットを 192.168.100.5 に渡す」という内容になる.

これにより,PC から Raspberry Pi X 宛の通信は,PC -> Router B -> Raspberry Pi Y -> Router A -> Raspberry Pi X の順に渡されることになる.

ただ,このままでは,Raspberry Pi X は,192.168.100.0/24 からの通信をどこに渡せばよいかが分からない.すなわち,応答時のルーティング情報がないため,応答が返ってこない状態となる.

Raspberry Pi X におけるルーティング情報の登録

今度は,Raspberry Pi X に 192.168.100.0/24 宛の通信のルーティング情報を登録する.

Raspberry Pi X において,以下のコマンドを実行し,ルーティングテーブルを更新する.

sudo ip route add 192.168.100.0/24 via 192.168.0.5 dev eth0

上記の意味としては,「192.168.100.0/24 宛のパケットを 192.168.0.5 に渡す」という内容になる.

ただし,このままでは再起動後に設定内容が消えてしまうため,/lib/dhcpcd/dhcpcd-hooks/40-route というファイルを作成し,以下の内容を書き込む.

ip route add 192.168.100.0/24 via 192.168.0.5 dev eth0

以上で,設定は完了となる.一部,理解できていない部分もあるが現時点で期待通りの動作をしているため,しばらく様子見をする.