電腦網路與 Internet 通訊

附錄 C 隔離 Linux 多網段延伸

目的與狀態

此延伸將必修模型放到多介面與真實核心轉送上。本文是設計與驗證指引,尚未在 Linux、Windows 或 macOS 跨平臺執行。已本機驗證的範圍見 README 與驗證紀錄。所有必修可用 loopback/離線完成。

建立隔離拓樸

在你控制的 Linux 虛擬機或獨立測試設備,以 network namespaces 或多臺 VM 建立 C—R—S;C 與 S 各在不同私有子網,R 各接一介面。先做靜態路由,確認雙向可達,才加 DHCP/DNS、NAT、防火牆或 VPN。固定 distribution、kernel、iproute2、packet-capture 及代理核心版本,保留設定快照。

不要以宿主或家用既有 default route 替代測試 R,不用真實個人流量當對照。選定隔離介面後才抓包或施加延遲/遺失。先寫取消故障和刪除測試環境的方法,完成後恢復快照。

四組延伸工作

一、逐跳 Ethernet/IP:同時擷取 C-R 與 R-S,對同一個請求記錄兩段 MAC、IP、TTL;先無 NAT 再有 NAT,比較來源 tuple。

二、狀態與過濾:只允許必要測試服務,分開記錄 NAT 對映及 filter 決策;改回程路由,觀察正向到達但回程失配。不得把單次 STUN 直接當完整 NAT 分類。

三、可靠性與效能:在指定測試鏈路施加受控 RTT、遺失與速率,一次改一個變因。先實測 baseline,再測各 TCP/QUIC 工作負載。Linux tc/netem 的參數及執行位置需依所用版文件核對;它不模擬所有真實無線條件。

四、VPN/代理:用官方工具在測試 C 與 P 設定指定版 WG 或代理核心;先驗證 peer/憑證,再驗 route、DNS、MTU、IPv6 與 UDP。保存 validator 輸出及抓包。代理不得開成公網任意目的 relay;只允許測試子網與服務。

提交與來源

提交拓樸、固定版、完整測試設定、原始擷取、計時定義、對照與清理紀錄。標示每個功能已執行或僅設計。核心文件:network namespaces 概念、Linux TUN/TAP、Linux TPROXY、WireGuard 快速開始。部署指令以該環境的官方手冊核對。