OpenWrtで公開サーバはPPPoE(IPv4)、他端末はIPv4 over IPv6で通信させる

サーバ公開用のPPPoE(IPv4)とその他端末用のIPv4 over IPv6を共存させるお話。

■ 前提

下記のようなネットワーク構成で、OpenWrtにHaproxyを入れて背後のWEBサーバと通信するようにしてある。
OpenWrtを公開サーバーとしてIPv4通信をPPPoEで行い、残りの端末の通信はIPv4 over IPv6で行うように設定する。

OpenWrt(192.168.100.1)
  ┗ WEBサーバ(192.168.100.2)
  ┗ Wi-Fiルータ(192.168.100.3)

■ 設定

[LuCI]はブラウザからログインして設定、[SSH]はSSHでログインして設定する。

  1. [SSH] /etc/iproute2/rt_tablesを修正しルートテーブルを追加する。
vi /etc/iproute2/rt_tables
200     map
  1. [SSH] /etc/config/networkを修正する。
    無線ルータからのIPv4通信はIPv4 over IPv6を使うようにルーティングを設定する。
vi /etc/config/network
config rule
        option src '172.16.100.2/32'
        option lookup 'map'

config rule
        option src '172.16.100.3/32'
        option lookup 'map'
  1. [LuCI] MAPプロトコルを設定しているインタフェースで下記を設定する。

    [Advanced Settings]
    Override IPv4 routing table:map (200)
  2. [LuCI] Save & Applyする。