於開放軟體平台上整合資源預約協定與約束路由以實現訊務工程 徐志偉* 簡名世 侯廷昭 國立中正大學 電機工程學系及電信研究中心
Outline 前言 背景知識介紹 Quagga軟體平台 於Quagga軟體平台上整合RSVP-TE與CSPF 功能測試與驗證 結論
前言 MPLS-TE必須具備 IP的彈性+ATM的效能 MPLS (Multi-Protocol Label Switching) 能向上包容多種Layer 3 protocols與向下支援不同的Layer 2 protocols MPLS具有訊務工程(Traffic Engineering; TE)的能力 Load balance Fast reroute MPLS-TE必須具備 OSPF-TE或IS-IS TE CSPF演算法 RSVP-TE或CR-LDP
背景知識介紹- MPLS-TE Ingress LSR (label push)->core LSR (label swap)->egress LSR (label pop)
背景知識介紹- OSPF-TE Open Shortest Path First-Traffic Engineering (IETF draft) 是擴充OSPF 的連接狀態傳播(Link State Advertisement; LSA) Opaque LSA挾帶TE 的參數來支援訊務工程 Type 9、Type 10、Type 11 確保到達目的端是最佳路徑
背景知識介紹- CSPF 改進最短路徑優先(SPF)的演算法 CSPF 演算法有以下三種計算方式: 計算到達目的地之最短路徑時,將特定的限制(Constraint)也考慮進去 (算出到達目的地之最佳路徑) 整個網路拓撲頻寛、可用的頻寛、保留的頻寛以及整個網路拓撲的鏈結情況 CSPF 演算法有以下三種計算方式: On-demand Dijkstra Algorithm Bellman-Ford (BF) based pre-computation Algorithm (RIP) Pre-computation using Dijkstra Algorithm (OSPF)
背景知識介紹- RSVP-TE Extensions to RSVP for LSP tunnel (RFC3209) 執行label distribution for MPLS and support explicit routing Ingress LSR (Sender) Egress LSR (Receiver) PATH Message (SESSION, LABEL_REQUEST, *ERO, *RRO, *SESSION_ATTRIBUTE) RESV Message (SESSION, LABEL, STYLE, *RRO) * Optional Objects
Quagga軟體平台- Zebra Quagga 為一套提供許多路由軟體的套件的集合,支援以TCP/IP為基礎的路由軟體,目前所支援的路由協定有:RIPv1、RIPv2、OSPFv2、OSPFv3、 BGP-4和BGP-4+。 Quagga提供給每一個路由軟體與網路管理者的互動介面,此介面為命令列介面 (CLI,Command Line Interface,在Quagga 稱為VTY),藉由這個設計理念,開發成員可以很容易新增所需求路由的協定。開發者可透過Quagga的函式庫,去開發屬於自己的軟體與管理者的互動介面。
MPLS-TE於Quagga下的設計 具有模組化、具備延展性特性、可維護性及可攜性的
Quagga原始系統軟體架構 (Unix domain socket) (Unix domain socket) (netlink socket)
Quagga support MPLS&TE Quagga 對於MPLS 的支援仍於開發階段。 針對MPLS的需求,有所謂的data plane與control plane的問題。 data plane Linux kernel space, control plane Linux user space, 包含MPLS 信令及路由協定的部分。 我們透過Sourceforge(http://sourceforge.net/)其中所支援的MPLS_for_Linux計畫,採取MPLS_for_Linux 發佈的1.935版本,將核心部分更新使其支援MPLS網路。
Quagga系統軟體架構-TE
新增模組介紹 MPLSd (Multi-Protocol Label Switching daemon) 針對建立LSP需求送出符合封裝MPLS 的封包 與底層部分採取ioctl 作溝通方式 LMd (Label Manager daemon) 在MPLS Router中扮演管理Label Pool 的角色 RSVPd (Resource reSerVation Protocol daemon) 建立MPLS Tunnel
RSVP-TE 支援 MPLS-TE (con.) 版本 項目 原始的RSVP-TE版本 修改後的RSVP-TE版本 支援Kernel版本 kernel 2.4.22 kernel 2.6.15 指令下達方式 CLI (Command line interface) CLI and VTY interface Label取得來源 由label.conf檔案設定。 由LMd統一管理。
於Quagga軟體平台上整合RSVP-TE與CSPF 次點探索演算法 On-demand 不需建立path tree 節省記憶體空間 高速 RSVP-TE擴充 隨需應變(On-demand):當有新的要求則立即服務。 2.不需建立path tree:NHP 不需要像Dijkstra 演 算法[9]在計算路徑時需要建立最短路徑樹 (shortest path tree)。 3.節省記憶體空間:因為NHP 是On-demand 模 式並且不需建立一個path tree,所以它不會需 要太多的記憶體在shortest path tree 和 pre-computing route table 上。 4.高速:由於NHP 不需要花費時間建立shortest path tree,所以它有較快的計算速度。
RSVP-TE的擴充 RSVP-TE Agent 先行分析所收到的訊息種類,再丟給RSVP-TE daemon 處理 Type-1:收到Type-1 的訊息代表從OSPF-TE 送來要求建立QoS LSP 的訊息,我們在此部份將Explicit route 的功能結合至此,從這裡解析Explicit route 的內容。 Type-2: type-2 的訊息用來確定RSVP-TE Daemon 是否有收到回應binding label 的動作。
功能測試與驗證 實驗環境
功能驗證
功能驗證 (cont.)
結論 我們使用Quagga 軟體,將RSVP-TE 協定移植到Quagga 軟體架構中,使RSVP-TE 也能透過VTYconnect 的連線下達建立LSP 的指令 我們結合NHP-CSPF,算出符合約束條件的明確路徑,讓RSVP-TE 利用此明確路徑並且攜帶相關的traffic 參數去建立一條具有QoS 保證的LSP,並且在建立LSP 的同時,同步變動OSPF-TE 的TE-Class 頻寬資源,以實現訊務工程。