Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Zebra 2.0 in Hybrid Cloud Era

1,953 views

Published on

Zebra 2.0 in Hybrid Cloud Era ~ requirements for network nodes

Published in: Technology
  • Login to see the comments

  • Be the first to like this

Zebra 2.0 in Hybrid Cloud Era

  1. 1. Zebra 2.0 in Hybrid Cloud Era requirements for network nodes Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 1 Okinawa Open Lab ~ Forum 2018/01/19 ebiken@pontonetworks.com
  2. 2. Hybrid Cloud 時代(仮)に ネットワーク・ノードに求められる機能 Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 2
  3. 3. Public Cloud (AWS, Azure ...) Hybrid cloud for Enterprise xSP infrastructure (Data Center) NFV for telco Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 4 (本日の) “Hybrid Cloud 時代(仮)” とは ??
  4. 4. Public Cloud (AWS, Azure ...) ① Hybrid cloud for Enterprise ①② xSP infrastructure (Data Center) ①② NFV for telco ①② ① 仮想環境内のノード ② 仮想環境のインフラ Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 5 (本日の)“Hybrid Cloud 時代(仮)” とは ??
  5. 5. (router/switch/gateways) 共通インターフェース (CLI/API) 置き換え可能なデータプレーン 大規模(多数)ノードの管理 Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 7 ネットワーク・ノードに求められる機能
  6. 6. • ノードの場所に依存しない共通API • オペレーターのシームレスな操作体験(CLI) • 学習コストの低減 • Common API regardless of where node resides • Seamless experience for operators (via CLI) • Reduce learning cost Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 9 共通インターフェース (CLI/API)
  7. 7. ASIC, FPGA, NPU, CPU (Linux dataplane / DPDK etc) • 異なるパフォーマンス要件 • スループット、遅延、ポータビリティ • 初期コスト vs ランニングコスト のバランス • different performance requirement • throughput, delay, portability • initial vs running cost balance Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 11 置き換え可能なデータプレーン
  8. 8. • パブ/サブ(pub/sub)形式の設定方法 (ex: etcd) • (中央のコントローラーからのプッシュだけでなく) • 分散設定ストア・パブリケーション • pub/sub type configuration method (ex: etcd) • (Not only PUSH from central controller) • Distributed configuration store & publication Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 13 大規模(多数)ノードの管理
  9. 9. Zebra 2.0 overview Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 14
  10. 10. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 15 zebra (Zebra 2.0) / openconfigd Apache License Network operator friendly CLI Pub/Sub type configuration management Single SPF Algorithm for OSPFv2/OSPFv3/IS-IS Cutting edge protocol support (SRv6, MPLS VPN) Forwarding Engine Abstraction for software & hardware dataplane Written From Scratch in Go gRPC for RPC zebra is an open source implementation as a successor of GNU Zebra and Quagga project. A dataplane agnostic Network Operation Stack works with variable protocol/functional modules.
  11. 11. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 16 Zebra 2.0 Architecture CLI openconfigd Linux dataplane quaggad bgpd / ospfd ribd fea quagga openconfigd zebra gRPC gRPC (yang model) vtysh Tap interface netlink Hardware dataplane HW API (SAI, XDK etc.) zebra proto gRPC bgpd/ospfd gRPC gRPC etcd JSON Written from scratch in Go • openconfigd • configuration system • yang model • CLI (Junos like) • etcd for scalability • zebra/ribd • dataplane management (ex: FIB) • zebra/fea • multiple dataplane support • link/port, bridge domain etc. • New bgpd/ospfd • multi-core support • quaggad & zebra protocol • for backward compatibility
  12. 12. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 17 Highly Scalable Configuration Architecture (pub/sub)
  13. 13. zebra & openconfigd | Source Code on GitHub Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 18 Main Modules • openconfigd • https://github.com/coreswitch/openconfigd • zebra • https://github.com/coreswitch/zebra Helper Modules • component / dependency • Component dependencies library and dependency library. • https://github.com/coreswitch/component • https://github.com/coreswitch/dependency • log: logrus wrapper with source code information and function name and log levels. • https://github.com/coreswitch/log • cmd: Go library for command line parsing. • https://github.com/coreswitch/cmd
  14. 14. zebra & openconfigd • Install openconfigd $ go get github.com/coreswitch/openconfigd/openconfigd • Install CLI $ go get github.com/coreswitch/openconfigd/cli_command $ cd $GOPATH/src/github.com/ coreswitch /openconfigd/cli $ ./configure; make $ sudo make install $ cd $GOPATH/src/github.com/coreswitch/openconfigd/bash_completion.d $ sudo cp cli /etc/bash_completion.d/ • Install zebra $ go get github.com/coreswitch/zebra/rib/ribd Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 19 Installation Steps Check README.md for updated info https://github.com/coreswitch/openconfigd https://github.com/coreswitch/zebra
  15. 15. demo: zebra & openconfigd Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 20 zebra + openconfigd + Quagga ospfd/bgpd on LXC Check below doc for instruction how to run this demo https://github.com/coreswitch/zebra/blob/master/docs/quagga-lxc.md
  16. 16. zebra & openconfigd Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 21 Registering CLI commands from ribd to openconfigd https://github.com/coreswitch/zebra/blob/master/rib/api.go 1. Add “Parser.InstallCmd([]string{...}, <function>)” per command 2. Add “<function>” which will be called when command was entered via CLI operator -> CLI -> openconfigd -> zebra/ribd 1 2
  17. 17. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 22 dataplane abstraction via “Hook” functions 1. Register “Hook” functions for each dataplane (ex: ASIC API) 2. If there is “Hook” registered, then ribd will call the function instead of Linux dataplane functions.
  18. 18. • Basic routing/switching features (ACL, NAT etc.) • New Protocols • Segment Routing (SRv6) • Forwarding Engine Abstraction • ASIC support (via SAI) • P4 dataplane (via SAI or P4-PI) • New Protocol Agents • BGP, OSPFv2, OSPFv3, IS-IS Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 23 Zebra 2.0 (future roadmap)
  19. 19. DEMO: Zebra 2.0 SRv6 CLI on Linux Dataplane Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 24
  20. 20. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 25 3. Segment Routing Extension Header (SRH) https://datatracker.ietf.org/doc/draft-ietf-6man-segment-routing-header/
  21. 21. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 26 demo topology Device ( Host 1 ) Zebra CLI Router A Router B Server ( Host 2 ) Zebra CLI Router C Router D Service Function ( Host 3X ) Service Function ( Host 3Y ) veth1: fc00:000a::10/64 veth2: fc00:000b::10/64 veth2veth1 vethA1 vethAD vethDA vethAC vethCA vethDB vethCB vethBD vethBC vethB2 Router A vethA1: fc00:000a::a/64 vethAC: fc00:00ac::a/64 vethAD: fc00:00ad::a/64 Router D vethDA: fc00:00ad::d/64 vethDB: fc00:00bd::d/64 vethD3: fc00:00d3::d/64 Router C vethCA: fc00:00ac::c/64 vethCB: fc00:00bc::c/64 vethC3: fc00:00c3::c/64 Router B vethBC: fc00:00bc::b/64 vethBD: fc00:00bd::b/64 vethB2: fc00:000b::b/64 • Host 1 & 2 : runs SRv6 (Zebra CLI + Linux dp) • Router A,B,C,D : IPv6 router with NO SRv6 • Host 3X : active service function • Host 3Y : standby service function veth3 vethC3 vethD3 veth3D veth3C veth3
  22. 22. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 27 Normal Route Device ( Host 1 ) Zebra CLI Router A Router B Server ( Host 2 ) Zebra CLI Router C Router D Service Function ( Host 3X ) Service Function ( Host 3Y ) veth1: fc00:000a::10/64 veth2: fc00:000b::10/64 veth2veth1 vethA1 vethAD vethDA vethAC vethCA vethDB vethCB vethBD vethBC vethB2 • Host 1 & 2 : runs SRv6 (Zebra CLI + Linux dp) • Router A,B,C,D : IPv6 router with NO SRv6 • Host 3X : active service function • Host 3Y : standby service function veth3 vethC3 vethD3 veth3D veth3C veth3
  23. 23. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 28 Add SRv6 Route on Device (Host 1) Device ( Host 1 ) Zebra CLI Router A Router B Server ( Host 2 ) Zebra CLI Router C Router D Service Function ( Host 3X ) Service Function ( Host 3Y ) veth1: fc00:000a::10/64 veth2: fc00:000b::10/64 veth2veth1 vethA1 vethAD vethDA vethAC vethCA vethDB vethCB vethBD vethBC vethB2 set routing-options ipv6 route-srv6 fc00:b::10/128 nexthop fc00:a::a seg6 inline segments fc00:3::10 veth3 vethC3 vethD3 veth3D veth3C veth3
  24. 24. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 29 Add SRv6 Route on Host 1 and Host 2 Device ( Host 1 ) Zebra CLI Router A Router B Server ( Host 2 ) Zebra CLI Router C Router D Service Function ( Host 3X ) Service Function ( Host 3Y ) veth1: fc00:000a::10/64 veth2: fc00:000b::10/64 veth2veth1 vethA1 vethAD vethDA vethAC vethCA vethDB vethCB vethBD vethBC vethB2 set routing-options ipv6 route-srv6 fc00:a::10/128 nexthop fc00:b::b seg6 inline segments fc00:3::10 veth3 vethC3 vethD3 veth3D veth3C veth3
  25. 25. Zebra 2.0 in Hybrid Cloud Era | Kentaro Ebisawa <ebiken@pontonetworks.com> | Okinawa Open Lab ~ Forum 2018/01/19 30 Next Step : SRv6 Mobile Network Programmability +-----------------------------+--------+----------+ | User-plane Function | Uplink | Downlink | +-----------------------------+--------+----------+ | stateless interworking node | T.Tmap | End.TM | | L2-anchor | End.B6 | End.B6 | | L3-anchor | End.T | T.Insert | +-----------------------------+--------+----------+

×