home - みる会図書館


検索対象: UNIX MAGAZINE 2005年8月号
20件見つかりました。

1. UNIX MAGAZINE 2005年8月号

連載 / ネットワークとセキュリティ 図 6 JDK を RPM に変換 $ cd -/rpm/SRPMS/ ー 1 . 5 . ー 1 . 5 ー 1 . 5 ー 1 . 5 ー 1 . 5 . ー 1 . 5 . 0 ー ー 1 . 5 . ー 1 . 5 $ rpmbuild —-rebuild java—l . 5 .0—sun-1.5.0.04 ー ljpp. Ⅱ os て c . rpm + rm -rf /home/ ユーザー名 /rpm/BUILD/jdk1.5.0.04 + cd /home/ ユーザー名 /rpm/BUILD + umask 022 Executing(%prep) : /bin/sh —e /var/tmp/rpm¯tmp. 36779 + export MORE = 10000 + MORE = 10000 + sh /home/ ユーザー名 /rpm/SOURCES/jdk-1.5.0.04 —linux ー i586. bi Ⅱ Wrote : Wrote : Wrote : Wrote : Wrote : Wrote : Wrote : Wrote : /home/ ユーザー名 /rpm/RPMS/i586/java /home/ ユーザー名 /rpm/RPMS/i586/java /home/ ユーザー名 /rpm/RPMS/i586/java /home/ ユーザー名 /rpm/RPMS/i586/j ava /home/ ユーザー名 /rpm/RPMS/i586/j ava /home/ ユーザー名 /rpm/RPMS/i586/java /home/ ユーザー名 /rpm/RPMS/i586/java /home/ ユーザー名 /rpm/RPMS/i586/java ー sun ー 1 . 5 . 0 .04 ー ljpp. i586. rpm sun—devel—l . 5.0.04 ー ljpp. i586. rpm —sun—src—l . 5.0.04 ー ljpp. i586. rpm sun—demo—l . 5.0.04—1jpp. i586. rpm ¯sun¯plugin—l . 5.0 .04 ー ljpp ・ i586. て pm sun ー fo Ⅱ ts ー 1 . 5.0.04 ー ljpp. i586. rpm —sun-alsa—l . 5 . 0.04 ー ljpp. i586. て pm sun—jdbc—l . 5 . 0 .04 ー ljpp. i586. て pm . 0 ー 0 0 . 0 ー . 0 . 0 ー 0 図 7 RPM のインストール $ su # cd /home/ ユーザー名 /rpm/RPMS/i586 # rpm —i java ー 1 . 5.0 ー sun ー 1 . 5.0.04 ー ljpp. i586. rpm java ー 1.5.0 ー sun ー devel ー 1.5.0.04 ー ljPP. 土 586. て pm - java ー 1 . 5.0 ー su Ⅱー f0 Ⅱ ts ー 1 . 5.0.04 ー ljpp. i586. rpm java ー 1 . 5.0 ー sun ー plugi Ⅱー 1 . 5.0.04 ー ljpp ・ i586. て pm - java ー 1 . 5 . 0 ー su Ⅱー src ー 1 . 5 . 0.04 ー ljpp. i586 . rpm SRPM のリビルド /etc/rpm/macros. jpackage の RPM マクロを認識 する設定になっていることを確認したあと、 JPackage の SRPM パッケージを利用して、 Sun の JDK を RPM に 変換します ( 図 6 ) 。 X86 ー 64 版の場合には、 i586 を amd64 と読み替えてく RPM のインストール ださい。 UNIX MAGAZINE 2005.8 いないため、 SRPM からリビルドする必要があります。 問題によりバイナリ形式の RPM パッケージカ己布されて action API) が必要になります。 JTA もライセンス上の Tomcat をインストールするには、 JTA (Java Trans- JTA の SRPM のダウンロードとリビルド # yum install xorg—xll—deprecated-libs ァイルをインストールしてください。 いる場合があります。その場合には、以下のコマンドでフ 構成によっては、 X. org 関連で必要なファイルカ材く足して なお、 OS のインストール時に選択したソフトウェアの ールします ( 図 7 ) 。 最後に、 root に変更し、作成された RPM をインスト まず、 JPackage Project の、 ・ http://www.jpackage ・ org/rpm.php?id=1482 から jta-l. 0.1ー0. b. 4jpp. nosrc. rpm をダウンロードし、 入手したファイルを ~ / rpm / SRPMS ディレクトリに移動 します。 $ mv jta—l . 0.1ー0. b. 4jpp ・ nosrc. rpm -/rpm/SRPMS/ 次に、 Sun の JTA のⅥ b ページにアクセスし、クラ スファイルと JavaDocs をダウンロードします。 ・ http://java.sun.com/j2ee/ja/jta/index.html 、、クラスファイル 1.0. IB " の横の [Download] をクリッ クすると、ダウンロード・ページに転送されます。 JDK の場合と同様、、、 Accept License Agreement" をチェッ クすればファイルのダウンロードが可能になります。 Java(TM) Transaction API (JTA) Specification lnterface Classes 1.0. IB Maintenance Release" の下 にある jta-1-0-1B-classes. zip をダウンロードし、 -/rpm /SOURCES に移動します。 $ mv jta-1—0—1B-c1asses ・ zip -/rpm/SOURCES/ ふたたび JTA の Web ページに戻り、、、 JavaDocs 1. 53

2. UNIX MAGAZINE 2005年8月号

連載 / 旧 v6 の実装ー 0 図 11 BOUND 状態で RETURNING-HOME イベントを受信した場合のタ歩里 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1335 1336 1337 1338 1339 1340 1341 D になります。 case MIP6_BU_PRI_FSM_EVENT_RETURNING_HOME : if ( (mbu—>mbu-flags & IP6MU—HOME) ! = 0 ) { else break; * Stop timer, * Send BU, * Reset retransmission counter, * Start retransmission timer, * XXX Start failure timer . mip6—bu—stop—timers (mbu) ; mbu—>mbu_retrans_count = 0 ; error = mip6—bu—pri—fsm—home—registration(mbu) ; if (error) { / * continue and try again. * / *mbu—pri—fsm—state MIP6_BU_PRI_FSM_STATE_WAITD ; * Stop timers , * Start RR. mip6-bu—stop-timers (mbu) ; mip6—bu—sec—fsm (mbu , error MIP6_BU_SEC_FSM_EVENT_START_HOME_RR , data) ; if (error) { return (error) ; *mbu—pri—fsm—state MIP6_BU_PRI_FSM_STATE_RRDEL ; 1 , 320 ~ 1 , 339 行目は固定ノード用の対応付け更新エン トリの処理です。固定ノードに登録した対応付け情報は、 彳主復辛各確認手続きを経て登金年除しなければなりません。 1 , 326 行目の mip6-bu-sec-fsm() で HOME-RR イベ ントを発生させ、ホーム・ネットワークでの彳主復糸各確認 手続きを開始します。通常、往復経路確認は、移動ノード のホームアドレスと気付アドレスの両方に対して実施され ます。しかし、移動ノードがホーム・ネットワークに接続 している場合、ホームアドレスと気付アドレスは同じアド レスになるため、仕様ではホームアドレスに対してのみ往 116 復経路確認手続きを実施するように定義されています。次 のた態は RRD EL です。 1 , 343 ~ 1 , 360 行目 ( 図 12 ) は BOUND 状態のときに REVERSE-PACKET イベントを受信した場合の処理で す。移動ノードの対応付け更新エントリが BOUND 状態 になっているので、移動ノードは対応付け情報を登録した と判断しています。しかし、 REVERSE-PACKET イベ ントを受信したので、通信相手の固定ノードは、まだ対応付 け情報を受け取っていないことを意味します。 KAME で は、固定ノードに対応付け更新メッセージの応答を要求し ないため、対応付け更新メッセージカ云送過程で失われた UNIX MAGAZINE 2005.8

3. UNIX MAGAZINE 2005年8月号

ー 0 連載 / 旧 v6 の実装 図 10 BOUND 状態で MOVEMENT イベントを受信した場合のタ里 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1286 1287 1288 1289 1290 1291 1292 です。 case MIP6_BU_PRI_FSM_EVENT_MOVEMENT : if ( (mbu—>mbu-flags & IP6MU_HOME) ! = 0 ) { * Send BU, * Stop timer, if (error) { data) ; MIP6_BU_SEC_FSM_EVENT_START_RR, error = mip6—bu-sec—fsm(mbu, mip6—bu—stop—timers (mbu) ; * Start RR * Stop timers , MIP6_BU_PRI_FSM_STATE_WAITA ; *mbu—pri—fsm—state / * continue and try again. * / if (error) { error = mip6—bu—pri—fsm—home—registration(mbu) ; mbu—>mbu_retrans_count = 0 ; mip6—bu—stop—timers (mbu) ; * XXX Start failure timer . * retransmiSS1011 timer, * Reset retransmISS1011 counter, = MIP6_BU_PRI_FSM_STATE_RRINIT ; —pri—fsm—state return (error) ; break ; 1 , 271 ~ 1 , 290 行目は固定ノード用の対応付け更新エン トリの処理です。固定ノードの場合は、ます往復経路確認 手読きをおこなう必要があるので、 1 , 277 行目の mip6 ー bu ー sec-fsm() で START-RR イベントを発生させ、往復糸登各 確認手続きを開始します。次は RRINIT となり、往 復糸各確認の完了を待ちます。 1 , 294 ~ 1 , 341 行目 ( 図 11 ) は BOUND 状態のときに RETURNING-HOME イベントを受信した場合の処理 です。移動ノードがホーム・ネットワークに帰還したこと を未するので、現在登録されている対応付け情報を削除 UNIX MAGAZINE 2005 . 8 します。 1 , 295 ~ 1 , 318 行目はホーム登録用の対応付け更新エン トリの処理です。 1 307 行目の mip6-bu-pri-fsrn-home- registration() で対応付け更新を送信し、現在の登録を解 除します。この時点で、すでに移動ノードの気付アドレス はホーム・ネットワークでのアドレス ( すなわち、ホーム アドレス ) になっているため、 mip6-bu-pri-fsm-home- registration() で送信される対応付け更新は自動的に登録 解除のためのメッセージ ( ホームアドレスと気付アドレス が同一の対応付け更新メッセージ ) になります。対応付け 更新メッセージを送信したあと、エントリの状態は WAIT ー 115

4. UNIX MAGAZINE 2005年8月号

連載 / 旧 v6 の実装ー 0 図 3 WAITD 状態で UNKNOYVN-MH-TYPE イベントを受信した場合のタ里 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 case MIP6_BU_PRI_FSM_EVENT_UNKNOWN_MH_TYPE : if ( (mbu—>mbu—flags & IP6MU-HOME) ! = 0 ) { / * XXX correct ? * / break; * Stop timers . mip6—bu—stop—timers (mbu) ; *mbu—pri—fsm—state = MlP6—BU—PRI—FSM—STATE_IDLE ; mbu—>mbu—state ー = MIP6—BU—STATE—DISABLE ; break; 図 4 WAITD 状態で MOVEMENT イベントを言した場合のタ里 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1067 1068 1069 1070 1071 1072 1073 1074 1075 case MIP6_BU_PRI_FSM_EVENT_MOVEMENT : if ( (mbu—>mbu—flags & IP6MU—HOME) ! = 0 ) { * Stop timers, * XXX else break; break ; * Reset retrainsmission counter, * Start retransmission timer, * XXX Start failure timer . mip6—bu—stop-timers (mbu) ; mbu—>mbu_retrans_count = 0 ; error = mip6—bu—pri—fsm—home—registration(mbu) ; if (error) { / * continue and try again. * / *mbu—pri—fsm—state MIP6_BU_PRI_FSM_STATE_WAITA ; * Stop timers, * Start RR . mip6—bu—sec—fsm(mbu, error MIP6_BU_SEC_FSM_EVENT_START_RR, data) ; if (error) { *mbu—pri—fsm—state MIP6_BU_PRI_FSM_STATE_RRINIT ; 処理を開始します。 ントリに対する処理です。 1 037 行目の mip6-bu-stop- 1 , 037 ~ 1 , 052 行目はホーム登録用の対応付け更新エ 110 timers() でホーム登金年除に利用されているタイマーを停 止し、 1 041 行目の mip6-bu-pri-fsm-home-registra- tion() でホーム登録のための対応付け更新メッセージを送 UN 工 X MAGAZINE 2005 . 8

5. UNIX MAGAZINE 2005年8月号

連載 / 旧 v6 の実装ー 0 図 9 BOUND 状態で BRR イベントを言した場合び里 1201 case MIP6—BU—PRI—FSM_STATE_BOUND : 1202 1203 1204 1205 1206 1207 1208 1209 1210 1216 1217 1218 1219 12 20 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1237 1238 1239 1240 1241 1242 1243 switch (event) { case MIP6_BU_PRI_FSM_EVENT_BRR : if ( (mbu->mbu-flags & IP6MU-HOME) ! = 0 ) { if (error) { data) ; MIP6_BU_SEC_FSM_EVENT_START_RR, error = mip6—bu—sec—fsm(mbu, mip6—bu—stop-timers (mbu) ; * Start RR . * Stop timers , = MIP6_BU_PRI_FSM_STATE_WAITAR ; *mbu—pri—f sm—state / * continue and try again. * / if (error) { error = mip6—bu—pri—fsm—home—registration(mbu) ; * retransmISS10n timer . * Send BU, = MIP6_BU_PRI_FSM_STATE_RRREDO ; *mbu—pri—fsm—state return (error) ; break; ードは、必要に応じて再対応イ寸け要求メッセージを移動ノ ードに送信し、明示的に対応付け更新メッセージの送信を 要求することができます。再対応付け要求メッセージを受 信した移動ノードは、メッセージを送信してきたノードに 対応付け更新メッセージを返信することカ待されていま す。 1 , 204 ~ 1 , 220 行目は、ホーム登録用の対応付け更新エン トリ (IP6MU-HOME フラグが設疋されている ) の処理 です。この場合、 1 209 行目の mip6_bu-pri-fsm-home- registration() でホーム登録用の対応付け更新メッセージ を送信し、 1 , 219 ~ 1 , 220 行目で次状態を WAITAR に移 します。 1 , 226 ~ 1 , 241 行目は固定ノード用の対応付け更新エン トリの処理です。固定ノードに対応付け更新メッセージを 114 送信するためには、ます往復経路確認手続きを完了させな ければなりません。 1 , 228 行目の mip6-bu-sec-fsm() で START-RR イベントを送信し、往復糸各確認手続きを開 始します。次の状態は RRREDO です。 1 , 245 ~ 1 , 292 行目 ( 図 10 ) は BOUND 状態のときに MOVEMENT イベントを受信した場合の処理です。移 動ノードが、別の出先ネットワークに移動したことを意味 するので、新たに取得した気付アドレスを通信相手に通知 しなければなりません。 1 , 246 ~ 1 , 269 行目はホーム登録用の対応付け更新エン トリの処理です。接続先の出先ネットワークが変わった ので、 1 258 行目で mip6-bu-pri-fsm-home-registra- tion() を呼び出し、新しい気付アドレスを登録するための 対応付け更新メッセージを送信します。次状態は WAITA UNIX MAGAZINE 2005.8

6. UNIX MAGAZINE 2005年8月号

連載 / Ⅲ v6 の実装ー 0 図 2 WAITD 状態で RETRANS-TIMER イベントがもた場合のタ里 961 967 968 969 970 971 972 973 979 980 981 982 983 984 985 986 987 988 989 990 1009 1008 1007 1006 1005 1004 1003 1002 1001 1000 999 998 997 996 995 case MIP6_BU_PRI_FSM_EVENT_RETRANS_TIMER : if ( (mbu—>mbu-flags & IP6MU—HOME) ! = 0 ) { * Send BU, * Start retransmittion timer . error = mip6—bu—pri—fsm—home—registration(mbu) ; if ( e て ro て ) { / * continue and try again. * / *mbu—pri_fsm_state = MIP6_BU_PRI_FSM_STATE_WAITD ; * Send BU, * Start retransmittion timer . mip6—bu—send—cbu(mbu) ; error if (error) { else break; mbu return (error) ; (mbu—>mbu_retrans_count 十十 > MIP6_BU_MAX_BACKOFF) mbu—>mbu_retrans_count MIP6_BU_MAX_BACKOFF ; —>mbu_retrans mono_time . tV_sec 十 ( 1 くく mbu—>mbu_retrans_count) ; *mbu—pri—fsm_state MIP6_BU_PRI_FSM_STATE_WAITD ; ッセージに対して、指定時間内に応答メッセージが返され なかった場合に発生します。このとき、 972 行目で mip6- bu-pri-fsm-home-registration() を呼び出し、対応付け 更新メッセージを再送します。 985 ~ 1 : 007 行目は固定ノ ード用の処理 (IP6MU-HOME フラグが未言ですが、 KAME では固定ノードに応答メッセージを要求しないた め、この部分が実行されることはありません。 1 , 011 ~ 1 , 026 行目 ( 図 3 ) は、 WAITD 月た態のときに UNKNOWN-MH-TYPE イベント ( 未知のタイフ。番号 をもっモビリテイへッダ ) を受信した場合の処理です。未 知のタイプ番号を受信すると、基本的には Mobile IPv6 処理を停止します ( 1 , 020 ~ 1 , 024 行目 ) 。ただし、ホーム UNIX MAGAZINE 2005.8 登金牟除の過程で MobiIe IPv6 の機能を停止すると、以後 はホームアドレスを用いた通信ができなくなるため、 1 012 ~ 1 , 015 行目で暫定的にエラーを無視しています。なお、 1 , 020 ~ 1 , 024 行目は固定ノードの場合の処理ですが、固 定ノードに対する対応付け更新エントリが応答メッセージ を待つ WAITD た態になることはないため、この部分は 実行されません。 1 , 028 ~ 1 , 075 行目 ( 図 4 ) は、 WAITD 状態のときに MOVEMENT イベントを受信した場合の処理です。 したことになるため、ホーム登宝鷯年除処理を中止し、移動 がホーム・ネットワークを離れて出先ネットワークに移動 れは、ホーム登録の解除処理カ院了する前に、移動ノード 109

7. UNIX MAGAZINE 2005年8月号

図 12 1343 1344 1345 1346 1347 1348 1349 1350 1355 1356 1357 1358 1359 1360 図 13 1362 1363 1364 1365 1366 1367 1368 1369 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1396 1397 1398 1399 1400 1401 1402 連載 / 旧 v6 の実装ー 0 if ( (mbu->mbu—flags & IP6MU-HOME) ! = 0 ) { case MIP6_BU_PRI_FSM_EVENT_REFRESH_TIMER : BOUND 状態で REFRESH-TIMER イベントを受信した場合の処理 break; *mbu—pri-fsm—state = MIP6—BU—PRI-FSM-STATE_RRREDO ; return (error) ; if (error) { data) ; MIP6_BU_SEC_FSM_EVENT_START_RR, error = mip6—bu—sec—fsm(mbu, * Start RR . case MIP6_BU_PRI_FSM_EVENT_REVERSE_PACKET : BOUND 状態で REVERSE-PACKET イベントを受信した場合の処理 else break ; * Send BU, * retransmiSS10n timer . mip6—bu-pri—fsm—home—registration (mbu) ; error if (error) { / * continue and try again. * / *mbu—pri—fsm—state MIP6_BU_PRI_FSM_STATE_WAITAR ; * Stop timers , * Start RR . mip6—bu—stop—timers (mbu) ; mip6—bu—sec—fsm(mbu , error MIP6_BU_SEC_FSM_EVENT_START_RR , data) ; if (error) { *mbu—pri—fsm—state = MIP6_BU_PRI_FSM_STATE_RRREDO ; 場合、この状況カ吮生する可能性があります。 UNIX MAGAZINE 2005.8 に REFRESH-TIMER イベントを受信した場合の処理 1 , 362 ~ 1 , 402 行目 ( 図 13 ) は、 BOUND 状態のとき REDO になります。 めの往復経路確認手続きを開始します。次の状態は RR- べントを発生させ、対応付け更新メッセージを送信するた 1 , 347 行目の mip6-bu-sec-fsm() で START-RR イ です。 BOUND 状態での REFRESH-TIMER イベン トは、対応付け更新情報の有効時間を延長するための、対 応付け更新メッセージの再送を未します。 1 , 363 ~ 1 , 379 行目はホーム登録用の対応付け更新エン トリの処理です。 1 368 行目の mip6-bu-pri-fsm-home- registration() で対応付け更新メッセージを送信し、対応 付げ情報の肩効時間を延長します。次の状態は WAITAR 117

8. UNIX MAGAZINE 2005年8月号

図 15 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 図 16 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 連載 / 旧 v6 の実装ー 0 if (mip6—bu—send—h0ti(mbu) ! = 0 ) * Steart failure timer * Start retransmission timer, * Send HoTI , case MIP6_BU_SEC_FSM_EVENT_START_HOME_RR: START 状態で HOME-RR イベントを受信した場合のタ里 break ; *mbu_sec_fsm_state = MIP6_BU_SEC_FSM_STATE_WAITHC ; mono—time . tv-sec + MIP6 HOT—TIMEOUT * 5 ; / * XXX * / mbu—>mbu_failure mono_time . tv_sec + MIP6_HOT_TIMEOUT ・ mbu—>mbu retrans break; if (mip6-bu-send-coti (mbu) ! = 0 ) break; if (mip6-bu-send-hoti (mbu) ! = 0 ) * Steart failure timer * retransmISS1011 , * Send CoTI , * Send HoTI , case MIP6_BU_SEC_FSM_EVENT_START_RR : switch (event) { case MIP6-BU_SEC_FSM_STATE_START : switch (*mbu—sec—fsm—state) { START 状態で START-RR イベントかした場合び匙理 break; mbu—>mbu retrans mono_time . tV mbu—>mbu_failure mono_time . tV *mbu_sec_fsm state break; break; _sec + MIP6_HOT_TIMEOUT ; —sec + MIP6_HOT_TIMEOUT * 5 ; / * XXX * / = MIP6_BU_SEC_FSM_STATE_WAITH ; とになっています。 次の状態は WAITHC です。 hoti() でホームテスト開始メッセージを送イ言し、 1 , 572 行 に対してのみ実施します。 1 , 566 行目の mip6-bu-send- レスは同一です。よって、彳主復経路確認はホームアドレス ホーム・ネットワークでは、ホームアドレスと気付アド 続きを開始するように指示されたことを未します。 に登録した対応付け情報を削除するための往復経路確認手 ードがホーム・ネットワークに帰還したので、固定ノード HOME-RR イベントを受信した場合の処理です。移動ノ 図 16 の 1 , 560 ~ 1 , 574 行目は、 START ) 大態のときに 120 目で次状態を WAITH に移します。 WAITHC 状態 WAITHC は、ホームテスト開始メッセージと気付テス ト開始メッセージを送信し、その応答メッセージであるホ ームテスト・メッセージと気付テストメッセージを待って いる状態です。 1 , 578 ~ 1 , 592 行目 ( 図 17 ) は、 WAITHC 状態のとき に HOT イベント ( ホームテスト・メッセージの受信 ) が 発生した場合の処理です。 1 , 585 ~ 1 , 588 行目で、ホーム ナンス・インデックス (ip6mhht-nonce-index) とホーム UN 工 X MAGAZINE 2005.8

9. UNIX MAGAZINE 2005年8月号

連載 / 旧 v6 の実装ー 0 図 14 BOUND 状態で UNVERIFIED-HAO イベントを受信した場合 0 里 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1445 1446 1447 1448 1449 1450 1451 1452 1453 1457 1458 1459 1460 です。 case MIP6_BU_PRI_FSM_EVENT_UNVERIFIED_HAO : if ( (mbu->mbu—flags & IP6MU—HOME) ! = 0 ) { * Send BU, * Stop timer, MIP6_BU_PRI_FSM_STATE_RRINIT ; *mbu—pri—fsm—state return (error) ; if (error) { data) ; MIP6_BU_SEC_FSM_EVENT_START_RR , error = mip6—bu—sec—fsm(mbu, mip6-bu—stop—timers (mbu) ; * Start RR . * Stop timers, MIP6_BU_PRI_FSM_STATE_WAITA ; *mbu—pri—fsm_state / * continue and try again. * / if (error) { error = mip6—bu—pri—fsm—home—registration (mbu) ; mbu—>mbu_retrans_count = 0 ; mip6-bu-stop-timers (mbu) ; * XXX Start failure timer . * retransmISSion timer, * retransnnssion return ( 0 ) ; break; break; 1 , 381 ~ 1 , 400 行目は固定ノード用の対応付け更新エン トリの処理です。対応付け更新メッセージを送信するため に必要な往復経路確認手続きを、 1 , 387 行目の mip6-bu- sec-fsm() で開始しています。ただし、 KAME の移動ノ ードは、固定ノード用の対応付け更新エントリの有効時間 を能動的に延長することはありません。固定ノード用の対 118 応付け更新エントリの再送タイマーは、有勠時間が切れる 時刻と同じ時刻に設定してあるため、再送処理が発生する 前に効時間切れで情報カ哨リ除されるようになっています。 これは、固定ノードに対するエントリが無限に残ってしま うことを防ぐためです。よって、 1 , 381 ~ 1 , 400 行目が実 行されることはありません。 図 14 の 1 , 404 ~ 1 , 450 行目は、 BOUND : 大態のときに UNIX MAGAZINE 2005 . 8

10. UNIX MAGAZINE 2005年8月号

連載 / v6 の実装ー 0 MIP6-BU-PRI-FSM-STATE-BOUND MIP6-BU-PRI-FSM-STATE-WAITD MIP6-BU-PRI-FSM-STATE-WAITAR MIP6-BU-PRI-FSM-STATE-WAITA MIP6-BU-PRI-FSM-STATE-RRDEL MIP6-BU-PRI-FSM-STATE-RRREDO MIP6-BU-PRI-FSM-STATE-RRINIT MIP6-BU-PRI-FSM-STATE-IDLE 値 表 1 泉兄の状態一覧 イベント 表 2 状態遷移関数で用いられるイベント一覧 初期状態 固定ノードに対応付け更新メッセージを送信するための彳夏糸各確認を実行中 固定ノードとのあいだの対応付けを更新するために彳夏糸箚在認を実行中 固定ノードとのあいだの対応付けを削除するために彳第箚寉認を実行中 対応付けカ院了した状態 の受寺ち 対応付け情報を削除するための対応付け更新メッセージへの対応付け応答メッセー の受信待ち 対応付け清報を更新するための対応付け更新メッセージへの対応付け応答メッセー 対応付け応答メッセージの受イ寺ち ン ン MIP6-BU-PRI-FSM-EVENT-MOVEMENT MIP6-BU-PRI-FSM-EVENT-RETURNING-HOME MIP6-BU-PRI-FSM-EVENT-REVERSE-PACKET MIP6-BU-PRI-FSM-EVENT-RR-DONE MIP6-BU-PRI-FSM-EVENT-RR-FAILED MIP6-BU-PRI-FSM-EVENT-BA MIP6-BU-PRI-FSM-EVENT-BRR MIP6-BU-PRI-FSM-EVENT-FAILURE-TIMER MIP6-BU-PRI-FSM-EVENT-REFRESH-TIMER MIP6-BU-PRI-FSM-EVENT-RETRANS-TIMER MIP6-BU-PRI-FSM-EVENT-ICMP-PARAMPROB MIP6-BU-PRI-FSM-EVENT-UNKNOWN-MH-TYPE MIP6-BU-PRI-FSM-EVENT-UNVERIFIED-HAO MIP6-BU-PRI-FSM-EVENT-NO-BINDING MIP6-BU-SEC-FSM-EVENT-RETRANS-TIMER MIP6-BU-SEC-FSM-EVENT-COT MIP6-BU-SEC-FSM-EVENT-HOT MIP6-BU-SEC-FSM-EVENT-STOP-RR MIP6-BU-SEC-FSM-EVENT-START-HOME-RR MIP6-BU-SEC-FSM-EVENT-START-RR 950 case MIP6_BU—PRI—FSM_STATE_WA 工 TD : 図 1 、 VAITD 状態で BA イベントか . した場合のタ里 新しい出先ネットワークに接続した ホーム・ネットワークに帰還した 固定ノードから糸各最適化されていなしソヾケットを受信した 彳夏糸各確認手イ売きカ院了した 未使用 ( 往復糸登箚寉認手続きカ敗した ) 再対応付け要求メッセージを受信した 対応付け応答メッセージを受信した 吏用 ( 未定義 ) 対応付けキャッシュがないホームアドレスを使用した 未知のモビリテイへッダ・タイプ番号を使用した ICMPv6 Parameter Problem を受信した できなかった (mbu-sec-fsm-state 専用 ) 応答が必要なメッセージに対して、指定した時間内に応答を受信 気付テストメッセージを受信した ホームテスト・メッセージを受信した 彳夏糸各確認手続きの中 1E 指示 ホーム・ネットワークでの術夏糸箚寉認手続きの開々幇旨示 彳各確認売きの開々旨示 吏用 ( 回復できないエラーカ吮生した ) 対応付け更新エントリの有効時間延長時刻がきた できなかった (mbu-pri-fsm-state 専用 ) 応答が必要なメッセージに対して、指定した時間内に応答を受信 951 952 953 954 955 956 957 958 959 switch (event) { case MIP6_BU_PRI_FSM_EVENT_BA : / * XXX no code yet . * / } else { / * XXX home de—registration completed. if ( (mbu->mbu-flags & IP6MU-HOME) ! = 0 ) { break ; 応答メッセージを要求しないので、この部分は実装されて いません。 961 ~ 1 , 009 行目 ( 図 2 ) は、 WAITD 状態のときに 108 RETRANS-TIMER イベントが発生した場合の処理で す。 RETRANS-TIMER イベントは、ホーム・エージ ェントに送信したホーム登録解除のための対応付け更新メ UNIX MAGAZINE 2005 . 8