NTT東西のIPv6閉域網向けポリシーテーブル設定

インターネット接続じゃないIPv6環境で、端末が通信する際の不要な遅延を減らすためにポリシーテーブルをどう変更すれば良いかという情報です。ここでは特にNTT東西のIPv6閉域網に特化した設定を紹介しています。


ポリシーテーブルとか注意事項とか

ポリシーテーブルは、端末が通信に利用するIPアドレスを選択する際に参照するルールテーブルです。IPv6の実装には入っているはずです。ポリシーテーブルの詳細は RFC6724(RFC3484の更新版)を参照のこと。

設定変更は自己責任でお願いします。万が一、将来、これらNTT東西のIPv6網がそのままインターネットに接続するようになったら、ポリシーテーブルは初期状態に戻した方が適切なIPアドレス選択になります。

このページの作成にあたり、藤崎さん、岩佐さん、松本さんに情報提供頂きました。ありがと!

改定履歴


NTT東西のIPv6閉域網対策

以下の対策は、「NTT東西から端末にIPv6アドレスを払い出された人」に有効です。具体的には以下のNTT東西のIPv6 prefixに含まれるIPv6アドレスが端末に設定されている場合です。ISPから払い出されたインターネット向けのIPv6アドレスを利用している人は、標準のルールで気にせず使っていれば問題ないはず。

NTT東西はフレッツサービスやNGNサービスで、ユーザにIPv6アドレスを割り当てていますが、これはNTT東西の閉域網内のみで利用されることを前提としたIPアドレスです。端末がインターネットと通信する際にこのIPv6アドレスを利用すると接続できません。端末は接続できないことを検出して、自動的にIPv4等、他の通信手段にフォールバックしますが、いかんせんアプリケーションの実装次第なので、時間がかかったり通信できなかったりします。これでは悲しいのでポリシーテーブルを利用して、NTT東西内部での通信時のみにこれらNTT東西から端末向けに払い出されるIPv6アドレスを利用するように設定します。

IPv6アドレスの割り振り情報に寄ると、以下のIPv6 prefixがNTT東西に割り振られています。

  • 2001:c90::/32
  • 2001:d70::/30
  • 2001:a000::/21
  • 2404:1a8::/32
  • 2408::/22
  • これらにポリシーテーブルで同じラベルを設定すれば、NTT東西から割り振られたIPv6アドレスは、NTT東西内の通信にのみ利用されるようになります。以下の例はWindows向けですが他の実装でも同様の設定を行うことで同じ効果が得られます。


    Windows向けポリシーテーブルの変更

    以下の変更を行うexeファイルを作成しました。(batファイルをexeでくるんでいるだけです。)ダウンロードは、policytable-for-NTTNGN.exeからどうぞ。相変わらず実行は自己責任で。設定を元に戻すには下記の設定のリセットを参照して下さい。batファイルの内容も下記を参照して下さい。

    Windows 7のポリシーテーブルは、prefix長を8bit境界でしか記述できないようです。色んなprefix長で入力はできますが、情報が削られてしまうようです。このため、上記のNTT東西のIPv6 prefixを8bit境界で展開して記述する必要があります。

    Windows 7, Vista, XPで動作します。管理者権限が必要です。Windows Vistaではdeleteコマンドはエラーになりますが、設定されるポリシーテーブルはWindows 7と同じになります。ここでは、NTT東西のprefixにラベル6を設定しています。

    設定内容は再起動後も有効です。設定内容を初期値に戻したい場合は、同様に手動で標準のポリシーテーブルを設定し直すか、以下のIPv6設定のリセットを参照ください。

    netsh interface ipv6 delete prefixpolicy ::1/128
    netsh interface ipv6 delete prefixpolicy ::/0
    netsh interface ipv6 delete prefixpolicy 2002::/16
    netsh interface ipv6 delete prefixpolicy ::/96
    netsh interface ipv6 delete prefixpolicy ::ffff:0:0/96
    netsh interface ipv6 delete prefixpolicy 2001::/32
    netsh interface ipv6 add prefixpolicy ::1/128 50 0
    netsh interface ipv6 add prefixpolicy ::/0 40 1
    netsh interface ipv6 add prefixpolicy 2001:c90::/32 40 6
    netsh interface ipv6 add prefixpolicy 2001:d70::/32 40 6
    netsh interface ipv6 add prefixpolicy 2001:d71::/32 40 6
    netsh interface ipv6 add prefixpolicy 2001:d72::/32 40 6
    netsh interface ipv6 add prefixpolicy 2001:d73::/32 40 6
    netsh interface ipv6 add prefixpolicy 2001:a000::/24 40 6
    netsh interface ipv6 add prefixpolicy 2001:a100::/24 40 6
    netsh interface ipv6 add prefixpolicy 2001:a200::/24 40 6
    netsh interface ipv6 add prefixpolicy 2001:a300::/24 40 6
    netsh interface ipv6 add prefixpolicy 2001:a400::/24 40 6
    netsh interface ipv6 add prefixpolicy 2001:a500::/24 40 6
    netsh interface ipv6 add prefixpolicy 2001:a600::/24 40 6
    netsh interface ipv6 add prefixpolicy 2001:a700::/24 40 6
    netsh interface ipv6 add prefixpolicy 2404:1a8::/32 40 6
    netsh interface ipv6 add prefixpolicy 2408::/24 40 6
    netsh interface ipv6 add prefixpolicy 2408:100::/24 40 6
    netsh interface ipv6 add prefixpolicy 2408:200::/24 40 6
    netsh interface ipv6 add prefixpolicy 2408:300::/24 40 6
    netsh interface ipv6 add prefixpolicy 2002::/16 30 2
    netsh interface ipv6 add prefixpolicy ::/96 20 3
    netsh interface ipv6 add prefixpolicy ::ffff:0:0/96 10 4
    netsh interface ipv6 add prefixpolicy 2001::/32 5 5
    

    Windows向けnetshによるIPv6設定のリセット

    Windows 7, Vista, XPで動作します。管理者権限が必要です。上記ポリシーテーブルの変更を含め、netshで設定したIPv6関連の設定がすべてリセットされてしまいます。

    netsh interface ipv6 reset
    

    ポリシーテーブルの確認の仕方

    Windows XPの場合

    ipv6 installコマンドを実行後に有効

    netsh interface ipv6 show prefixpolicy
    

    実行例

    C:\Documents and Settings\maz>netsh interface ipv6 show prefixpolicy
    アクティブ状態を照会しています...
    
    Precedence  Label  Prefix
    ----------  -----  --------------------------------
             5      5  2001::/32
            10      4  ::ffff:0:0/96
            20      3  ::/96
            30      2  2002::/16
            40      1  ::/0
            50      0  ::1/128
    

    Windows 7の場合

    最後のキーワードがXPの場合とちょっと違う

    netsh interface ipv6 show prefixpolicies
    

    実行例

    C:\Users\maz>netsh interface ipv6 show prefixpolicies
    アクティブ状態を照会しています...
    
    優先順位   ラベル  プレフィックス
    ----------  -----  --------------------------------
            50      0  ::1/128
            40      1  ::/0
            30      2  2002::/16
            20      3  ::/96
            10      4  ::ffff:0:0/96
             5      5  2001::/32
    

    ポリシーテーブル変更exeの元になったbatファイル

    Windows 7, Vista, XPで動作します。管理者権限が必要です。既存のポリシーテーブルの設定は全て削除してから、上書きしています。exe版はpolicytable-for-NTTNGN.exe

    batファイル、.batな拡張子で保存して、管理者権限なコマンドラインで実行すれば動きます。

      rem policytable modifier for NTT NGN
      rem 2011 (c) maz@iij.ad.jp
      
      echo off
      echo "1/2 delete existing policytable..."
      
      for /f "usebackq tokens=3 skip=4" %%i in (`netsh interface ipv6 show prefixpolic`) do (
       if not %%i == "" ( netsh interface ipv6 delete prefixpolicy %%i )
      )
      
      echo "2/2 add new policytable..."
      
      netsh interface ipv6 add prefixpolicy ::1/128 50 0
      netsh interface ipv6 add prefixpolicy ::/0 40 1
      netsh interface ipv6 add prefixpolicy 2001:c90::/32 40 6
      netsh interface ipv6 add prefixpolicy 2001:d70::/32 40 6
      netsh interface ipv6 add prefixpolicy 2001:d71::/32 40 6
      netsh interface ipv6 add prefixpolicy 2001:d72::/32 40 6
      netsh interface ipv6 add prefixpolicy 2001:d73::/32 40 6
      netsh interface ipv6 add prefixpolicy 2001:a000::/24 40 6
      netsh interface ipv6 add prefixpolicy 2001:a100::/24 40 6
      netsh interface ipv6 add prefixpolicy 2001:a200::/24 40 6
      netsh interface ipv6 add prefixpolicy 2001:a300::/24 40 6
      netsh interface ipv6 add prefixpolicy 2001:a400::/24 40 6
      netsh interface ipv6 add prefixpolicy 2001:a500::/24 40 6
      netsh interface ipv6 add prefixpolicy 2001:a600::/24 40 6
      netsh interface ipv6 add prefixpolicy 2001:a700::/24 40 6
      netsh interface ipv6 add prefixpolicy 2404:1a8::/32 40 6
      netsh interface ipv6 add prefixpolicy 2408::/24 40 6
      netsh interface ipv6 add prefixpolicy 2408:100::/24 40 6
      netsh interface ipv6 add prefixpolicy 2408:200::/24 40 6
      netsh interface ipv6 add prefixpolicy 2408:300::/24 40 6
      netsh interface ipv6 add prefixpolicy 2002::/16 30 2
      netsh interface ipv6 add prefixpolicy ::/96 20 3
      netsh interface ipv6 add prefixpolicy ::ffff:0:0/96 10 4
      netsh interface ipv6 add prefixpolicy 2001::/32 5 5
    
      echo "done!"
    
      echo on
    

    $Id: policy_table.html,v 1.11 2012/09/20 05:41:48 maz Exp $
    Matsuzaki 'maz' Yoshinobu - maz@iij.ad.jp