升級 Debian 13 基底
Carrier Router 已採用 Debian 13(Trixie);更新基底不代表吞吐量較高,但意味著諸多安全性得到修正與補強,未來我們也會盡可能跟進新版核心確保資訊安全。
Carrier Router 已採用 Debian 13(Trixie);更新基底不代表吞吐量較高,但意味著諸多安全性得到修正與補強,未來我們也會盡可能跟進新版核心確保資訊安全。
Carrier Router 以 VyOS 1.5 開發分支(rolling)為基礎,後續由 GPT-6 Astra 協助進行大幅度改寫。本專案獨立發展,並非 VyOS 官方發行版本。
設定分模組序列化,採用不可變更的修訂版本,並以原子切換更新目前版本。明確區分已 commit 與已 save 的狀態,升級時保留設定遷移版本資訊。這是設定儲存架構的改進,不是另造一套檔案系統。
提供 commit check、各元件開機結果,以及可自訂週期的已提交設定自動存檔;尚未確認的 commit-confirm 不會自動存檔。可選配 FRR 記憶體上限,降低路由服務耗盡記憶體的影響,但不保證所有故障都能維持轉送不中斷。
擴充 VPP WireGuard 來源選擇、PPPoE 輪替、介面名稱對應與統一監控命令。VyOS 也有 VPP 開發,差異在於我們的整合與擴充,而非只有我們支援 VPP。VPP 連線監控使用取樣估算,並非精確計費數據。
以有順序的 route-map 組合重複使用策略,減少為每種組合建立獨立策略的需求。設定與轉送行為仍須依實際拓樸驗證。
相容的修改可在支援的基準版本內透過累積更新套件升級。核心或不相容的原生元件變更需要新基準,並可能需要重新開機或重啟服務;不是每一版 ISO 都能免重啟升級。
為保持開發來源與版本清楚,目前不公開內部開發倉庫與完整 Git 歷史。對 GPL 等授權要求提供原始碼的元件,每次 ISO 發行皆同步以獨立封存檔提供對應完整原始碼、修改內容、必要建置資料與授權聲明;不會以僅提供差異檔取代授權要求的完整對應原始碼。
下載對應原始碼選擇主題、了解修改內容,再帶走需要的指令。
支援固定制/固定制、固定制/PPPoE、PPPoE/PPPoE,並以綁定來源的 ICMP 或 TCP 檢查線路。
本例與下方固定制範例擇一使用,不要將同一隧道同時綁定兩個群組。兩組 PPP 須先設定完成並連線,分別位於不同 VRF,且 ISP 允許同時在線。VPP WireGuard 需要兩組 PPP 都設定 dataplane vpp。請將文件示意的健康檢查目標換成可達位址。本例是在已連線的成員間選擇出口,不會延後第二組撥號,也不會每 36 小時定時輪替。確認管理連線正常後再 save。
configure
set service wan-handover group DUALPPP member pppoe1
set service wan-handover group DUALPPP member pppoe2
set service wan-handover group DUALPPP member-options pppoe1 priority 200
set service wan-handover group DUALPPP member-options pppoe2 priority 100
set service wan-handover group DUALPPP health-check target reach address 192.0.2.1
set service wan-handover group DUALPPP health-check target reach protocol icmp
set service wan-handover group DUALPPP preempt enable
set service wan-handover group DUALPPP preempt-delay 60
set service wan-handover group DUALPPP minimum-residence 120
set interfaces vpp wireguard vppwg0 source-group DUALPPP
compare
commit check
commit數值較高者優先;未指定時為 100,同分依保存的成員加入順序。預設不搶回,須明確啟用 preempt。請將文件位址換成可達且由您控制的目標;介面與隧道本身必須先配置完成。
set service wan-handover group CHT member eth4
set service wan-handover group CHT member pppoe0
set service wan-handover group CHT member-options eth4 priority 200
set service wan-handover group CHT member-options pppoe0 priority 100
set service wan-handover group CHT health-check target reach address 192.0.2.1
set service wan-handover group CHT health-check target reach protocol icmp
set service wan-handover group CHT preempt enable
set service wan-handover group CHT preempt-delay 60
set service wan-handover group CHT minimum-residence 120
set interfaces vpp wireguard vppwg0 source-group CHT只適用 PPPoE,單位為秒,此例為 36 小時。路由器每次開機會重新計算首次延後;控制程式重啟或修改描述不會重算。已連線者不會被斷開,之後重連也不再延後。主要 WAN 明確故障時,會提前啟動仍在等待的備援。計時器不會強迫切換或修改優先權;恢復搶回仍依設定。拔線與 PPP 明確斷線會跳過評分和等待,但備援須可用,不保證零掉包或零延遲。
set service wan-handover group DUALPPP member pppoe2 rotation-interval 129600
commit check
commit
run show wan-handover group DUALPPP需要 exp90,且群組須先配置恰好兩個持續撥號的 PPPoE 成員,使用相同 source-interface、服務/集中器選擇及 dataplane。不可套用下方固定制或混合 WAN 範例。故障後兩條正常重連;若實際連線成功時間差少於一小時,待主用 session 達 36 小時,確認雙線健康維持 60 秒且已設定的隧道內 IPv4/IPv6 檢查通過,才重撥非主用成員。避開主用線路預估 72 小時到期前的窗口。資訊不明就不重撥,控制服務重啟不重複執行;間隔正常時不定時輪替。非群組流量若直接使用被重撥介面,仍可能中斷。首次延後撥號仍是獨立設定。
set service wan-handover group DUALPPP pppoe-restagger interval 129600
set service wan-handover group DUALPPP pppoe-restagger minimum-gap 3600
set service wan-handover group DUALPPP pppoe-restagger stable-time 60
set service wan-handover group DUALPPP pppoe-restagger session-lifetime 259200
commit check
commit
run show wan-handover group DUALPPP測量 TCP connect 時間,不是 TLS 或 HTTP 回應時間。所有 WAN 比較同一個具名目標,各累積十次連續成功結果後計算移動算術平均,不是中位數。平均改善至少 3 ms 才符合條件;設定 improvement-ms 1 就依 1 ms 判斷。百分比預設停用,明確設定非零值才增加第二項門檻。仍須滿足穩定時間並啟用 preempt。失敗檢查會清空受影響的取樣窗口,不會當成零延遲。ICMP/TCP 正常不代表 ISP 的 WireGuard UDP 一定走同一路徑。
set service wan-handover group CHT health-check target web address 198.51.100.1
set service wan-handover group CHT health-check target web protocol tcp
set service wan-handover group CHT health-check target web port 443
set service wan-handover group CHT selection-mode latency
set service wan-handover group CHT latency target web
set service wan-handover group CHT latency window 10
set service wan-handover group CHT latency improvement-ms 3
set service wan-handover group CHT latency improvement-percent 0
set service wan-handover group CHT latency hold-time 30取代前一例的 ms 設定。百分比以目前 WAN 的平均延遲為基準:10 ms 降至 9 ms 即符合 10%。省略 ms 且啟用百分比時,不會隱藏要求改善 3 ms。若兩者都設定,則須同時滿足(AND);再設定 improvement-ms 3 就會加上該條件。明確設定為零可停用該門檻;刪除 improvement-percent 可改回只看 ms。測試次數與穩定時間仍然有效。
delete service wan-handover group CHT latency improvement-ms
set service wan-handover group CHT latency improvement-percent 10安全範圍:bind-udp-to-all 允許未綁定介面的 UDP 監聽服務跨 VRF 接收,不只影響 WireGuard。其他 UDP 服務應明確綁定或設定入站過濾。此選項不開放 TCP;控制程式不會自行啟用,VPP WireGuard 也不需要此設定。
set vrf bind-udp-to-all
set interfaces wireguard wg0 source-group CHT預設以表格顯示成員角色、介面/健康狀態、RTT 與首次撥號倒數。pending / waiting 表示等待排程,不是故障。自動化程式須明確加上 json;指定群組回傳物件,全部群組回傳陣列。這些查詢不會觸發切換或重撥。
show wan-handover group CHT
show wan-handover group CHT json
show wan-handover json自動沿用目前成員的介面與下一跳 VRF,不必寫死 pppoe0。
若要取代既有 interface 路由,請在同一份候選設定中先移除原本的 interface 選項,再一起 commit。
set protocols static route 100.64.100.64/32 group CHT選填:Ethernet 通常從自己的 VRF 路由取得下一跳;無法唯一判定時才明確指定 gateway。PPPoE 使用點對點介面,不需在此指定 gateway。此設定不會代替您建立成員 VRF 的預設路由或健康檢查路徑。
set service wan-handover group CHT member-options eth4 gateway 192.0.2.254以設定中的介面名稱,選擇 Kernel 流量或 VPP IP 流量取樣。
請選擇由 Kernel 管理的介面。
monitor connections interface eth4所選介面必須存在於 VPP 設定中;補全使用設定名稱,不需猜測內部 wg/tap 名稱。
monitor connections vpp interface vppwg0套用之前先檢查候選設定,包含 BGP 必要參數與 route-map 引用。
確認檢查結果後,再自行執行 commit 與 save。範例使用文件專用位址,請依實際網路替換。
configure
set protocols bgp system-as 65001
set protocols bgp neighbor 192.0.2.2 remote-as 65002
set protocols bgp neighbor 192.0.2.2 address-family ipv4-unicast
commit check
commit
save
exitcommit check 不會代為確認,自動存檔也會跳過尚未確認的 commit。提交後,請先自行確認管理連線與網路狀態,再繼續下一步。
commit check
commit-confirm 5僅在前述獨立檢查通過後才執行;否則不要 confirm,讓設定的復原動作執行。
confirm
save自訂存檔間隔(分鐘),僅保存已成功提交的執行中設定。
先明確 save 一次,讓即刻重新開機也能保留定時設定;後續成功的 commit 會依間隔自動存檔。
configure
set system config-management auto-save interval 10
commit
save
exit後兩個指令讀取同一份執行中設定,包含尚未 save 的 commit;僅輸出格式不同。
show configuration auto-save
show configuration
show configuration commands刪除設定會停止定時器。請明確 save,讓重新開機後也維持關閉。
configure
delete system config-management auto-save
commit
save
exitCarrier CLI 以 GNU Bash 5.3.15 為基礎,支援原生括號貼上,從 exp66 起使用 carrier-cli 入口。
以管理員身分在操作模式執行。仍保留 Tab 補完、? 說明與指令權限控制。登入時會初始化原生貼上,也涵蓋由舊映像保留的帳號,不需手動輸入跳脫序列重設。
show version
/bin/carrier-cli --version局部修改、檢視差異,再提交並儲存。
此範例假設 vppwg0 已存在且設定完成。
configure
set interfaces vpp wireguard vppwg0 description 'Transit tunnel'
compare
commit
save
exitshow version
show system configuration-status
show interfaces在單一 network 宣告上,組合多份可重複使用的策略。
configure
set policy route-map cn rule 10 action permit
set policy route-map cn rule 10 set community add '64512:156'
set policy route-map tw rule 10 action permit
set policy route-map tw rule 10 set community add '64512:158'
set policy route-map jp rule 10 action permit
set policy route-map jp rule 10 set community add '64512:392'
set protocols bgp address-family ipv4-unicast network 203.0.113.0/24 route-map 'cn and tw and jp'
commit
save
exit直接替換表達式,tw 策略物件仍可供其他 network 使用。系統會重新產生內部策略鏈,不需手動修改其名稱。策略在 BGP 處理路由時評估,不是每個轉送封包都執行。
configure
set protocols bgp address-family ipv4-unicast network 203.0.113.0/24 route-map 'cn and jp'
commit
save
exit在點對點子網同時使用 IPv4 與 IPv6,不必額外填寫 tunnel-address。
對端請設定 10.77.0.1/30 與 2001:db8:77::/127,並配好對應的金鑰、endpoint 與路由。推導出的對端主機路由涵蓋兩個位址家族。
configure
set interfaces vpp wireguard vppwg0 address '10.77.0.2/30'
set interfaces vpp wireguard vppwg0 address '2001:db8:77::1/127'
set interfaces vpp wireguard vppwg0 private-key '<LOCAL_PRIVATE_KEY>'
set interfaces vpp wireguard vppwg0 source-interface 'eth0'
set interfaces vpp wireguard vppwg0 peer remote public-key '<PEER_PUBLIC_KEY>'
set interfaces vpp wireguard vppwg0 peer remote endpoint '192.0.2.2'
set interfaces vpp wireguard vppwg0 peer remote port '51820'
set interfaces vpp wireguard vppwg0 peer remote allowed-ips '0.0.0.0/0'
set interfaces vpp wireguard vppwg0 peer remote allowed-ips '::/0'
set interfaces vpp wireguard vppwg0 peer remote persistent-keepalive '25'
commit
save
exitsudo vppctl show wireguard peer
sudo ping -I vppwg0 -c 3 10.77.0.1
sudo ping -6 -I vppwg0 -c 3 2001:db8:77::source-interface 與 source-address 擇一設定。
適用於既有 source-address 設定。若位址來自 PPPoE,請將 eth0 換成已設定的 PPPoE 介面名稱。系統會由介面取得來源位址,並透過網路事件更新。
configure
delete interfaces vpp wireguard vppwg0 source-address
set interfaces vpp wireguard vppwg0 source-interface 'eth0'
commit
save
exit固定來源位址必須屬於本機,並可透過指定底層網路通訊。
configure
delete interfaces vpp wireguard vppwg0 source-interface
set interfaces vpp wireguard vppwg0 source-address '192.0.2.1'
commit
save
exit讓 endpoint 使用預設路由表,同時將解密後流量放入 VRF。
configure
set vrf name TENANT table '100'
set interfaces vpp wireguard vppwg0 vrf 'TENANT'
set interfaces vpp wireguard vppwg0 underlay-vrf 'default'
commit
save
exit以 Carrier bmon 查看 VPP 計數器或 Kernel 介面的頻寬。
monitor bandwidth vpp interface eth4monitor bandwidth interface eth0braille=0 使用傳統直條圖。映像內也保留 bmon 相容指令。
carrier-bmon --use-bit -i vpp -p eth4 -o curses:braille=0從 eth4 發送有時間上限的 UDP 流量,並在對端 eth6 觀察。
開始前請由介面詳細資料取得對端 MAC。第一台發送流量時,保留此監控畫面。
monitor bandwidth vpp interface eth6比較不同配置時,必須保持封包大小、速率、CPU 分配與連線設定一致。逐步提高要求速率,觀察實際接收速率與遺失情況;要求速率不等於實測吞吐量。
packet-generator vpp interface eth4 destination-mac 02:00:00:00:00:06 source-address 198.18.0.1 destination-address 198.18.0.2 packet-size 64 rate 10kpps duration 10show vpp packet-generator
stop packet-generator vpp interface eth4為整個 FRR 服務設定可選的記憶體上限。
500MB 僅為示意,不是 full route 的容量建議。請先量測實際負載,再選擇 2GB 或其他合適值。
configure
set service frr maxium-memory-size 500MB
commit
save
exitsudo systemctl show frr.service --property=MemoryCurrent,MemoryMax未設定時,Carrier Router 不另外加入記憶體上限;其他管理員或主機層級限制仍可能生效。
configure
delete service frr maxium-memory-size
commit
save
exit查看各元件結果,再修復受影響的設定。exp85 開機時會逐筆略過 OSPF/OSPFv3 不存在的介面引用,含 VRF,正常介面繼續運作。Partial 表示原設定仍保留可編輯,完成修復前會維持存檔保護。
查看 System、SSH、BGP 與其他已設定元件旁的 OK 或 Failed。指令輸出會指出詳細診斷資料位置。
show system configuration-status僅為示例:必須已有 BGP 實例與 cn/jp 策略。請修正實際錯誤原因,而非不相關欄位。若降級開機後 save 被拒絕,請先完成保留的失敗區段復原,不要繞過儲存保護。
configure
set protocols bgp address-family ipv4-unicast network 203.0.113.0/24 route-map 'cn and jp'
compare
commit
save
exit未明確停用時,IPv4 與 IPv6 NHT 可透過預設路由解析。
configure
set system ip nht no-resolve-via-default
set system ipv6 nht no-resolve-via-default
commit
save
exitconfigure
delete system ip nht no-resolve-via-default
delete system ipv6 nht no-resolve-via-default
commit
save
exit選擇主題以查看指令範例。
exp90.3 實驗版本 · AMD64 · 2026 年 9 月 20 日
784.0 MiB · x86-64 · BIOS / UEFI
下載 ISO ↓carrier-router-2026.09.20-exp90.3-generic-amd64.iso
99b5a93e95c99fd4a43319112689ee3d7610c6a7b08e4ae3f8232f55918f1c4b下載後請核對 SHA-256
依各元件授權提供所需原始碼與必要建置資料,採獨立封存檔下載,不開放內部倉庫。寬鬆授權且不要求提供原始碼的獨立元件,其修改原始碼不包含在內;原有授權與聲明仍適用。
可以。請至下載區取得 Carrier Router exp90.3 AMD64 ISO,並核對 SHA-256 校驗值。對應原始碼封存與授權聲明也可獨立下載,不需要帳號。安裝前請閱讀升級先決條件。
不能。位址、金鑰、community 與介面名稱都是示意值。請先閱讀各項注意事項,再依實際拓樸調整。
不能。這是內建的流量產生工具,適用於受控環境的介面測試。這些範例不構成經認證的吞吐量、延遲或 RFC 2544 效能測試。
不一定。文件會標示 VPP 專用指令。例如這裡的 source-interface 範例僅適用於 VPP WireGuard,不應假設 Kernel WireGuard 也有相同的 CLI。
修正 VPP 原生發包器在異常時間差下可能失去限速的問題,保留 WAN handover 配置鎖修正、表格與 JSON 輸出。已通過實機驗證的 ISO、對應原始碼與 SHA-256 校驗值均可免帳號下載。安裝前請閱讀升級先決條件。