コミュファ光でローカルに DNS を立てた環境で IPv6 を使う

先日、コミュファ光「ホーム 1 ギガ」を契約して、インターネット接続回線をフレッツ光プレミアムから変更した。
これで IPv6 を使って色々試せると思ったが、開通と同時に問題が発生した。

ローカルに DNS サーバーを立てて DHCP でその DNS サーバーのアドレスを割り当てているような環境で、インターネットへの接続をコミュファ光に切り替えて IPv6 を使おうとすると、その問題に遭遇する。
具体的に言うと、DHCP で IP アドレス等を構成している端末の DNS サーバーの設定が、コミュファ光のホーム ゲートウェイ (HGW) の IPv6 アドレスで上書きされてしまい、本来の DNS サーバーが参照できなくなってしまうというもののだ。

コミュファ光の HGW には DHCP サーバーの機能が搭載されており、DNS サーバーのアドレスも HGW の DHCP で配布されている。
HGW の DHCP サーバーで配布する DNS サーバーのアドレスは、HGW のアドレスに固定されており、一切変更することができない。
このため、HGW の DHCP サーバー機能を停止する必要があるのだが、停止できるのは IPv4 の DHCP (DHCPv4) 機能だけで、IPv6 の DHCP 機能 (DHCPv6) は止めることができない。
どうも、コミュファ光は、ローカルにサーバーなんてものが一切存在していない暫定でサービスを提供しているらしい。

この問題を解決するには、IPv6 アドレスを構成するための HGW から出されるルーター アドバタイズメント (RA) は端末に流すが、DHCPv6 のパケットは端末に流さないといった仕組みを作り出せばいい。
つまりは HGW の直下に ProxyRA の機能を持つブロードバンド ルーターを置けばいい。
筆者はこのために YAMAHA RTX810 を購入してしまった。

この RTX810 は HGW のすぐ下に繋ぎ込んで使う。
コミュファの想定している接続携帯は、HGW の LAN ポートに直接ないしは LAN ポートに更に HUB を繋ぎ、そこに PC などを繋ぐことになっている。
これを、HGW の LAN ポートには RTX810 の WAN (LAN2) ポートだけを繋ぎ、PC などは RTX810 の LAN ポートに繋ぐような使い方にする。

コミュファ光が推奨している接続方法
RTX810 をホーム ゲートウェイと LAN の間に入れて接続する

このために、まずは RTX810 に IPv4 に関する設定をする。
IPv4 は HGW の LAN ポートと RTX810 の WAN (LAN2) ポートでひとつのネットワーク セグメントを、RTX810 の LAN (LAN1) ポートとそこに繋ぐ PC などでひとつのネットワーク セグメントになるようにする。

HGW の LAN 側の LAN ポートの IPv4 アドレスの初期値が 192.168.0.1/24 なので、RTX810 の WAN (LAN2) ポートはそれに合わせて 192.168.0.2/24 にする。
RTX810 の LAN (LAN1) ポートは 192.168.100.1/24 にして、そこに繋ぐ PC などは 192.168.100.0/24 のネットワーク セグメントを使うことにした。
このときの RTX810 の設定は以下のようになる。

単純に WAN (LAN2) と LAN (LAN1) が異なる IPv4 のネットワークセグメントになるように IPv4 アドレスを振り、デフォルト ゲートウェイに HGW の IPv4 アドレスを指定しただけだ。
インターネットに出るときの NAPT は HGW でやってくれるので、わざわざ RTX810 でやることはない。

なお、HGW の IPv4 静的ルーティングに、LAN 側のネットワーク セグメント宛のルーティング情報を登録するのを忘れてはいけない。
筆者は後々のうっかりミスを嫌って、IPv4 のすべてのプライベート アドレス宛のルーティング情報を HGW に登録した。

ホーム ゲートウェイに IPv4 の静的ルーティング情報を登録しておく

次は IPv6 が使えるようするための設定だ。
インターネット接続回線をコミュファ光に切り替えたのは、IPv6 を使ってみたいというのがそもそもの動機なのだから、これをしなくては何の意味もない。

IPv6 の設定では、IPv6 アドレスの自動構成が的確になされるように HGW から送信されるルーター アドバタイズメント (RA) のパケットをそのまま LAN 側に転送してやる必要がある。
そうしてやらないと、IPv6 のグローバル アドレスが LAN 内の端末に割り当てられず、IPv6 でインターネット アクセスできない。
そのためには RA Proxy という機能を使う。
RTX810 では ipv6 prefixipv6 interface rtadv send の2つのコマンドで、WAN (LAN2) ポートで受信した HGW からの RA のパケットを LAN (LAN1) ポートから再送信する。
具体的には以下のようになる。

この設定によって、HGW から送信される RA のパケットは RTX810 で転送され、同じ HGW から送信される DHCPv6 のパケットは RTX810 が遮断する。
なお、将来 IPv6 でアクセスできる DNS サーバーを立てたときにそれを PC に自動的に割り当てできるように、 ipv6 lan1 rtadv send 1 o_flag=on として o_flag をオンにしておく。

これだけだと RTX810 の LAN (LAN1) ポートに IPv6 アドレスが割り当てられないため、LAN 側から IPv6 でアクセスしたくてもできないままだ。
そこで以下の設定を追加する。

一行目の設定で IPv6 リンク ローカル アドレスを割り当て、二行目で WAN (LAN2) ポートで受信した HGW からの RA に基づく IPv6 アドレス (グローバル アドレス) を割り当てる。
よくある設定例では二行目を ipv6 lan1 address ra-prefix@lan2::1/64 としているものをよく見るが、ここでやったような自動生成で十分だ。
LAN 側の端末で IPv6 のデフォルト ゲートウェイを手動で設定するとか、管理上わかりやすいなどの理由があるなら、IPv6 アドレスの末尾を 1 に強制する方が望ましいのはいうまでもない。

RTX810 に以上の設定を施した結果、今では何の問題もなくコミュファ光を利用できている。
念のため、RTX810 に施した設定をまとめて以下に記しておく。

「コミュファ光でローカルに DNS を立てた環境で IPv6 を使う」への3件のフィードバック

  1. 過去ログにXperia arc (SO-01C) をひかり電話の子機にしてみたってのがありましたが、コミュファで同じことできますか?

    1. 残念ながらできそうにありません。
      コミュファのサポートに確認し、さらに光電話アダプター (兼ホーム ゲートウェイ) の設定項目も探しましたが、光電話アダプターが IP 電話親機になようがありません。
      このため、今のところは、普通の優先の電話機以外を繋ぐ方法はありません。
      コミュファ光の光電話アダプターが IP 電話親機として動作するようになることを、小生も強く願っています。

  2. フレッツ光ネクストで、同じようにDNSの問題にはまって困っていましたが、この設定で解決しました。ありがとうございました。

コメントを残す