SCTPにおける アドレス選択ポリシーを定義できる IPアドレス自動更新機能の設計 丸山伸 小塚真啓 岡部寿男
130.54.XXX.XXX VPN
研究の背景 フリーアドレスの普及 通常のTCP通信では毎回接続をやりなおす 無線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 VPN 130.54.1.11 130.54.11.22 212.12.3.4 192.168.0.3 172.16.1.3 130.54.211.5
そこで。 ようするに提案。 SCTPのアドレス自動更新機構にアドレスを 取捨選択するためのポリシーを導入 例 Positive なポリシー そこで。 ようするに提案。 SCTPのアドレス自動更新機構にアドレスを 取捨選択するためのポリシーを導入 Positive なポリシー Negative なポリシー 例 グローバル(Positive)、プライベート(Negative) 組織内(Positive)、組織外(Negative)
実装の概要 自動更新機構がアドレス変化を検出したとき、 FreeBSD 6.2 RELEASE + SCTP.org の実装をベース ポリシーにマッチした場合 → 通常処理 ポリシーにマッチしない場合 → 破棄 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 proc *td_proc Struct proc Struct sysentvec * p_sysent Struct sysentvec Struct ps_strings *sv_psstrings Struct ps_strings Char **Ps_envstr Int ps_nenvstr
結論 SCTPにおける接続で Auto ASCONF を使う際には、 一般にSCTPとNA(P)Tの相性は悪いといわれるが、 を示した アドレスを取捨選択するためのポリシーを与える機構が必要 一般にSCTPとNA(P)Tの相性は悪いといわれるが、 ポリシーを導入することにより、NA(P)Tの下からでもSCTPを利用できる可能性がある を示した
今後の展開 ポリシーの与え方についてさらに検討 自宅までの移動中は Freeze すれば良いはず 実装を安定させる SCTP Interop @ 京大 (8/19~24) にて実装をデモ 標準化を目指す