新規作成  編集  差分  v6活用研究会's Wiki  ページ一覧  検索  更新履歴  編集履歴  RSS  ログイン

NATとDTCP

NAT(正確にはNAPT)環境下でDTCP接続を行うためには,ほんの少しですがルータなどにパケット転送設定が必要になります.ここではDTCPで接続を行う場合の通信についてまとめ,NAT環境下でのDTCP接続に必要なルータ設定について解説します.

DTCP接続時の通信

DTCP接続を行う際,おおよそ以下のような通信が行われます.

  1. TCP/20200によりDTCP接続要求とユーザ認証,接続情報の伝達
  2. 接続情報に基づいてIPv4(プロトコル番号41:IPv6)でトンネルを生成

TCPで使われるポート番号(20200)はあくまでも標準のポート番号で,サーバ,クライアントで変更することができます.

IPv4でのトンネルですが,これは単に,IPv6のパケットにIPv4のヘッダをつけてカプセル化しただけのものです.このとき,IPv4のヘッダに付くプロトコル番号は41(IPv6)となります.(ヘッダの先頭についているIPバージョン番号ではないことに注意してください)

ルータでのパケット転送設定

接続時にTCPで行われる通信はNATの設定が正常にされていれば,通信自体に問題はありません. ただ,この通信でやり取りされる接続情報で,クライアントのIPアドレスを伝えるのですが, 普通にDTCPクライアントプログラムを起動してしまうとPCに割り当てられているプライベートアドレスをそのままサーバに伝えてしまうため,正常にトンネルを生成できなくなってしまいます. dtcpclient などでは,起動時に -n オプションを指定することで,自PCのIPアドレスではなく,NATされているグローバルアドレス(サーバが接続しているつもりのアドレス)をサーバに伝えることができます.

問題となるのは,IPv4でのトンネル接続時のIPアドレスです. 上に書きました通り,DTCPサーバにはルータのWAN側インタフェースに設定されているグローバルアドレスを接続先として伝えているため,サーバはルータのWAN側インタフェースに対してIPv4でカプセル化したパケットを送信します. この,WANインタフェースで受信したパケットをDTCPクライアントのPCに転送するようルータにパケット転送設定をすることになります.

以下にいくつかのルータでの設定例を挙げておきます.(この他にも設定したものがありましたら是非追記してください.)

IP Filter

私の場合Solarisで IP Filter の NAT 機能を用いてNATを行っています. IP Filter の ipnat.conf に以下の記述を加えることで,プロトコル番号41のIPv4パケットを転送することができます.

rdr インタフェース from DTCPサーバのアドレス to グローバルアドレス port=0 -> 転送先のアドレス  port 0 41

もちろん,この通信を止めちゃわないように,ipf.confに

pass in quick proto ipv6 from DTCPサーバのアドレス to グローバルアドレス

と記述しておくことも忘れずに.

BUFFALO WHR3-AG54

WHR3-AG54はBUFFALO の無線LANルータです. たまたま職場にあったので「これなら一般の家庭用ブロードバンドルータとさほど変わらないだろう」ということで設定してみました. 設定自体はとても簡単で「こんなので本当に大丈夫か」とも思いましたが,ちゃんと動作していますので大丈夫なようです.

設定方法は簡単で,ここに書くまでもないのかもしれませんが,一応以下に手順を書いておきます.(クリックばかりで頭が悪そうですが,ま,こういうものだということで.;D)

  1. webブラウザでルータの設定ページにアクセス
  2. 「アドバンスド」をクリックして詳細設定ページへ
  3. 左側メニューの「ネットワーク設定」をクリック
  4. 開いたメニューの「アドレス変換」をクリック
  5. 「アドレス変換ルールを入力」ボタンをクリック
    1. アドレス変換ルール入力ウィンドウ(下図)が開きます
    2. プロトコル(WAN側)の「任意」にチェックをつけプロトコル番号に41を入力
    3. LAN側IPアドレスにDTCPクライアントPCのIPアドレスを入力
    4. 「ルールを追加」ボタンをクリック
  6. 入力したルールが管理画面で表示されれば完了です.

AG54アドレス変換ルール設定画面

これで設定の変更は完了です. dtcpclient なら -n をつけて実行して,ちゃんと接続できるか確認してみてください.

AR450s(BR450)

更新日時:2005/01/18 16:11:18
キーワード:
参照:[v6活用研究会's Wiki] [FreeBSD+dtcpclientでの接続]