CNTUG meetup #24
Session 1. OpenvSwitch 深入淺出
http://www.openvswitch.org/
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Openflow
- Maintained by Open Networking Foundation (ONF)
- The first standard communication interface defined network…
- Rule (比對規則): Switch Port, Layer 2 Header, Layer 3 Header, Layer 4 Header
- Action (比對到規則後要做的事)
- Forward packet to ports
- Encapsulate and forward to controller
- Modify fields (修改 Header 任何欄位)
- Normal Pipeline
- Extension (現實環境可能有些狀況是 OpenFlow 預設沒有支援的,可以寫 Extension 來擴充功能)
- Stats
Open vSwitch
- Need to prepare all flow rules
- without linux kernel (mostly)
- Openflow controller
- CLI
- Difficult to maintain all logics
OpenFlow Rule 雖然很漂亮,但是很難下,例如:在一般 Linux Kernel 底下,NAT 直接用 iptables 就可以完成,但是如果改用 OpenFlow Rule,就必須下一大堆 Rule (除了 ARP Rule 之外還必須修改 Src IP, Dst IP),增加管理上及實作上的複雜度。
Other funcations
- Linux
- Tunneling
- iptables extension
- 802.1q VLAN
- Link Aggregation with/without LACP
- QoS
- Traffic Shaping
- Socket Applications
- VPN, other networking functions.
Linux Kernel (iptables) 能做到的功能比 Open vSwitch 還要多出很多,且Linux 社群比 Open vSwitch 社群還要龐大更多,因此建議根據使用情境,來決定是否採用 Open vSwitch 或是使用 Linux Kernel 就可以了。
Kuberbetes & OVS
- Kubernetes & Networking
- Pod communication
- Service
- Network Policy
- CNI Flannel
- Linux Bridge
- ARP Table
- Routing Table
- Iptables
- Iptables
- Challenge
- Pod to Pod
- Pod to WAN
- Kube-proxy (service)
- Monitor service object
- Create/Update/Remove rules
- Translate policy to OpenFlow rules and apply to all switches.
- NetworkPolicy
- Projects
Why OVS?
- Networking performance?
- Open vSwitch + DPDK (Kernal Bypass)
- Hardware offloading
- Service Chain?
- Similar to Service Mesh
- Service Mesh 大多都是用 iptables 來完成,iptable rules 數量一大,效率就降低(因為需要一條條比對),且極難維護
- Rewrite packets header
- Redirect packets within different Pods
- Networking Traffic Monitor?
複雜度大於好處,未必需要導入 Kubernetes
Do I Need it?
One
- Learn how system works
- Computing/Storage/Networking
- Linux (將基本LINUX功夫學好,這些底層概念都可以帶著走)
- Increase your value (你和其他人的價值差別在哪)
- Don't rely on Framework or Tools
- Helm/Operator framework …etc
- Never be the Yaml Engineer
Don't be YAML engineer! 不懂底下如何運作,只知道如何寫 YAML 就可以 work
Q&A
SR-IOV
https://github.com/feiskyer/sdn-handbook/blob/master/linux/sr-iov.md
Session 2. Stratum - 讓你擁有真正的SDN
- Challenge:
- Challenge:
- Challenge: Handling Migration
- Widespread, greenfield adoption of new technology is not feasible
- Types of Migration
- Need interfaces, models and operations to be consistent to allow incremental adoption along these axes
- Wanted
- New control interface with:
- Abstraction for different types of switching chips
- Well defined interfaces and behavior
- Extensibility
- Common models for configuation and monitoring
- Common interafces for operations
- Common platform abstraction
- Open source switch stack
P4 (Programming Protocol-indenpendent Packet Processors)
https://p4.org/
P4Runtime overview
- API for runtime control of P4-defined switches
- Community-developed (p4.org API WG)
- gRPC/protobuf-based API definition
- P4 program-independent
- Enables filed-reconfigurability
Though P4Runtime are great, but…
- Missing
- Configuration
- Monitoring
- Operations
Enhanced Configuration
- Configuration and Management
- Declarative configuration
- Streaming telemetry
- Model-driven management and operations
- gNMI - network management interafce
- gNOI - network operations interface
- Vendor-neutral data models
Google (seed code) + ONF (and community) = stratum
Vision
- Stratum supports multiple silicon products
- Stratum runs on many platforms
- Widely deployed in production SDN fabrics
- Enables P4Runtime and OpenConfig in the industry


- Stratum Use Cases
- Cloud SDN Fabric
- CORD: 5G Mobile & More
- Thick Switch/Router



Stratum Implementation Details
- Implements P4Runtime, gNMI, and gNOI services
- Controlled locally or remotely using gRPC
- Written in C++11
- Runs as a Linux process in user space
- Can be distributed with ONL
- Built using Bazel
Project Status
- Reference platforms from 2 ASIC vendors and 6 platform vendors
Getting Involved