CloudEdge Mobility D5 AWS メンテナンススモーク
Result: PASS
日付: 2026-05-31
ビルド: main 99eb1d45
エビデンスバンドル: /home/imksoo/routerd-labs/cloudedge-mobility/evidence/20260531T215831Z-d5-aws-rerun-99eb1d45
シナリオ
- AWS のみの D5 ライブメンテナンス / 捕捉の移行。
- 既存のアクティブルーター A を再利用:
i-001f62ac01d66e782、ENI-Aeni-0d17f203a6717e4d9、プライマリ10.77.60.4。 - スタンバイルーター B をこの実行用に再作成:
i-045382a4f5bbf6fc0、ENI-Beni-017dd140722f5d819、プライマリ10.77.60.14、t3.small。 - AWS クラウドクライアントを再利用:
i-0c5d4e3578e7669a9、10.77.60.11。 - 捕捉アドレス: オンプレミスクライアント
10.77.60.10/32。
初期捕捉
- A がインポートして実行:
assign-secondary-ipepoch 1 (10.77.60.10/32を ENI-A に)。ensure-forwarding-enabledepoch 1 (ENI-A に対して)。
- 初期実行後の AWS プロバイダー状態:
- ENI-A:
10.77.60.4,10.77.60.10、SourceDestCheck=false。 - ENI-B:
10.77.60.14、SourceDestCheck=true。
- ENI-A:
- 移行前のデータプレーン:
- cloud-client
10.77.60.11 -> 10.77.60.10ping:3/3、0% loss。 - SSH でオンプレミスクライアントにソース保持で到達:
SSH_CONNECTION=10.77.60.11 ... 10.77.60.10 22。
- cloud-client
ドレインと移行
- ルーター A に
maintenance.drain=trueを宣言的に適用。 - A が epoch 2 の解放アクションをインポート:
unassign-secondary-ip(10.77.60.10/32を ENI-A から)。ensure-forwarding-disabled(ENI-A に対して)。
- B が epoch 2 の捕捉アクションをインポート:
assign-secondary-ip(10.77.60.10/32を ENI-B に)。ensure-forwarding-enabled(ENI-B に対して)。
- A の unassign が正常に実行され、ENI-A から
.10を削除。 - B の assign が正常に実行され、ENI-B に
.10を追加。 - 移行後の AWS プロバイダー状態:
- ENI-A:
10.77.60.4、SourceDestCheck=true。 - ENI-B:
10.77.60.14,10.77.60.10、SourceDestCheck=false。
- ENI-A:
- 捕捉 epoch がホルダー
aws-router-b、epoch2に収束。
Epoch フェンス
- A の epoch 1 アクションはドレイン前に成功。
- A の epoch 2 unassign と forwarding-disable は実行されるまでジャーナルに残存。
- B の epoch 2 assign と forwarding-enable が正常に実行。
- stale ゲートを非プロバイダーのジャーナルプローブで検証:
- 同一捕捉キーの epoch 1 pending アクションを
d5-rerun-stale-probe-epoch1として挿入; routerctl action importがstatus=skippedに変更;- 結果メッセージ:
stale mobility capture epoch。
- 同一捕捉キーの epoch 1 pending アクションを
移行後のデータプレーン
- B 側
doctor hybrid: PASS。 - B 側
routerd_mss:ens5 -> wg-hybridに存在。 - オンプレミス
routerd_mss:ens21 -> wg-hybridに存在。 - neighbor リフレッシュ後、cloud-client
10.77.60.11 -> 10.77.60.10ping が 3 回連続ラウンドで3/3通過。 - SSH で B 経由でオンプレミスクライアントにソース保持で到達:
SSH_CONNECTION=10.77.60.11 ... 10.77.60.10 22。
- クライアントのデフォルトゲートウェイは変更なし:
default via 10.77.60.1。
後片付け
- ENI-B から
10.77.60.10を削除。 - ENI-A と ENI-B で
SourceDestCheck=trueを復元。 - IAM インラインポリシーを B スコープ前のドキュメントに復元。
- B を terminate。
- A と cloud-client を停止。
- 最終コスト状態:
- A:
stopped。 - cloud-client:
stopped。 - B:
terminated。 - ENI-A ベースライン:
10.77.60.4のみ、SourceDestCheck=true。
- A: