IPv4 と IPv6 の併用環境下におけるルーティング情報の設定
どうも,筆者です.
最近,v6プラスを導入した.v6プラスの導入により,ルータに搭載されている VPN サーバ機能が利用できなくなった.このため,IPv4 のネットワークを構築し,VPN 環境を作成する方針とした. ここまでは良かったのだが,IPv4 から IPv6 のネットワークにアクセスできない.ネットワークが異なるため,アクセスできないのは当然であるが,これでは非常に不便である.
ここでは,構築した IPv4 と IPv6 の併用環境下において,IPv4 のネットワークから IPv6 のネットワーク上のサーバにアクセスできるように設定を行う.
前提
ネットワーク構成
IPv4 と IPv6 のネットワークを以下に示す.ここで,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 点について設定を行う.
- Router B におけるルーティング情報の登録
- 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
以上で,設定は完了となる.一部,理解できていない部分もあるが現時点で期待通りの動作をしているため,しばらく様子見をする.