CloudEdge Phase 5.1 OCI Provider Executor 冒煙測試
Result: PASS
日期: 2026-05-31 UTC
分支/建置: phase5-oci-azure-executors / routerd v20260528.2308 (67d96103)
證據包: /home/imksoo/routerd-labs/cloudedge-sam/evidence/20260531T005414Z-phase5-oci-live-67d96103
範圍
- Provider mutation 對象: 僅 OCI。
- 租用戶/區域:
ocid1.tenancy.oc1..aaaaaaaaby2raoa2kzgywrsz6ofjk4eks6uwtpczgtqxulach3xgksfx52qq/ap-tokyo-1。 - 複用的 routerd 專用 SAM 實驗室:
Project=routerd-cloudedge-sam-oci-pve。 - 目標路由器執行個體:
routerd-cloud-oci/ocid1.instance.oc1.ap-tokyo-1.anxhiljr6yebb3qc2sucs3kor7u77ki2cg7zf3xlgmubj5utwfqeejmm7crq。 - 目標用戶端執行個體:
oci-cloud-client/ocid1.instance.oc1.ap-tokyo-1.anxhiljr6yebb3qc2biuwl7yyjglwn6aompawzlfmkohpbrqceuijiuf7dva。 - 目標 VNIC:
ocid1.vnic.oc1.ap-tokyo-1.abxhiljrzn6c2b4hs2jljbs4cmbshywzr7ldugepftjdrvm77nlvcvbdzzkq。 - 捕獲位址:
10.77.60.9。
重設基線
mutation 前, 將現有 SAM 實驗室重設為全新的 provider 基線:
- 從路由器 VNIC 刪除
10.77.60.9輔助私有 IP。 - VNIC 恢復
skipSourceDestCheck=false。 - 重設後證據:
oci-router-vnic-post-reset.json,oci-router-private-ips-post-reset.json,retry-reset-summary.tsv。
執行個體主體門控
routerd-cloud-oci 接收了 executor 用的 OCI 動態群組和策略。
- 動態群組:
routerd_phase5_oci_executor。 - 初始的最小權限策略對
private-ip create不夠, 回傳NotAuthorizedOrNotFound。 - 推進優先的修復: 將此實驗室動態群組的策略擴大為
manage virtual-network-family in tenancy。
路由器上的執行個體主體 preflight 通過:
oci network vnic get可讀取目標 VNIC。oci network private-ip list可讀取目標 VNIC 的私有 IP。
Executor 執行
在 routerd-cloud-oci 上建置並安裝了 oci-provider-executor。
匯入、核准、dry-run 並執行了 2 個 retry2 action journal 條目:
assign-secondary-ip- Result:
succeeded - Message:
assigned 10.77.60.9 to <target VNIC>
- Result:
ensure-forwarding-enabled- Result:
succeeded - Message:
set skipSourceDestCheck=true on <target VNIC> (prior=false) - 觀察到的 journal fact:
priorSkipSourceDestCheck=false
- Result:
mutation 後的 OCI 驗證:
- VNIC 主:
10.77.60.4 - VNIC 輔助:
10.77.60.9 skipSourceDestCheck=true
資料平面驗證
雲端側:
routerctl doctor hybrid:overall=pass,pass=12,warn=0,fail=0,skip=1。- 傳遞路由:
10.77.60.9 dev wg-hybrid metric 120。 - 本地 OS 位址不存在:
10.77.60.9/32 absent from local interfaces。 - MSS clamp:
routerd_mss covers ens3 -> wg-hybrid。
本地側:
- router06
routerctl doctor hybrid:overall=pass,pass=15,warn=0,fail=0,skip=1。 - 雲端用戶端
10.77.60.7的 Proxy ARP claim 保持健康。
用戶端連線性:
- cloud-client
10.77.60.7-> onprem-client10.77.60.9ping:3/3,0% packet loss。 - onprem-client
10.77.60.9-> cloud-client10.77.60.7ping:3/3,0% packet loss。 - cloud -> onprem SSH 來源位址保留:
SSH_CONNECTION=10.77.60.7 ... 10.77.60.9 22
- onprem -> cloud SSH 來源位址保留:
SSH_CONNECTION=10.77.60.9 ... 10.77.60.7 22
- 預設閘道未變更:
- cloud-client:
default via 10.77.60.1 dev ens3 - onprem-client:
default via 10.77.60.1 dev eth0
- cloud-client:
- NAT: 透過 SSH 來源位址保留確認不存在。
回滾與恢復
透過 routerctl action rollback 執行了回滾:
- action 4
ensure-forwarding-enabled:rolledBack, 恢復skipSourceDestCheck=false。 - action 3
assign-secondary-ip:rolledBack, 取消分配10.77.60.9。
回滾期間發現 1 個可修復的實驗室問題: OCI 的 private-ip delete 可能超過 Plugin 原始的 30s 逾時。將實驗室的 Plugin 逾時擴大到 120s 後, action 3 的回滾完成, journal 中記錄了 rolledBack。
最終 teardown 使用選項 B: 恢復現有的 SAM 實驗室狀態。
10.77.60.9輔助私有 IP 重新存在。skipSourceDestCheck=true。routerd-cloud-oci:STOPPED。oci-cloud-client:STOPPED。
成本狀態:
- OCI 運算已停止。
- 現有的公用 IP、開機磁碟區、VNIC、子網、VCN、策略作為可複用的 SAM 實驗室狀態保留。
備註
- OCI Ubuntu 映像帶有終端的 iptables reject 規則。在資料平面驗證前套用了與 OCI SAM 冒煙測試相同的實驗室防火牆引導。
- 首次 executor 嘗試發現執行個體主體策略對私有 IP 建立過窄。擴大實驗室動態群組策略後, retry2 的 action 對通過。
- 首次以一般使用者執行回滾的嘗試因 action DB 檔案權限被拒絕。回滾使用
sudo routerctl執行, 與 action DB 的擁有權一致。