380 likes | 610 Views
MPLS Network Simulator. (MNS). 報告者 鄭吉泰 (694430028). OUTLINE. 2. Background (MPLS) Introduction (MNS) Architecture (MPLSnode) API (for LDP and CR-LDP) API (for Creating MPLS network). Background. 3. MPLS -- 多重協定標籤交換傳輸 (Multi-Protocol Label Switching ) Why MPLS ? IP network
E N D
MPLS Network Simulator (MNS) 報告者 鄭吉泰(694430028)
OUTLINE 2 • Background (MPLS) • Introduction (MNS) • Architecture (MPLSnode) • API (for LDP and CR-LDP) • API (for Creating MPLS network)
Background 3 • MPLS -- 多重協定標籤交換傳輸 (Multi-Protocol Label Switching) • Why MPLS ? • IP network • 中間節點設備必須重複檢查封包的表頭,並解析下一個路徑 • MPLS network • 提供每個IP 封包一個label,由此決定封包的路徑以及優先順序
Background 4 • 優點 • 僅讀取封包標籤 ,加快網路速度 。 • 對所傳送的封包加以分級,提升網路服務品質。
Background 5 • MPLS network • 由多個具有標籤交換能力的LSR(Label Switch Router)互相連結所組成
Background 6 • LSR(Label Switch Router) • Ingress LSR • 當IP Packet進入MPLS網路,負責為封包貼上標籤 (Push Label ) • Core LSR • 位於MPLS網路的核心,負責做標籤轉換 (Label Swap) • Egress LSR • 當封包要離開MPLS網路,負責去除標籤( Pop Label)
Background 7 • Label Assignment and Distribution(1/5) • LSR Routing Table 利用routing protocol來交換路由資訊 ,並以此建立自己的FIB(Forwarding Information Base)
Background 8 • Label Assignment and Distribution(2/5) • LSR Allocating Label 當LSR啟動MPLS功能後,對於使用相同處理方式、相同path、到達相同目的地的Routing entry做彙整及分類,然後Assign Label
Background 9 • Label Assignment and Distribution(3/5) • 建立自己的LIB及LFIB 將前面步驟Allocating 的local Label資訊儲存於LIB(Label Information Base)和LFIB(Label Forwarding Information Base)中
Background 10 • Label Assignment and Distribution(4/5) • LSR Label Distribution 相鄰的LSR間執行LDP(Label Distribution Protocol) ,將Local assign的Label資訊傳送(Distribution)給相鄰的LSR
Background 11 • Label Assignment and Distribution(5/5) • 彙整 Lable資訊 根據routing table得到的最佳路徑,獲知到某網段的Next-hop LSR 所送來的Label資訊,插入到LFIB的outgoing Label資料結構中。
Background 12 • 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=@),傳往下一個節點。
Background 13 • 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。
Background 14 • LSP (Label Switching Path) • 封包在邊緣端被分類,且加入一適當的標籤 ,接著就會依據此標籤以類似Switching 的方式快速沿一LSP (Label Switching Path) 傳送到目的地。
Background 15 • 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),規定封包將選擇的路徑。
Background 16 • Label Stack • 因應用的需要來為封包加上數個Label,而且其結構為後進先出。在MPLS 網路之中,傳送封包的依據是由最上層的Label決定。
MNS 17 • 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
MNS 18 experiment environment
MNS 19 • 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
MNS 20 • 小考 • ER-LSP : 2 → 5 → 4 → 8 → 6 → 7
MNS 21 • 小考 • 修改 ER-LSP : 2 → 3 → 4 → 5 → 6 → 8 → 7
MNS 22 MPLS Packet Trace <time><node><source><destination><Un/Labeled><incoming-label><label operation><outgoing interface><outgoing label> <shim header’s TTL>< shim header’s size>
MNS 23 • 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)
MNS 24 • implementation scope(2/2) • CR-LDP Protocol • handling CR-LDP messages • Flow Aggregation • aggregate fine flows into a coarse flow
Architecture 25 • Node in NS • Agent • Classifier • MPLSnode in MNS • Inserte -- MPLS Classifier and LDP agent
Architecture 26
Architecture 27 • 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”
Architecture 28 • MPLSnode operation • Addr Classifier • executes L3 forwarding • next hop is itself – sent to“Port Classifier”
Architecture 29 • three tables in MPLSnode • Manage information related to LSP • PFT • Consists of FEC、PHB、LIBptr • LIB • Information for LSP • ERB • Information for ER-LSP
Architecture 30
Architecture 31 • unlabeled packet
Architecture 32 • unlabeled packet
Architecture 33 labeled packet
Architecture 34 labeled packet