Upload
kentaro-ebisawa
View
1.551
Download
0
Embed Size (px)
Citation preview
"OPEN NETWORKING" に向けたManagement / Data Plane の動向
海老澤健太郎 | Twitter: @ebiken
ENOG#41@佐渡 | 2016/10/28
“OPEN NETWORKING” とは?
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 2
オープン=自由
選択の自由(disaggregation / decoupling)
機能変更・追加の自由
※オープン!=オープンソース (Open Source Softwareだけに限定されない)
「ユースケースに合わせたネットワーク機能」が「コモディティハードウェア」 で実現可能に
スイッチ基礎知識
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 3
スイッチの構成と機能
マネジメント・プレーン• ユーザーインターフェース• 設定管理• モニタリング・ログ機能の提供
パーサー
パケット処理パイプライン
変換・転送
エンジン
OF L2 L3 ACL
マッチ・テーブル(OF/FIB/ACL)
Layer 2/3 エージェントルーティングテーブル(RIB)STP BGP OSPF
User Interface
CLI API
Management Features
SNMP LOG CONFIG
コントロール・プレーン• ルーティングプロトコルの処理• RIBの集約• FIBの更新
データ・プレーン• パケットヘッダの解析• パケットの返還・転送
OPEN NETWORKING 前夜Giantsの取り組み
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 4
Giantsの取り組み
•データセンター間のトラフィック制御• 2010 検証開始~ 2012公開
•管理システムから集中管理可能な
スイッチが無かったため自作
•構成• ASIC (Merchant silicon)• 10Gbps x 100 ports• OpenFlow + BGP/ISIS/OSPF (Quagga)
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 5
Google : B4 (G-Scale Network)
参考資料:• Open Network Summit 2012
• http://opennetsummit.org/archives/apr12/hoelzle-tue-openflow.pdf• ONF Case Study Doc: Inter-Datacenter WAN with centralized TE using SDN and OpenFlow
• https://www.opennetworking.org/images/stories/downloads/sdn-resources/customer-case-studies/cs-googlesdn.pdf• B4: Experience with a Globally-Deployed Software Defined WAN (Paper at ACM SIGCOMM 2013)
• https://people.eecs.berkeley.edu/~sylvia/cs268-2014/papers/b4-sigcomm13.pdf
Giantsの取り組み
• ネットワーク機器(ToR Switch)をサーバー(Linux Based)と同様に運用したい。• 分散管理システムにネットワーク機器を統合• アプリケーションエンジニアがネットワークをサーバーと同様に扱えるように
Thriftベースの抽象化レイヤをスイッチASIC APIのレイヤに追加
• 構成• Wedge: ToR Switchハードウェア設計(OCPで公開)• FBOSS: ASIC制御+CLI (OCPで公開)• Routing Daemon: 内製(非公開)• Management tools: 内製(非公開)• Base OS: Open Network Linux (By Big Switch Networks)
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 6
Facebook : Wedge + FBOSS
参考資料:• Open networking advances with Wedge and FBOSS (Facebook Code, 2015/11/20)
• https://code.facebook.com/posts/145488969140934/open-networking-advances-with-wedge-and-fboss/• Facebook Open Switching System ("FBOSS") and Wedge in the open (Facebook Code, 2015/03/11)
• https://code.facebook.com/posts/843620439027582/facebook-open-switching-system-fboss-and-wedge-in-the-open/
• Introducing “Wedge” and “FBOSS,” the next steps toward a disaggregated network (Facebook Code, 2014/06/19)• https://code.facebook.com/posts/681382905244727/introducing-wedge-and-fboss-the-next-steps-toward-a-disaggregated-network/
Giantsの取り組み
• LinuxベースのNOSで管理システムと統合しやすくし、自動化を進める
• 2016年3月公開• 開発・利用は数年前から• SAI: OCP Contribution Dec 2014
• その他、具体的な内容は未発表?• Azure運用管理アプリケーションの移動・拡充?(Aristaで動かしていた)
• より速いイノベーションを求めオープン仕様に
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 7
Microsoft: SONiC
参考資料:• Microsoft showcases “Software for Open Networking in the Cloud (SONiC)”
• https://azure.microsoft.com/ja-jp/blog/microsoft-showcases-software-for-open-networking-in-the-cloud-sonic/
• Ansible on SONiC (スイッチのデプロイメント用)• https://github.com/Azure/sonic-mgmt/tree/master/ansible
Giantsの取り組み
• アプリケーションの(パケット)遅延による問題を解決するため• マイクロバーストによるバッファあふれを検知• 必要な情報取得できない&ベンダーは機能追加してくれないため、自社開発を決断
• その他の自社開発を決断した理由• バグのタイムリーな修正(LinkedInのプライオリティに応じた)• 自社で使用しない機能に由来するバグからの脱却• Linux ベースの自動化ツールの必要性
• e.g. Chef/Puppet/CFEngine• 時代遅れの監視・ログツールへの依存を軽減
• SNMP⇒ Kafka (pub/sub messaging for telemetry)• ライセンスやサポート費用のスケーラビリティ
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 8
LinkedIn: Project Falco
参考情報• Project Falco: Decoupling Switching Hardware and Software
• https://engineering.linkedin.com/blog/2016/02/falco-decoupling-switching-hardware-and-software-pigeon
• 構成管理の自動化• サーバー(Linux)運用管理ツールの利用
• 詳細情報の取得• 必要な情報を取りたい• 情報をスイッチ上でフィルタリングしたい。• ログ収集サーバーへプッシュ(含むPub/Sub)
• 機能変更・追加• ユースケースに合わせたカスタマイズ• Routing Agentへの機能追加・カスタマイズ• トラフィックエンジニアリング(パケット処理ルールを変更)
• 新しいプロトコルのサポート(実験)• SFC/NSH, GTP etc.
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 9
"OPEN NETWORKING" でやりたい事
パーサー
パケット処理パイプライン
変換・転送
エンジン
OF L2 L3 ACL
マッチ・テーブル(OF/FIB/ACL)
Layer 2/3 エージェントルーティングテーブル(RIB)STP BGP OSPF
User Interface
CLI API
Management Features
SNMP LOG CONFIG
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 10
実現のために必要な変化マネジメント・プレーン• Linux Shell の解放• 既存サーバー管理ツールの動作• 自作ツール・エージェントの実行
パーサー
パケット処理パイプライン
変換・転送
エンジン
OF L2 L3 ACL
マッチ・テーブル(OF/FIB/ACL)
Layer 2/3 エージェントルーティングテーブル(RIB)STP BGP OSPF
User Interface
CLI API
Management Features
SNMP LOG CONFIG
コントロール・プレーン• L2/L3エージェントの変更・置き換え• 欲しい情報の収集• 新しいプロトコルへの対応
データ・プレーン• 新しいヘッダへの対応(パーサー&マッチの変更)
• パケット処理方法の変更(アクション)
“OPEN NETWORKING” への流れ“OPEN NETWORKING” accessible to non-giants.
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 11
“OPEN NETWORKING” への流れ
•オープンな Linux Shell• サーバーと同じ環境でプログラム・ツールの利用が可能• Cumulus Linux (2010)
•ユーザープログラムの実行環境• メーカーが用意した環境で動作可能• Arista(最近では Cisco / Juniper なども)
•オープンな dataplane API• ベアメタル(White Box)で動作するOpenFlowスイッチ• Pica8, Big Switch Networks
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 12
オープンなスイッチの先駆け
“OPEN NETWORKING” への流れ
• OpenSwitch (ops)• http://www.openswitch.net/• Released: 2015 Oct. (10月)• Initial Contributors:
• Hewlett Packard, Accton, Broadcom• Intel, Qosmos, VMWare, Arista.
• Under “Linux Foundation”
• Open Network Linux (ONL)• http://opennetlinux.org/• Released: 2014 Jan. (1月)• Initial Contributor:
• Big Switch Networks• Under “Open Compute Project (OCP)”
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 13
オープンな Network OSの登場
スイッチハードウェアデファクトが登場
“OPEN NETWORKING” への流れ
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 14
オープンな Network OSの登場(背景)
• Open Compute Project (OCP)
• ODM 通じて誰でも購入可能に
• Broadcom: OF-DPA/OpenNSL
• Mellanox: Open Ethernet API
• Cavium XPliant: OpenXPS
• Switch Abstraction Interface (SAI)• Broadcom, Mellanox, Cavium XPliant
• OCP submitted de-facto standard
ASIC SDK/API のオープン化・標準化
“OPEN NETWORKING” への流れ
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 15
Switch Abstraction Interface (SAI)
Broadcom Mellanox Cavium
OF-DPAOpenNSL
OpenEthernet
API OpenXPS SDK/API
ASIC Broadcom Mellanox Cavium
Switch Abstraction Interface (SAI)
Data Plane Abstraction
Broadcom Mellanox Cavium
Layer 2/3 Agents(OSPF, BGP, STP, LLDP ...)
Data Plane Abstraction
SAI
Layer 2/3 Agents(OSPF, BGP, STP, LLDP ...)
Plug-in
ASIC SDK/API のオープン化 ASIC SDK/API の標準化
“OPEN NETWORKING” への流れ
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 16
Network OS components
Boot Loader(Utilizing ONIE)
Bear Metal Switch (White Box / OCP based)
Merchant ASIC(Cavium, Broadcom,
Mellanox, Intel)
Other HardwareManagement
Linux KernelData Plane abstraction
(Per ASIC SDK)
CPUDRAM
Network I/F(Ethernet ports)
Fan, LED, Sensor
L2/L3 Protocol
Daemons
User Interface(CLI / GUI / API)
OpenFlowAgent
Common L2/L3/OF APIs
Stats / Status(SNMP, Syslog)
CPU Board Packet Processing Board
OpenSwitch (ops)NOSすべての部分(Linux Kernel以外)
Open Network LinuxプロトコルエージェントやASIC管理を除いた部分
そのまま使えるLinuxベースのオープンNOS
プロトコルやASIC管理部分を自作できるプラットフォーム
Open Switch (ops)
Open Network OS | Overview as of 2016/07/04 17
Open Switch (ops) Architecture• Central System state database (including configuration)
• Based on “OVSDB-Server”
• “ops-switchd” to abstract datapath and manage ASIC.• Based on “Open vSwitch (OVS)”• OpenFlow functionality is not yet supported.
• Hardware support daemons• Managing I2C peripherals using Config-YAML library.
• L2/L3 Protocol Daemons• System Daemons• Management / Monitoring Daemons
Reference: http://www.openswitch.net/documents/user/architecture
Open Network Linux (ONL)
Open Network OS | Overview as of 2016/07/04 18
Open Network Linux (ONL) ArchitectureONL architecture is well described in below slides
presented at “Okinawa Open Days 2014” by Rob Sherwood, Big Switch Networks CTO.http://www.e-side.co.jp/okinawaopendays/2014/document/12_Rob-Sherwood.pdf
“OPEN NETWORKING” への流れ
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 19
Open Network Linux as NOS Platform
Boot Loader(Utilizing ONIE)
Merchant ASIC(Cavium, Broadcom,
Mellanox, Intel)
Other HardwareManagement
Linux KernelData Plane abstraction
(Per ASIC SDK)
CPUDRAM
Network I/F(Ethernet ports)
Fan, LED, Sensor
L2/L3 Protocol
Daemons
User Interface(CLI / GUI / API)
OpenFlowAgent
Common L2/L3/OF APIs
Stats / Status(SNMP, Syslog)
CPU Board Packet Processing Board
Microsoft+ SONiC
Facebook+ FBOSS / Protocol Agents
SnapRoute+ FlexSwitch
Bear Metal Switch (White Box / OCP based)
SnapRoute / FlexSwitch Architecture
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 20
SnapRoute / FlexSwitch
• Go + Pythonで記述• 疎結合なアーキテクチャ• カスタマイズ可能な機能パーツ• サーバーツールの活用
• ペリフェラル管理はONLを利用
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 21
実現のために必要な変化マネジメント・プレーン• Linux Shell の解放• 既存サーバー管理ツールの動作• 自作ツール・エージェントの実行
パーサー
パケット処理パイプライン
変換・転送
エンジン
OF L2 L3 ACL
マッチ・テーブル(OF/FIB/ACL)
Layer 2/3 エージェントルーティングテーブル(RIB)STP BGP OSPF
User Interface
CLI API
Management Features
SNMP LOG CONFIG
コントロール・プレーン• L2/L3エージェントの変更・置き換え• 欲しい情報の収集• 新しいプロトコルへの対応
オープンなNOSの登場により、環境が整いつつある
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 22
実現のために必要な変化
パーサー
パケット処理パイプライン
変換・転送
エンジン
OF L2 L3 ACL
マッチ・テーブル(OF/FIB/ACL)
Layer 2/3 エージェントルーティングテーブル(RIB)STP BGP OSPF
User Interface
CLI API
Management Features
SNMP LOG CONFIG
データ・プレーン• 新しいヘッダへの対応(パーサー&マッチの変更)
• パケット処理方法の変更(アクション)
データプレーンをカスタマイズ可能なASIC
データープレーン定義言語・仕様の登場
データ・プレーンのプログラマビリティ
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 23
Cavium XPliant• 2016年9月リリース
•プログラマブル ASIC (non-NPU)• プロファイル(=レジスタ設定)切り替えで起動時に動作変更可能
• パーサー(パケットヘッダ)• ルックアップ・テーブル• パケット処理ロジック
• パイプライン(マッチ・アクション)• パケットヘッダ変更
• 3.2Tbps IO Throughput• 100Gbps x 32 ports
diagram from: http://cavium.com/XPliant-Ethernet-Switch-Product-Family.html
データ・プレーンのプログラマビリティ
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 24
ParserIngress
ACL
Multicast &
Bridge(L2)MPLS
Q-in-Q(802.1q)
IP Unicast (LPM)
Egress ACL
Tx
ParserOpenFlow
Table#0OpenFlow
Table#1OpenFlow
Table#2OpenFlow
Table#3
Multicast &
Bridge(L2)
IP Unicast (LPM)
Tx
Carrier Routing & Switching Profile
OpenFlow + L2/L3 Hybrid Profile
パイプライン・プロファイル変更の例
データ・プレーンのプログラマビリティ
• 実質的なスケーラビリティの向上• 少数のコモディティなハードウェアで、様々なユースケースに対応• コストだけでなく、スケールしなくて適用できなかった分野での利用可能性
• ハードウェアリソース、特にテーブル用(TCM、SRAM)は有限• TCAMの有効利用
• 例:4Mbit TCAMに読み込み可能なエントリ数• 40k : IPv4 5 Tuple [IP Src/Dst Addr, proto, Src/Dst Port] (64 + 8 + 32 = 104) • 13k : IPv6 Src/Dst Addr + 5 Tuple (256 + 8 + 32 = 296)• 11k : IPv4/v6 5 Tuple [IPv4/v6 Src/Dst Addr, proto, Src/Dst Port] (256 + 64 + 8 + 32 = 360) • 200k : MPLS Label (20)
• TCAM -> SRAMへのテーブルの移動• “TCAM : masked match” => ~数10Kルール• “SRAM : Exact Match” =>数100K~ルール
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 25
パイプライン・マッチテーブル変更の意義
データ・プレーンのプログラマビリティ
• P4: Programming Protocol-Independent Packet Processors
•パケット処理を定義する言語(オープンソース)
•パーサーの定義
•処理ルールの定義(マッチ+アクション転送モデル)
• APIの自動生成
•動作環境:• ASIC, FPGA, Network Processor (NPU), Software Dataplane (CPU)
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 26
P4 ... データ・プレーン定義言語
データ・プレーンのプログラマビリティ
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 27
P4 データ・プレーン(モデル)Diagram from: http://p4.org/wp-content/uploads/2015/03/p4-tutorial-12201423.pdf
P4: Programming Protocol-Independent Packet Processors
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 28
実行可能なアクション(例)
• フィールド値の変更(パケットヘッダ/メタデータ)• ヘッダの追加・削除• カウンター、メーター
パーサー (パケット・ヘッダ) マッチ+アクションテーブル
P4: Programming Protocol-Independent Packet Processors
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 29
コントロールフローの定義
データ・プレーンのプログラマビリティ
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 30
P4サポート状況• Barefoot
• P4論文著者(Nick McKeown)がCo-Founder
• 6.5Tbps ASIC (2017年リリース予定)
• Xilinx• NetFPGA (NIC型)
• Netronome• Smart NIC上で P4で定義されたデータプレーンが動作
•既にSDKなどリリース済み。テスト可能。(要NDA)
• Software Data Plane• Linux Behavioral Model
• OVS (OpenVSwitch) + P4
"OPEN NETWORKING" の状況(まとめ)
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 31
"OPEN NETWORKING" の環境が整いつつある
自由に機能追加・変更可能なNOS(プラットフォーム)入れ替え可能なプロトコル・エージェント
プログラミング可能なASIC (Cavium) ・データプレーン定義言語の登場(P4)
完成した製品が突然リリース(発売)される事はない。
試して 「何にどう使うか」フィードバックしながら前へコミュニティに参加(日本は少ないけど)
多くの人が使えるようになるほど今は誰も想像してない使い方が生まれるはず
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 32
最近自分が取り組んでる事
Modular RoutingAgents
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28
REST API(WebAPI)
User Apps
Linux shell(CLI as an
Application)
Config Broker(data store)
Modular RoutingAgents
FEA (Forwarding Engine Abstraction)
Data PathProfile
Manager
Flexible Data Plane
User Apps
Management Plane
Data Plane
External AppsMngment System Operator
Flex ASIC(XPliant etc.)
PontOS Concept & Architecture
ApplicationFriendly API
33
Linux KernelNetwork Stack
P4 (SmartNIC, NPU, FPGA)
Native Applications
Native Applications
Native Applications
SDK(Language API)
FlexibleData plane
Profile based selection ofPacket Processing Logic
Building Blocks made of Open Source,and not a black box
Application friendly environmentto enable Network Programmability
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 34
Slides by 石黒邦宏 (Hash-set) at ONIC Japan 2016
"Zebra 2.0 – SDN, NFV, Container時代のNetworking Softwareの設計と実装"
http://onic.jp/program-detail/#f07
Open NOS, Baremetal/WhiteBox Switch や P4など、
興味あるかたお声掛けください。
技術調査、実験など一緒にやりましょう。
Twitter: @ebiken | email: ebiken.g [at] gmail.com
"OPEN NETWORKING" に向けたManagement/Data Plane の動向 | ENOG#41 @佐渡 | 2016/10/28 35