ポリシールーティングの使用方法(2ISP編)


Bフレッツでは、同時にPPPoEを2セッション設定できること、おやじが使用しているルータ(NTT-ME BA8000 Pro)がそれに対応していること、AsahiネットがBフレッツマンションタイプで、固定IP個込みで700円(2003/07現在)という破格のサービスを始めたのを受け、速攻で契約しました。折りしもBフレッツマンションタイプが150円、VDSL装置レンタル量が400円値下げになるため、実に150円で固定IPが得られる結果となりました。但し、ADSLに比べれば何ら問題ないのですが、Asahiネットはスループットが既契約プロバイダに比べ6割程度しかでないので、今後、この低価格サービスでユーザが増加するとやや心配な面があります。様子をみてAsahiネット1本に切り替えることも考えていたのですが、たいした負担増ではないので、当面はこのまま行こうと考えています。独自ドメインについては、継続検討中です。
これにより、家庭内からみてインターネット接続環境が2ルート存在することになり、何もしないと、家庭内のサーバ/クライアントはどちらの回線を使っていいかわからなくなり、アクセスできなくなってしまいます。そこで、登場するのがポリシールーティングです。基本的に説明書どおりですが、おやじの環境には内向きDNSがあるためその対処も含んでいますが、無い場合について触れたいと思います。
なお、ベースとなる構成や設定については、セキュリティ強化対策(Router編)を参考にしてください。特に、VLAN設定やフィルタ等についてはこちらでは触れません。DNSルーティングは、おやじは実質使いようがなくなったので設定していません。

■ネットワーク構成

前提となるネットワークは、以下のような構成です。このようなケースでの最大の課題は、家庭内から見て同じ宛先が2ルートあるため、どちらに出て行くかを何らかのキーを基に決めなくてはならないのと、サーバへのアクセスに対する帰りのパケットを、要求元のルートに返してあげなければならいということです。


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

■ルーティングポリシー

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

 各クライアントで、接続先を意識することなく、一般的なインターネット接続、家庭内でのサーバへの接続を可能にすると共に、インターネット側へのサーバ公開を可能に

します。
なお、Bフレッツ、ルータとも2セッションしか扱えないので、3番目となるFletsスクエアへのアクセスはできなくなってしまいますので、注意が必要です。
上記ルーティングを実現するキーをいろいろ検討したのですが、特にサーバへのアクセスに対する応答パケットをアクセス要求元に要求のあったインターフェースから返すポリシーがないため、下記のような単純なポリシーとしました。なお、1台のサーバで2回線を異なるドメインで運用するアイデアはあるので、検証後にアップします。
  1. サーバへのインターネット側のクライアントからのアクセスとその応答を考えると、両者の間に2つのルートが存在するが、サーバからみるとアドレスもポートも同じだめ、返すべきルートがわからない。従って、サーバへのアクセスを一意にする必要があり、おのずとサーバで使用する回線を固定せざるを得なくなる。ここでは、当然IPであるISP-Bの回線を使うことになる。

  2. となると、上図のとおり、クライアントはISP回線のみを使用することになる。これには、別の恩恵もある。今まで、1回線しかなかったときは、自分のWAN側グローバルアドレスにはルータの性質上、家庭内からアクセスできなかったが、クライアントが使用する回線とガサーバが使用する回線を分離することで、家庭内クライアントからISP-Bのアドレスにアクセスすると、一旦ISP-Aに出てISP-B経由でアクセスしてくるため、インターネット上の一般クライアントと同一のアクセス経路になり自分のサーバの稼動状況を確認できるようになる、というメリットもでてくる。
    簡単な話、単にアクセス回線(Bフレッツ)とルータは一つだが、家庭に2回線を別々に引いてきたのと等価になっているだけである。

  3. 家庭内クライアントとサーバ間は、アドレスが異なるので内部でルーティングできる。

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

ポリシールーティングでは、プロトコルや送信先、送信元IPアドレス等によってルーティングを設定できる機能です。しかし、URLやプロトコルでは振り分ける基準が無いため、ここでは送信元・送信先IPアドレスだけでパケットの振り分け(ルーティング)を行います。
なお、家庭内インタフェースをLAN0/1と明示するとうまく動作しなかった(バグ?)ので、自分の直下のインタフェースなのでネットワークアドレスは自動検出できるはずと思い、「自動」に設定したところ安定して動作するようです。

ポリシールーティングは、説明書にもあるように愚直に動作するので、設定には行きのパケットだけでなく帰りのパケットに対する処理や、同じポリシーに関してはIDの若いものにマッチした時点で処理されるので、設定するIDや実際に設定する順番に注意が必要です。最悪ルータにアクセスできなくなり、リセットせざるを得なくなるので、作業前には設定情報をバックアップしておくことを薦めます。(バックアップしてあったのですぐに戻せましたが、経験者は語るでした。(^。^))
ポリシールーティングの設定例を下記に示します。IDの若い順版に設定してください。既に何らかの設定がしてある場合は、変更したときの影響を良く考えて変更しないと、痛い目にあうので注意が必要です。

ID プロトコル 送信先 送信先
ポート
送信元
IPアドレス
送信元
ポート
ゲートウェイ インタフェース
1 * 192.168.0.0/24 * 192.168.0.0/24 * 0.0.0.0 自動
2 * 192.168.1.0/24 * 192.168.1.0/24 * 0.0.0.0 自動
3 * 192.168.1.0/24 * 192.168.0.0/24 * 0.0.0.0 自動
4 * 192.168.0.0/24 * 192.168.1.0/24 * 0.0.0.0 自動
5 * * * 192.168.0.0/24 * 0.0.0.0 ISP-A
6 * * * 192.168.1.0/24 * 0.0.0.0 ISP-B
7 * 192.168.0.0/24 * * * 0.0.0.0 自動
8 * 192.168.1.0/24 * * * 0.0.0.0 自動
上記の設定の意味は下記のとおりです。
  1. ID 1/2の設定で、それぞれのセグメントのルータのLAN側ポートへのアクセスをルーティングする。この設定がないと、クライアントからゲートウェイにアクセスするパケットの戻りパケットがID 5/6の設定でISPへ行ってしまう。
  2. ID 3/4の設定で、家庭内クライアントと自宅サーバセグメント間のルーティングをする。
  3. ID 5の設定で、家庭内クライアントから自宅サーバ以外へのアクセスをISP-Aへルーティングする。帰りのパケットはID7で家庭内セグメントにルーティングされる。
  4. ID 6の設定で、自宅サーバから家庭内クライアント以外へのパケットをISP-Bへルーティングする。逆方向(サーバへのアクセス)のパケットはID8で自宅サーバセグメントにルーティングされる。
通信形態ごとにどの設定が関わるかをまとめてみました。不具合が発生した場合などには、ルータに変わりに自分でそれぞれのパケットが上記表のどのIDに該当して処理されるか追いかけると、原因追求がしやすいと思います。
No. インタフェース1 インタフェース2 通信方向 備  考
--> <--
1 LAN0 <--> LAN0 ID3 ID3  
2 <--> LAN1 ID1 ID2  
3 <--> ISP-A ID5 ID7  
4 <--> ISP-B *1 ID7 ISP-BからLAN0向けパケットは、静的IPマスカレードやフィルタを開ければ通過できるが、その応答パケットはID5で処理されISP-Bに戻ることができない。
5 LAN1 <--> LAN1 ID4 ID4  
6 <--> ISP-A *2 ID8 ISP-AからLAN1向けパケットは、静的IPマスカレードやフィルタを開ければ通過できるが、その応答パケットはID4で処理されISP-Aに戻ることができない。
7 <--> ISP-B ID6 ID8  
8 ISP-A <--> ISP-A - -  
9 <--> ISP-B - -  
10 ISP-B <--> ISP-B - -  

クライアントのDNSはおやじは内向きDNSを使用しているので、そのアドレスを設定しましたが、一般的にはルータのProxyDNSを使用できるようにし、ルータの各セグメントのLANアドレスを設定すれば、大丈夫です。
フィルタや静的IPマスカレードは、こちらに準じて設定すればいいのですが、非常に多くの設定が必要です。ただし、接続形態は1ISPのときと変わらないので、単純に設定が倍になるだけです。なお、クロスの通信(ISP-A <-> LAN1とISP-B <-> LAN0)はないのですが、非常用に設定しておいてもいいでしょう。


Top Pageへ