L16 LAN 交付、多播成員與服務探索
本實驗使用的程式:lan_models.py。文中指令以課程根目錄為工作目錄;建議下載教材套件,解壓後在 computer-networking 目錄執行。
問題與驗證範圍
對應 04A、05、11、22。必修使用標準函式庫離線交換模型,沒有送出任何封包。FDB 來源學習與簡化 MDB 事件可觀察;join、leave 與 expire 是人工事件,不編碼/解析 IGMP、MLD、PIM 或 mDNS。Linux bridge 觀察列為未實測延伸。
A:先預測交換器出口
讀 04A 四埠加 VLAN 20 拓樸,執行:
python3 labs/lan_models.py L16
| 案例 | 預測出口 | 判讀依據 |
|---|---|---|
| unknown_unicast | ____ | FDB/VLAN |
| known_unicast | ____ | FDB |
| broadcast | ____ | 廣播域 |
| multicast_known | ____ | 成員 2、3 與 router port 4 |
| multicast_after_leave | ____ | 已確認移除埠 3 |
| multicast_after_expiry | ____ | 埠 2 老化,仍有 router port 4;unknown=flood |
| multicast_unknown_drop | ____ | unknown=drop 仍保留 router port 4 |
| mdns_link_local | ____ | 模型的 224.0.0/24 特殊政策 |
| multicast_snooping_off | ____ | 同 VLAN 泛洪 |
members_before 與 members_after_expiry 是 MDB 快照。leave 在模型中立刻移除整個埠,是「已確認無其他接收者」後的狀態;真實共享埠不能直接照此操作。expiry 以人工時鐘觸發,沒有真實 Query/Report 計時器。router port 4 不一定有本地應用接收者,仍需收到供路由的資料。
B:改一個變因
- 將 router_ports 移除,對比 known、unknown=flood 與 unknown=drop。
- 不呼叫 join,為何模型仍可能泛洪?這是否證明主機已加入群組?
- 將埠 3 移到 VLAN 20 後,重新設定合法成員,預測 VLAN 10 的出口;跨 VLAN 輸出不得出現 3 或 5。
- 用 ipv4_multicast_mac 比較 239.192.0.42 及 224.64.0.42,再解釋 IP 群組仍不同。模型 MDB 依 IP 群組鍵查找,不模擬僅按 MAC 過濾的別名副本。
- 模型特別處理 224.0.0/24,不模擬 IPv6/MLD。提出若要加入 IPv6,除了改位址長度還要補哪些 scope 與控制政策。
C:離線服務探索工作表
這些是人工 DNS-SD 資料,不是擷取記錄。
| 欄位 | 資料 |
|---|---|
| PTR 查詢 | _ipp._tcp.local |
| PTR 實例 | Lab Printer._ipp._tcp.local |
| SRV | printer.local,port 631 |
| TXT | rp=printers/lab |
| A | 192.0.2.50 |
| AAAA | 2001:db8:10::50 |
- 列出 mDNS 探索封包的群組、UDP 埠;列印連線是否也必須多播?
- 若 C 在 VLAN 20,能手動連 192.0.2.50 卻看不見 PTR,分別寫探索與資料路徑。
- 若 PTR 可見但 AAAA 路徑被防火牆拒絕,補什麼證據能定位連線失敗?
- 某 gateway 反射所有服務,該如何限制可見範圍並確認服務授權?
D:Linux bridge 觀察延伸
只在自主管理的 Linux 隔離環境使用現有 bridge,先確認名稱/VLAN。以下只讀命令中的 br0 需換成自己的實驗 bridge:
bridge fdb show br br0
bridge -d -s mdb show dev br0
bridge vlan show
ip maddr show
ip -d link show dev br0
分別記錄 FDB、MDB、router port、multicast_snooping/querier 及成員介面。ip maddr 是介面群組資訊,不能單獨證明應用 socket 或 snooping 狀態。若有自有封包紀錄,檢查 Query/Report 及 UDP 5353,而非僅看資料流是否到達。沒有 bridge 或擷取環境就完成 A 至 C,不以人工結果冒充 Linux 觀察。
紀錄與評分
每案填「預測/實際模型出口/VLAN/FDB/MDB/政策/模型限制」。10 分:出口與廣播域 3、成員/router port/未知政策 3、DNS-SD 路徑 2、證據與限制 2。來源:04A 章末 RFC 及 Linux bridge 文件。解答見 answers/lan-solutions.md。