[CORD] CORD 平台學習筆記
分為三個 components:
- Trellis:
- CORD fabric 的網路架構
- service composition 中的 overlay 虛擬化角色。
- CORD Monitoring Service
- 是 CORD service ,專門蒐集與分析即時的 metrics。
- XOS
- 專門 configure 和控制 CORD services.
Trellis
From: https://wiki.opencord.org/display/CORD/Trellis%3A+CORD+Network+Infrastructure
- underlay leaf-spine fabric + overlay virtual networking + unified SDN control (underlay + overlay)
- The efficient of unified SDN control (underlay + overlay)
- 為了 tenant 網絡的分佈式虛擬 routing
- 多播流量傳輸的優化
- 目前有兩個 ONOS cluster
- onos-cord
- 負責 overlay((virtual networking and service composition)) 和 access 的 infrastructure。
- 分別 hosts VTN 和 vOLT 的 APP。
- Multicast control: IGMP snooping
- onos-fabric
- 負責控制 fabric
- 與upstream routers 的介接。
- Multicast control: PIM-SSM
- onos-cord
Trellis Underlay Fabric
Ref: https://wiki.opencord.org/display/CORD/Trellis+Underlay+Fabric
- SDN based Leaf-Spine fabric
- 使用 data plane 的 headers: ARP, MAC, VLAN, IPv4, MPLS, VXLAN
- 不使用 distributed protocols
- fabric 特點:
- L2 switching within a rack handled at leaf-switches (ToRs)
- L3 forwarding across racks using ECMP hashing and MPLS segment routing.
- vRouter integration for interfacing with upstream metro-router, providing reachability to publicly routable IP addresses.
- VLAN cross-connect feature to switch QinQ packets between OLT I/O blades and vSG containers (R-CORD feature).
- IPv4 multicast forwarding and pruning for IPTV streams (with vRouter integration) from upstream router to residential subscribers (R-CORD feature).
- XOS integration via REST API calls to dynamically configure end-hosts and VLAN cross-connects at runtime.
- Ability to use the fabric in single-rack or multi-rack configurations.
Overlay and Underlay packet walk-through.
Virtual Network Overlay
Ref: https://wiki.opencord.org/display/CORD/Virtual+Network+Overlay
-
Services 有他們自己的 virtual networks (VNs) - 不論是 VM 或是 container 都是在同一個
-
scale
-
每個 compute node 上的 VM 或是 container 都要連到 OVS 上
-
每個 Virtual Network (or service) 都要有自己的 Load-Balancer(LB) 分布在每個 OVS 網路中。LB 專門選擇 VM instance 的。
-
Service composition walkthrough
-
XOS 和 ONOS 的 VTN app 會互相協調以保持虛擬的 infrastructure 狀態是最新的。 ( VTN updates tables in a special purpose OVS pipeline to reflect the desired subscriber service flow. OVS forwarding pipeline 如下)
-
Subscriber traffic is NATted by the vSG.
Virtual Tenant Network(VTN)
Virtual Router (vRouter)
Ref: https://wiki.opencord.org/pages/viewpage.action?pageId=1278093
- implemented as a network control application
- running on ONOS
- Perform L3 unicast routing to/from CO; participate in dynamic routing protocols (current supports OSPF and BGP)
- Multicast signaling and forwarding (currently supports PIM-SSM)
- Quagga 支持多種路由協議,允許 vRouter支持這些協議
- Quagga 將配置為與上游路由器通信: OSPF & iBGP
- 使用 FIB Push Interface (FPI): enables it to push routes to an external entity
Routing control traffic is handled by redirecting to towards the Quagga instance connected on the dataplane
Multicast
Dataplane
Components that make up the vRouter ONOS app
- Forwarding Plane Manager (FPM): decode routes from the external Netlink protocol
FIB installer: use ONOS BgpRouter application 的 SingleSwitchFibInstaller component
- SingleSwitchFibInstaller component
- install routes into a single switch
- generate FlowObjectives and submit them to ONOS
CORD Monitoring Service
XOS Monitoring service 支持:
- real time network observability for SDN fixed
- mobile networks in a Telco Central Office
須提供:
- Analytics
- support multi-tenancy
- 檢測服務
- adjust the level of probing in the underlying devices
- aggregate probing information
- redirect data streams through a “probe VM” for deeper level of instrumentation that is not otherwise available from underlying devices
Using OpenStack Ceilometer framework as Monitoring service.
Internal implementation based on OpenStack’s Ceilometer.
Monitoring service integrated into XOS.
CORD 定義
現今所謂的 R-CORD, M-CORD 都是 CORD 的其中一個 Solution 。
每個 solution 都是為了解決不同的 access technology
Solutions are defined by a Service Graph
- a set of Services and Dependencies between Services
- a Service consists of a Controller and one or more Slices
- a Slice is a logical resource container that includes a set of Instances and a set of Networks
個別的 components 可以單獨的被使用。可以確保與 CORD Vision 一致,但也可以以不同 integrated 的方式代替 CORD Architectures。
Today’s CORD Reference Platform includes the following software components: XOS, ONOS, OpenStack, Docker, VTN (an ONOS app that implements overlay virtual networks), and Fabric (an ONOS app that manages the switching fabric).