WIDE Technical-Report in 2008

USAGI プロジェクト 2007 年度
IPv6 Mobility の設計と開発活動
報告
wide-tr-usagi-mip6-04.pdf

WIDE Project : http://www.wide.ad.jp/

If you have any comments on this document, please contact to ad@wide.ad.jp

Title: USAGI プロジェクト 2007 年度 IPv6 Mobility の設計と開発活動報告
Authors: USAGI プロジェクトコアメンバ（usagi-core@linux-ipv6.org）
Date: 2008/01/17
-- 目次
1. 背景
2. 2007 年度の活動
2.1 カーネルにマージされた機能のメンテナンス
2.2 UMIP の公開
3. 今後の活動
-- 本文
1. 背景
USAGI プロジェクトでは、2003 年よりヘルシンキ工科大学（HUT） Go-Core プロジェ
クトと共同で Linux オペレーティングシステム上での Mobile IPv6 スタックの開発に取り組んできた。開発当初の Linux バージョン 2.4 に対する MobileIPv6 スタック(MIPL）は、機能のほぼ全てをカーネル内に実装していた。その後、Linux カーネルツリーに大きな変更が加えられた Linux バージョン 2.6 への更新時に方針転換し、可能な限りユーザランドにてプロトコルスタックを実装し、Mobile IPv6 の仕様に最低限必要となる基本機能のみをカーネル内に実装する設計を新たに打ち出した（以降このプロトコルスタックを Linuxバージョン 2.4 に対するスタックと区別するために MIPL2 と呼ぶ）。以降 2006 年末まで、
Mobile IPv6 の基本仕様[RFC3775][RFC3776]の必要機能を MIPL2 で実現し、相互接続試験による動作検証や TAHI プロジェクトの提供するコンフォーマンス試験による機能検証に取り組み、成果を公開してきた。
2. 2007 年度の活動
MIPv6 に必要となる機能は、2006 度までにほぼ Linux カーネルへのマージを完了したが、いくつか重要な機能が残っており、2007 年度はそれらのマージ作業を完了した。さらに、これまでマージされた機能は、Linux カーネルのバージョンアップに伴い、最新のカーネルで動作するようメンテナンスを実施した。
また、開発中のカーネルコードと、検証用のユーザランドの MIPv6 デーモンは随時USAGI プロジェクトから公開した。
2.1 カーネルにマージされた機能のメンテナンス

今年度、新たにカーネルにマージされた主な機能は、IPsec と MIPv6 が連携するための、トンネルモードの IPsec のエンドポイントを書き換える Migrate 機能と、MIPv6 に対応したファイヤーウォールなどのための、MIPv6 制御メッセージをフィルタリングする MH
match module である。
既にマージされた機能群は、カーネルのバージョンアップに伴って正常に動作することを確認し、問題が生じた場合には随時修正をするメンテナンス作業を継続している。
以下の表に詳細なマージ状況を示す。
表 1：カーネルパッチ一覧
#大項目

#小項目

#

パッチ名

コード種別

必須

機能分類

ステータス

1

XFRM

1

XFRM

1

XFRM state support coa and HAO/RT2

newrequired

CN HA MN

マージ済み(2006)

2

XFRM state use source address hashnewrequired

CN HA MN

マージ済み(2006)

3

XFRM bulk operation support

newrequired

HA MN

キャンセル(2007)

4find IPsec header place to insert it with HAO/RT2

newrequired(CN) HA MN

マージ済み(2006)

5

XFRM state inbound for mip6 exthdrs

newrequired(CN) HA MN

マージ済み(2006)

6

update XFRM state last used timestamp

fix

optional

CN

マージ済み(2006)

7

decide a device by source address of IPv6 header

newoptional(HA) MN

キャンセル(2006)

2MIP612

3

4

HAO

RT2MH

ICMP68use mode as type even it was a flagnewrequired

CN HA MN

マージ済み(2006)

9use acquire even inbound for RO trigger

newoptional

MN

キャンセル(2006)

10

XFRM debug

newoptional

11Source address support for state id

fixrequired

CN HA MN

マージ済み(2006)

12

non-fragment protocol support

newrequired

CN HA MN

マージ済み(2006)

13

Sub policy support

newrequired

CN HA MN

マージ済み(2006)

1

HAO sendingnewrequired

MN

マージ済み(2006)

2

HAO + ah6 sendingnewrequired

MN

マージ済み(2006)

3

HAO receiving

newrequired

CN HA

マージ済み(2006)

4

BE report

newrequired

CN HA

マージ済み(2006)

5

TLV parser

newoptional

CN HA MN

マージ済み(2006)

1

RT2 sendingnewrequired

CN HA

マージ済み(2006)

2

RT2 receiving

newrequired

MN

マージ済み(2006)

1MH handlingnewrequired

CN HA MN

マージ済み(2006)

2MH sendingnewrequired

CN HA MN

マージ済み(2006)3

MH receiving

newrequired

CN HA MN

マージ済み(2006)

1

Swap HAO address before sending ICMP6 error

newrequired

CN HA MN

マージ済み(2006)

2

Swap RT2 address before sending ICMP6 error

newrequired

MN

キャンセル(2006)

Swap RT address with segment left field whennewoptional

CN

作業中

3

キャンセル(2006)

receiving ICMP6 error

3IPsec5-

1

mip6 debug

newoptional

CN HA MN

キャンセル(2006)

1MIGRATE

1

PF_KEY MIGRATE

new

required

HA MN

マージ済み(2007)

MIGRATE extension

newoptional

HA MN

マージ済み(2007)

2(All upper layer protocol support, multiple bundle)
2Misc

1

SP selector ifindex

newrequired

HA MN

キャンセル(2007)

2

IPsec + TCP

fix

required(CN) HA MN

マージ済み(2007)

3

IPsec6 + RT sending

fix

required(CN) HA

キャンセル(2006)

4

IPComp and generic tunnel

fix

required5

Inbound block policy

fix

required

他の開発者によっ6allow to match wild-card user id at policy selector

fix

optional

キャンセル(2006)

他の開発者によって解決済み(2006)て解決済み(2006)

4neighbor

1

proxy

7

Decapsulated IPsec tunnel causes redirectnew

optional

HA

マージ済み(2007)1

proxy entry carries flagnewrequired

HA

マージ済み(2006)

2

don't do proxy forwarding when unicast ND

fix

required

HA

マージ済み(2006)

3

don't do proxy forwarding to link-local destination

newrequired

HA

マージ済み(2006)

4

don't update neighbor cache when NA destined tofix

required

HA

マージ済み(2006)

proxied entry

5address

5

proxy NDP sysctl

newoptionalHA

マージ済み(2006)

2-

1

fix ndisc_flow_init to use ifindex

fixunknown(MN)

マージ済み(2006)

3-

1

fix fl6_merge_options

fix

required

CN HA

マージ済み(2006)

4

RA

1

Use it as a default router in receiving RA

fix

required

MN

マージ済み(2006)

2

Use it as a prefix in receiving RA

fix

required

MN

マージ済み(2006)

1

HoA flagnewrequired

MN

マージ済み(2006)

1flag

67

2

never do DAD for HoA

newrequired

MN

マージ済み(2006)

2

lifetime

1change address lifetime from user-landnewrequired

MN

マージ済み(2006)3

prefix1add prefix info from user-landnewrequired

MN

マージ済み(2007)

source1-1source address selection: USAGI archnew

required

MN

マージ済み(2006)

address2-

1source address selection: SUBTREE fix

newrequired

MN

マージ済み(2007)

selection

3

HoA

1

source address selection: HoA support

newrequired

MN

マージ済み(2006)

routing1

multiple table1

multiple table or rule for policy routing

newrequired

HA MN

他の開発者によっ

2

SUBTREE

1

SUBTREE fix for policy routing

fix

unknown

HA MN

3-

1

removing netlink_skb_parms

fixunknown

4

anycast1

anycast routing

fixunknown

HA

1

cmsg

1

ipv6 cmsg 2292 fix in receiving

fix

required

MN

2-

1

more optimized inet6_skb_parm

fix

optional3

ipv6 tunnel

1

ipv6 tunnel fix

fix

unknown

1

IPtables1

MH match module

newoptionalて解決済み(2006)
マージ済み(2007)
マージ済み(2006)
他の開発者によって解決済み(2006)8

ipv6

他の開発者によって解決済み(2006)

9

NETFILTER

キャンセル(2006)
HA MN

マージ済み(2007)
マージ済み(2007)

2.2 UMIP の公開
MIPL2 の開発は HUT Go-Core プロジェクトと USAGI プロジェクトの協調体制の下進められて来たが、HUT Go-Core プロジェクトの終了と伴に、協調体制の見直しが必要となった。USAGI Project では、これまでの Go-Core プロジェクトメンバとの密な連携体制を継続することが難しいと判断し、ソースツリーのメンテナンスを USAGI Project 独自で行う方針を採る決断を下した。これを受けて、2005 年 12 月時点での MIPL2 のスナップショットを下にしたリリース(umip-0.1)および、2006 年 6 月時点の MIPL2(2.0.2)に基づくリリース(umip-0.3,umip-0.4)を公開している。umip-0.2 に関しては、内部的なバージョンアップに留まり、公開されることは無かった。
umip-0.4 からは、IKEv2 への対応を見据え、[RFC3776]に従った IPsec の設定方法をやめ、[RFC4877]に準拠した設定方法を採用した。
umip-0.4 の動作状況としては、Correspondent Node(CN)、Home Agent(HA)に関しては、基本動作に問題は無い。Mobile Node(MN)は、一部に問題を残すものの、概ね正常に動作する。MN における主な残問題は、同一リンク上での MN 間において、経路最適化パケットをデフォルトルータの MAC アドレスへ送信し、デフォルトルータ経由での通信となることである。
3. 今後の取り組み
今後も、最新の Linux カーネルで動作する安定した MIPv6 スタックを継続的に提供していく。MIPv6 スタックは、カーネル内の MIPv6 スタックユーザ空間のデーモンプログラ
ムから構成されるが、前者は既にメインラインカーネルに組み込まれているため、ここでは実質的に後者のみを指す。
UMIP のソースツリーは、2005 年 12 月時点の MIPL2 のスナップショットより派生したUMIP-0.1、そして 2006 年 6 月時点の MIPL2(MIPL2.0.2)より派生した UMIP-0.3 およびUMIP-0.4 がある。今後は、MIPL2.0.2 より派生したソースツリー上でメンテナンスを行っていく。
UMIP ソースツリーに施される修正は、UMIP 開発者による修正の他に、ユーザから提供されたパッチがある。ユーザから提供されるパッチに関しては、メーリング・リストに送付されたパッチを、UMIP 開発者がレビューし、その有用性および無害であることが確認された上でソースツリーに取り込む。
基本的に、これまで USAGI プロジェクト内で MIPv6 の開発に携わってきた開発者が継続してメンテナンスを行っていく。しかしながら、今後は USAGI プロジェクト外から有志のボランティアを受け入れていく体制を取っていく予定である。ただし、新たな開発メンバは MIPv6 および Linux カーネルの知識、そしてソフトウェア開発能力を備えた人物に限る。
リリースは、バグフィックス、新機能の追加等が施された際、適宜行っていく。リリースの間隔は特に決めていないが、これまでの実績では数ヶ月に一度の頻度でバージョンアップを行ってきている。
参考文献[RFC3775] D. Johnson, C. Perkins, J. Arkko, “Mobility Support in IPv6,” RFC3775,
June 2004.
[RFC3776] J. Arkko, V. Devarapalli, F. Dupont, “Using Ipsec to Protect Mobile Ipv6Signaling Between Mobile Nodes and Home Agents,” RFC3776, June 2004.
[RFC4877] V. Devarapalli, Azaire Networks, F. Dupont, "Mobile IPv6 Operation withIKEv2 and the Revised IPsec Architecture," RFC4877, April 2007.
[MIYAZAWA2004] K. Miyazawsa and M. Nakamura, “IPv6 IPsec and Mobile IPv6
implementation of Linux,” Linux Symposium 2004, Ottawa, July 2004.
[AH] S. Kent, “IP Authentication Header,” RFC4302, December 2005.
[ESP] S. Kent, “IP Encapsulating Security Payload (ESP),” RFC4303, December 2005.
[IPCOMP] A. Shacham, B. Monsour, R. Pereira, M. Thomas, “IP Payload Compression
Protocol (IPComp),” RFC3173, September 2001.
[PF_KEY] D. McDonald, C. Metz, B. Phan, “PF_KEY Key Management API, Version 2,”
RFC2367, July 1998.
[MIGRATE] S. Sugimoto, F. Dupont, M. Nakamura, “PF_KEY Extension as an Interface
between

MobileIPv6andIPsec/IKE,”

draft-sugimoto-mip6-pfkey-migrate-03,work-in-progress.
Copyright Notice
Copyright (C) USAGI/WIDE Project (2006, 2007, 2008). All Rights Reserved.