電腦網路與 Internet 通訊

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:改一個變因

  1. 將 router_ports 移除,對比 known、unknown=flood 與 unknown=drop。
  2. 不呼叫 join,為何模型仍可能泛洪?這是否證明主機已加入群組?
  3. 將埠 3 移到 VLAN 20 後,重新設定合法成員,預測 VLAN 10 的出口;跨 VLAN 輸出不得出現 3 或 5。
  4. 用 ipv4_multicast_mac 比較 239.192.0.42 及 224.64.0.42,再解釋 IP 群組仍不同。模型 MDB 依 IP 群組鍵查找,不模擬僅按 MAC 過濾的別名副本。
  5. 模型特別處理 224.0.0/24,不模擬 IPv6/MLD。提出若要加入 IPv6,除了改位址長度還要補哪些 scope 與控制政策。

C:離線服務探索工作表

這些是人工 DNS-SD 資料,不是擷取記錄。

欄位資料
PTR 查詢_ipp._tcp.local
PTR 實例Lab Printer._ipp._tcp.local
SRVprinter.local,port 631
TXTrp=printers/lab
A192.0.2.50
AAAA2001:db8:10::50
  1. 列出 mDNS 探索封包的群組、UDP 埠;列印連線是否也必須多播?
  2. 若 C 在 VLAN 20,能手動連 192.0.2.50 卻看不見 PTR,分別寫探索與資料路徑。
  3. 若 PTR 可見但 AAAA 路徑被防火牆拒絕,補什麼證據能定位連線失敗?
  4. 某 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。