MPLS Network Simulator MNS 694430028 OUTLINE n Background
MPLS Network Simulator (MNS) 報告者 鄭吉泰(694430028)
OUTLINE n Background (MPLS) n Introduction (MNS) n Architecture (MPLSnode) n API (for LDP and CR-LDP) n API (for Creating MPLS network) 2
Background n MPLS network ¨ 由多個具有標籤交換能力的LSR(Label Switch Router)互相連結所組成 5
Background n LSR(Label ¨ Ingress n LSR 位於MPLS網路的核心,負責做標籤轉換 (Label Swap) ¨ Egress n LSR 當IP Packet進入MPLS網路,負責為封包貼上標籤 (Push Label ) ¨ Core n Switch Router) LSR 當封包要離開MPLS網路,負責去除標籤 ( Pop Label) 6
Background n Label Assignment and Distribution(1/5) ¨ LSR Routing Table 利用routing protocol來交換路由資訊 ,並以此建立 自己的FIB(Forwarding Information Base) 7
Background n Label Assignment and Distribution(2/5) ¨ LSR Allocating Label 當LSR啟動MPLS功能後,對於使用相同處理方式、 相同path、到達相同目的地的Routing entry做彙整及 分類,然後Assign Label 8
Background n Label Assignment and Distribution(3/5) ¨ 建立自己的LIB及LFIB 將前面步驟Allocating 的local Label資訊儲存於 LIB(Label Information Base)和LFIB(Label Forwarding Information Base)中 9
Background n Label Assignment and Distribution(4/5) ¨ LSR Label Distribution 相鄰的LSR間執行LDP(Label Distribution Protocol) , 將Local assign的Label資訊傳送(Distribution)給相鄰 的LSR 10
Background n Label Assignment and Distribution(5/5) ¨ 彙整 Lable資訊 根據routing table得到的最佳路徑,獲知到某網段的 Next-hop LSR 所送來的Label資訊,插入到LFIB的 outgoing Label資料結構中。 11
Background n 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的欄位值,快 速置換Label(Label=@),傳往下一個節點。 12
Background n Packet 傳送過程(2/2) ¨ Egress LSR Lookup LFIB的資料,檢查是否有Label=@的entry, 如果有則再查看此entry中Outgoing Label的欄位值, 若Outgoing Label=Pop,則Packet中的Label被移除, 此時已離開MPLS網路再進入到IP的網路中。 ¨ Penultimate Hop Popping 在Egress LSR前一個節點就把Label移除,Egress LSR只要做IP lookup。 13
MNS n module ¨ ns-allinone-2. 29/ns-2. 29/mpls n example tcl ¨ ns-2. 29/tcl/test-suite-mpls. tcl n run example(simple) ¨ ns test-suite-mpls. tcl simple n nam ¨ nam simple. nam 17
MNS n experiment environment 18
MNS n 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 n MPLS Packet Trace <time><node><source><destination><Un/Labeled><incominglabel><label operation><outgoing interface><outgoing label> <shim header’s TTL>< shim header’s size> 22
MNS n implementation ¨ Label scope(1/2) Switching label swapping/stacking operation, TTL decrement, and penultimate hop popping ¨ LDP n Protocol handling LDP messages(Request, Mapping, Withdraw, Release, and Notification) 23
MNS n implementation ¨ CR-LDP n Protocol handling CR-LDP messages ¨ Flow n scope(2/2) Aggregation aggregate fine flows into a coarse flow 24
Architecture n Node in NS ¨ Agent ¨ Classifier n MPLSnode ¨ Inserte in MNS -- MPLS Classifier and LDP agent 25
Architecture 26
Architecture n MPLSnode ¨ MPLS operation Classifier determines whether the packet is labeled or unlabeled n labeled – swapping and sends it to the next node n unlabeled n with LSP prepared – as labeled packet ¨ Otherwise – sends it to “Addr Classifier” ¨ 27
Architecture n MPLSnode ¨ Addr operation Classifier executes L 3 forwarding n next hop is itself – sent to“Port Classifier” n 28
Architecture n three tables in MPLSnode ¨ Manage information related to LSP ¨ PFT n Consists of FEC、PHB、LIBptr ¨ LIB n Information for LSP ¨ ERB n Information for ER-LSP 29
Architecture 30
Architecture n unlabeled packet 31
Architecture n unlabeled packet 32
Architecture n labeled packet 33
Architecture n labeled packet 34
API (for LDP and CR-LDP) 35
API (for Creating MPLS network) 36
API (for Creating MPLS network) 37
- Slides: 37