デバイス移行(Device Migration)

1. デバイス移行とは

有効なPaid Licenseの既存Unitを旧インストールから新インストールへ移します。新デバイスは独自のidentityと鍵を生成します。旧デバイスのprivate key、device.json、DPAPI state、Gateway identityをコピーしません。Trial移行は未対応です。

2. 必要になる場合

既存stateとidentityを保持する更新はデバイス移行ではありません。

3. 移行前の準備

新デバイスで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. 失敗時と注意事項