MPLS Network Simulator 報告者 鄭吉泰 ( ) (MNS)
OUTLINE Background (MPLS) Introduction (MNS) Architecture (MPLSnode) API (for LDP and CR-LDP) API (for LDP and CR-LDP) API (for Creating MPLS network) 2
Background MPLS -- 多重協定標籤交換傳輸 (Multi-Protocol Label Switching) Why MPLS ? IP network 中間節點設備必須重複檢查封包的表頭,並解析下 一個路徑 MPLS network 提供每個 IP 封包一個 label ,由此決定封包的路徑 以及優先順序 3
Background 優點 僅讀取封包標籤 ,加快網路速度 。 對所傳送的封包加以分級,提升網路服務品質。 4
Background MPLS network 由多個具有標籤交換能力的 LSR(Label Switch Router) 互相連結所組成 5
Background LSR(Label Switch Router) Ingress LSR 當 IP Packet 進入 MPLS 網路,負責為封包貼上標籤 (Push Label ) Core LSR 位於 MPLS 網路的核心,負責做標籤轉換 (Label Swap) Egress LSR 當封包要離開 MPLS 網路,負責去除標籤 ( Pop Label) 6
Background Label Assignment and Distribution(1/5) LSR Routing Table 利用 routing protocol 來交換路由資訊 ,並以此建立 自己的 FIB(Forwarding Information Base) 7
Background Label Assignment and Distribution(2/5) LSR Allocating Label 當 LSR 啟動 MPLS 功能後,對於使用相同處理方式、 相同 path 、到達相同目的地的 Routing entry 做彙整及 分類,然後 Assign Label 8
Background Label Assignment and Distribution(3/5) 建立自己的 LIB 及 LFIB 將前面步驟 Allocating 的 local Label 資訊儲存於 LIB(Label Information Base) 和 LFIB(Label Forwarding Information Base) 中 9
Background Label Assignment and Distribution(4/5) LSR Label Distribution 相鄰的 LSR 間執行 LDP(Label Distribution Protocol) , 將 Local assign 的 Label 資訊傳送 (Distribution) 給相鄰 的 LSR 10
Background Label Assignment and Distribution(5/5) 彙整 Lable 資訊 根據 routing table 得到的最佳路徑,獲知到某網段的 Next-hop LSR 所送來的 Label 資訊,插入到 LFIB 的 outgoing Label 資料結構中。 11
Background Packet 傳送過程 (1/2) Ingress LSR 檢查 IP Packet 中的 Destination IP address ,並且在 FIB 中 lookup 是否有符合的 IP network ,如果有則進 一步查看 FIB 中相對應的 Label 欄位值,在此 Packet 中打上 Label=# ,再傳送出去 。 Core LSR Lookup LFIB 的資料,檢查是否有 Label=# 的 entry , 有則再查看此 entry 中 Outgoing Label 的欄位值,快 速置換 ,傳往下一個節點。 12
Background Packet 傳送過程 (2/2) Egress LSR Lookup LFIB 的資料,檢查是否有 的 entry , 如果有則再查看此 entry 中 Outgoing Label 的欄位值, 若 Outgoing Label=Pop ,則 Packet 中的 Label 被移除, 此時已離開 MPLS 網路再進入到 IP 的網路中。 Penultimate Hop Popping 在 Egress LSR 前一個節點就把 Label 移除, Egress LSR 只要做 IP lookup 。 13
Background LSP (Label Switching Path) 封包在邊緣端被分類,且加入一適當的標籤 ,接著就會依據此 標籤以類似 Switching 的方式快速沿一 LSP (Label Switching Path) 傳送到目的地。 14
Background LDP(Label Distribution Protocol) LSR 之間交換 Label/Stream 映對 (mapping) 的程序所 組成 CR-LDP 是擴展自 LDP ,使其能支援 MPLS 的 Traffic Engineering 。和基本的 LDP 不同的是, CR-LDP 支 援明確路由 (Explicit Route ) 的參數,如: “ 讓路徑得到 某個量的頻寬,或是使用到某個最高速率上限 ” 等等。 ER-LSP MPLS 允許網路的管理員確定一條明確路由的 LSP ( ER-LSP ),規定封包將選擇的路徑 。 15
Background Label Stack 因應用的需要來為封包加上數個 Label ,而且其結構為後進先出。 在 MPLS 網路之中,傳送封包的依據是由最上層的 Label 決定。 16
MNS module ns-allinone-2.29/ns-2.29/mpls example tcl ns-2.29/tcl/test/test-suite-mpls.tcl run example(simple) ns test-suite-mpls.tcl simple nam nam simple.nam 17
MNS experiment environment 18
MNS Scheduling at 0.01 Label Distribution at 0.20 Label withdrawal for FEC 9 & 10 at 0.30 Flow Aggregation at 0.70 CD-LDP Reuqest/Mapping Message for creating an ER-LSP at 0.90 Packet Switching based on the ER-LSP at 1.60 Packet Switching based on the LSP Tunnel 19
MNS 小考 ER-LSP : 2 → 5 → 4 → 8 → 6 → 7 20
MNS 小考 修改 ER-LSP : 2 → 3 → 4 → 5 → 6 → 8 → 7 21
MNS MPLS Packet Trace 22
MNS implementation scope(1/2) Label Switching label swapping/stacking operation,TTL decrement, and penultimate hop popping LDP Protocol handling LDP messages(Request,Mapping, Withdraw, Release, and Notification) 23
MNS implementation scope(2/2) CR-LDP Protocol handling CR-LDP messages Flow Aggregation aggregate fine flows into a coarse flow 24
Architecture Node in NS Agent Classifier MPLSnode in MNS Inserte -- MPLS Classifier and LDP agent 25
Architecture 26
Architecture MPLSnode operation MPLS Classifier determines whether the packet is labeled or unlabeled labeled – swapping and sends it to the next node unlabeled with LSP prepared – as labeled packet Otherwise – sends it to “Addr Classifier” 27
Architecture MPLSnode operation Addr Classifier executes L3 forwarding next hop is itself – sent to“Port Classifier” 28
Architecture three tables in MPLSnode Manage information related to LSP PFT Consists of FEC 、 PHB 、 LIBptr LIB Information for LSP ERB Information for ER-LSP 29
Architecture 30
Architecture unlabeled packet 31
Architecture 32 unlabeled packet
Architecture labeled packet 33
Architecture 34 labeled packet
API (for LDP and CR-LDP) 35
API (for Creating MPLS network) 36
API (for Creating MPLS network) 37