VPN

SCTPにおける
アドレス選択ポリシーを定義できる
IPアドレス自動更新機能の設計
丸山伸
小塚真啓
岡部寿男
130.54.XXX.XXX
VPN
研究の背景
• フリーアドレスの普及
– 無線LANの基地局が切り替わる
• 移動に伴いアドレスが次々に変化する
– 組織全体を1つのL2で統一することは困難
• 通常のTCP通信では毎回接続をやりなおす
– うれしくない。めんどくさい。
• 何らかの移動通信技術が必要
• 次世代のトランスポートプロトコル SCTP を使ってみる
SCTP と モビリティ
• SCTPはTCPと異なり、複数のアドレスを用いる
– 信頼性の確保
– 本来はモビリティー用途ではない
• 動的なアドレス変更 (ADD-IP 拡張)によって
モビリティも実現しうる
– こういうときにSCTPを使うと何が起こるか?
SCTPにおける自動アドレス取得
• SCTPの動的アドレス変更はADD-IP というアドレ
ス更新機構を用いる
• ADD-IPのAUTO ASCONF(アドレス自動更新機構)
は新たに取得したアドレスをassociationに登録す
る
しかし….
• プライベートアドレスを拾ってしまうと問題
– SCTPはNATに弱い
– プライベートを拾った後、PPTPとかを張れば問題ない
のに・・・
研究の目的
• 通信に用いるアドレス
– NATのないアドレス
– PPTP認証後に得られるアドレス
• 通信に用いないアドレス
– プライベート
– あきらかに他組織のアドレス
• このようなポリシーに基づいてアドレスを取捨選
択する機構が必要
自動アドレス更新機構の問題点
• 古いADD-IP (Draft under 15)では、プライベー
トアドレスを拾うと通信を継続できない
– Cumulative ASCONFを提案した
• 新たなアドレス変更を通知できるようになった
• 16以上でも、プライベートアドレスを拾ってし
まうと、
– 新しいアドレスの通知は、タイムアウトを待つ
– 新しいアドレスの通知が遅れる
どうしよう?
使いたくないアドレス
• 組織内から出先への移動
– 移動しても接続を維持したい
• しかし
– 途中で拾ったアドレスは用いない
– 出先からは、PPTP等のVPNを用いて得た会社の
アドレスだけを使う
130.54.XXX.XXX
130.54.1.11
130.54.11.22
212.12.3.4
192.168.0.3
VPN
172.16.1.3
130.54.211.5
そこで。 ようするに提案。
• SCTPのアドレス自動更新機構にアドレスを
取捨選択するためのポリシーを導入
– Positive なポリシー
– Negative なポリシー
• 例
– グローバル(Positive)、プライベート(Negative)
– 組織内(Positive)、組織外(Negative)
実装の概要
• 自動更新機構がアドレス変化を検出したとき、
– ポリシーにマッチした場合 → 通常処理
– ポリシーにマッチしない場合 → 破棄
• FreeBSD 6.2 RELEASE + SCTP.org の実装を
ベース
– Cumulative ASCONF
– 自動更新ポリシー (Auto ASCONF)
正常に動作することを確認した
実装
• 自動更新のポリシーはソケット作成時にプロ
セスの環境変数から取得
– socketシステムコール内にはプロセスの情報が渡
る
• 取得したポリシーをSCTP PCB (Protocol
Control Block) へ保存
Int socket (struct thread *td, struct socket_args *uap);
Struct thread
Struct proc
Struct proc *td_proc
Struct sysentvec * p_sysent
Struct sysentvec
Struct ps_strings
Struct ps_strings *sv_psstrings
Char **Ps_envstr
Int ps_nenvstr
結論
• SCTPにおける接続で Auto ASCONF を使う際
には、
– アドレスを取捨選択するためのポリシーを与える
機構が必要
• 一般にSCTPとNA(P)Tの相性は悪いといわれ
るが、
– ポリシーを導入することにより、NA(P)Tの下から
でもSCTPを利用できる可能性がある
を示した
今後の展開
• ポリシーの与え方についてさらに検討
• 自宅までの移動中は Freeze すれば良いはず
• 実装を安定させる
• SCTP Interop @ 京大 (8/19~24) にて実装を
デモ
• 標準化を目指す