デバイス移行(Device Migration)
1. デバイス移行とは
有効なPaid Licenseの既存Unitを旧インストールから新インストールへ移します。新デバイスは独自のidentityと鍵を生成します。旧デバイスのprivate key、device.json、DPAPI state、Gateway identityをコピーしません。Trial移行は未対応です。
2. 必要になる場合
- サーバー交換
- 既存identity/stateを保持できないOS再インストール
- 新しいdevice identityが必要なハードウェア変更
既存stateとidentityを保持する更新はデバイス移行ではありません。
3. 移行前の準備
- Paid License ID/Keyを準備し、Keyをコマンドラインやサポートメッセージに記載しません。
- 新デバイスへ承認済み配布物をインストールし、新デバイス用state-directoryを使用します。
- 旧デバイスへアクセスできる通常交換か、アクセス不能の復旧かを決定します。
- 旧identity/stateを削除・初期化しません。
新デバイスでregisterを実行し、表示されたDevice CodeをNative登録・移行ページへ入力します。Licenseを確認後、既存Unit移行、移行元インストール、交換理由を選び、同じoperationとstate-directoryを維持します。
新Windowsデバイス
$state = 'C:\ProgramData\ODRE\native-commercial'
$trust = '<APPROVED_TRUST_JSON_ABSOLUTE_PATH>'
$trustPin = '<INDEPENDENT_TRUST_SHA256>'
& .\runtime\python.exe .\odre-native.py register `
--state-directory $state `
--trust-config $trust --trust-pin $trustPin新Linuxデバイス
python3.12 ./odre-native-ubuntu.py register \
--state-directory "$state" \
--trust-config "$trust" --trust-pin "$trust_pin"
4. 旧デバイスの処理
通常交換: 新規トラフィックを停止し、drain確認まではNativeを稼働させます。ポータルのodre-device-transfer-request.jsonを旧デバイスへ渡し、次を実行します。
# Windows
& .\runtime\python.exe .\odre-native.py transfer-release `
--state-directory $state --trust-config $trust --trust-pin $trustPin `
--transfer-request ".\odre-device-transfer-request.json" --confirm-stop
# Linux
state="$HOME/.local/state/odre-pqc/native-commercial"
trust='<APPROVED_TRUST_JSON_ABSOLUTE_PATH>'
trust_pin='<INDEPENDENT_TRUST_SHA256>'
python3.12 ./odre-native-ubuntu.py transfer-release \
--state-directory "$state" --trust-config "$trust" --trust-pin "$trust_pin" \
--transfer-request "./odre-device-transfer-request.json" --confirm-stop完了後は旧デバイスを再起動しません。旧Offline Leaseの期限切れまで待機する場合があります。
アクセス不能: 同じポータルoperationでsource recoveryを申請し、新デバイスの同じregisterで同意を確認して、サポート承認とLease期限切れを待ちます。
5. 新デバイスの有効化
同じregisterコマンドとstate-directoryで続行します。timeout時もidentityを初期化せず、同じコマンドを再実行します。commitと宛先結束の確認後、Leaseが新デバイスへ原子的に保存されます。
6. 完了確認
APPLIEDとローカルLease保存を確認し、製品のstatusを確認します。Gateway → Core → Protected Handler要求と要求ごとのHandler 1回実行を確認してからトラフィックを開きます。COMMITTEDだけでは完了ではありません。
7. 失敗時と注意事項
LICENSE_UNIT_LIMIT: 既存Unit移行または追加Unitが必要です。SUPPORT_PENDING: 新デバイス同意とサポート承認待ちです。WAITING_OLD_LEASE: 旧Offline Lease期限切れ待ちです。- 中断時は同じoperation/state-directoryで復旧します。
- identity、private key、state、Leaseをコピー・削除・初期化しません。
- 検証を迂回せず、旧デバイスを強制再稼働しません。