ポリシールーティングの使用方法


Bフレッツでは、ISP経由のインターネット接続の他、フレッツスクエアというBフレッツ専用のネットワークで独自のコンテンツが提供されています。これらの2つのネットワークを意識することなく使えるようにしてみました。基本的に説明書どおりですが、一つだけポイントがあります。それは、おやじの環境には内向きDNSがあり、それがクライアントとは異なるセグメントにないとうまく機能しないと言うことです。クライアントと同じセグメントにDNSがあると、何故かDNSにWAN側のグローバルアドレスをソースアドレスとしてアクセスしてくるため、内向きDNSが牽けなくなってしまうからです。なお、ここでの方法は、2つのISPに加入した場合にも応用できると思います。この時は、何をキーに振り分けるかは、少し悩ましいと思います。
時々、外部からのサーバアクセス等は問題なく動作しているにもかかわらず、クライアントからの外部アクセスが時々できなくなるというトラブルが発生したので調査したところ、ポリシールーティンは家庭内から出て行くパケットだけでなく、帰りのパケットにもそのまま適用されるということで、設定を変更しました。今のところ安定しているようです。

■ネットワーク構成

前提となるネットワークは、以下のような構成です。


まずはさて置き、ISPとFletsにマルチセッション機能(BA8000は2セッションまで)でそれぞれログインして接続できるようにしなければなりません。設定は、マニュアルに従い、アカウント登録でそれぞれ指定されたユーザ名とパスワード等を入力するだけです。アカウント名は後でいろいろ出てきますので、分かりやすい名前にしておきます。ここでは、説明上ISPとFletsとしておきます。

■ルーティングポリシー

ここで、前提としているルータはマルチセッション対応のNTT-MEのBA8000 Proです。このルータには、ポリシールーティングとDNSルーティングという機能があり、これらを使って、

 各クライアントで、接続先を意識することなく、一般的なインターネット接続とフレッツスクエアへの接続、家庭内でのサーバ等への接続を可能に

します。

■DNSルーティングの設定

これらの宛先にアクセスするには、名前解決が必要ですが、インターネット及び家庭内はおやじのDNSに、FletsはFletsのDNSに問い合わせなければなりません。これを実現するのが、BA8000のDNSルーティング機能です。本機能では、送信元IPアドレスやDNSクエリ、インタフェース等を指定してアクセスするDNSを選択できます。なお、当然のことですが、本機能を活かすためには、各クライアントのDNS設定はルータのゲートウェイアドレスを設定しなければなりません。一方、サーバ機は自身のDNSを設定しておきます。
DNSルーティングの設定例を以下に示します。
ID 送信元
IPアドレス
クエリ
タイプ
クエリ インタフェース DNSアドレス
1 192.168.0.0/24 * .flets Flets  
2 192.168.0.0/24 * .aconus.com LAN1 192.168.1.100
3 192.168.0.0/24 * .aconus.com LAN1 192.168.1.100
4 192.168.0.0/24 * * LAN1 192.168.1.100
上記の設定の意味は下記のとおりです。
  1. ID 1の設定で、家庭内クライアントから.fretsというアドレス解決要求があったら、Fletsのインタフェースで予め取得しているDNSアドレス(空白の場合)に問い合わせる。
  2. ID 2/3の設定で、家庭内クライアントからおやじのドメイン名のアドレス解決要求があったら、LAN1インタフェース配下のおやじDNSに問い合わせる。
  3. ID 4の設定で、家庭内クライアントから上記以外のドメイン名(インターネット)のアドレス解決要求があったら、LAN1インタフェース配下のおやじDNSに問い合わせる。

■ポリシールーティングの設定

ポリシールーティングでは、プロトコルや送信先、送信元IPアドレス等によってルーティングを設定できる機能です。ここでは、送信先としてDNSルートIDが指定できるので、これを利用してパケットの振り分け(ルーティング)を行います。
時々、外部アクセスだけが突然おかしくなるというトラブルに悩まされ調査したところ、ポリシールーティングでは、家庭内から出て行くパケットだけでなくその応答(帰り)パケットにも適用されるとのことで、クライアントやサーバに戻ってくるパケットの出力インタフェースを指定し解決しました。(設定しなければ動かないような気するのですが、何故か動作します。)但し、インタフェースをLAN0/1と明示するとうまく動作しなかった(バグ?)ので、自分の直下のインタフェースなので自動検出できるはずと思い、「自動」に設定したところ安定して動作するようです。(下記、ID4〜6を追加)

ポリシールーティングの設定例を以下に示します。
ID プロトコル 送信先 送信先
ポート
送信元
IPアドレス
送信元
ポート
ゲートウェイ インタフェース
1 * DNSルートID 1 * 192.168.0.0/24 * 0.0.0.0 Flets
2 * DNSルートID 2 * 192.168.0.0/24 * 0.0.0.0 LAN1
3 * DNSルートID 3 * 192.168.0.0/24 * 0.0.0.0 LAN1
4 * DNSルートID 4 * 192.168.0.0/24 * 0.0.0.0 ISP
5 * 192.168.0.0/24 * * * 0.0.0.0 自動
6 * 192.168.1.0/24 * * * 0.0.0.0 自動
上記の設定の意味は下記のとおりです。
  1. ID 1の設定で、家庭内クライアントからDNSルートID 1(.frets)にマッチするパケットが来たら、Fletsのインタフェースにルーティングする。
  2. ID 2/3の設定で、家庭内クライアントからDNSルートID 2/3(.aconus.com)にマッチするパケットが来たら、LAN1インタフェースにルーティングする。xxx.aconus.comというクライアントも存在するので、DNSルーティングでアドレス解決するが、解決後の通信は同一セグメント内のためルータは関与しない。このポリシーにマッチするのはサーバ機しかない。
  3. ID 4の設定で、家庭内クライアントからDNSルートID 4(DNSルートID 1〜3にマッチしない場合)にマッチするパケットが来たら、ISPのインタフェースにルーティングする。
  4. ID 5/6の設定で、家庭内クライアントやサーバ向けのパケットはそれぞれのインタフェースにルーティングする。サーバやインターネットからの帰りのパケットが対象となる。


Top Pageへ