Disaggregated Junos Software Infrastructure
-
Upload
juniper-networks- -
Category
Technology
-
view
1.063 -
download
4
Transcript of Disaggregated Junos Software Infrastructure
Disaggregated JunosSoftware InfrastructureProviding an open and programmable platform for innovation
Juniper Networks, K.K.
この資料について
本資料は、Disaggregated Junosと呼ばれる、次世代ソフトウェアアーキテクチャとそれによる優位性、オープン性を解説します。
本資料はAPIについて説明するものではありません。APIに関してはそれぞれのAPIに対応する資料をご参照ください。
いくつかのUse Caseをご紹介していますが、これらは技術的な実現可能性のサンプルを示しており、現時点でJuniperより販売されているソリューションではありませんので、ご注意ください。
Agenda
• Disaggregated Junosによるオープン性とプログラマビリティの実現• Junosの進化
• アーキテクチャの優位性
• Disaggregated Junosによってもたらされるもの
• ユースケース
• アーキテクチャの概要
• コンポーネントの解説
• 各コンポーネントへの接続
Disaggregated Junos Software:オープン性とプログラマビリティの実現Platform for Innovation
Disaggregated Junos Software
Disaggregated Junosは、ユーザがサードパーテ
ィのアプリケーションやツールをルータ、スイッチ、セキュリティデバイスに搭載することを可能とします。コントロールプレーンとデータプレーンは並列に動作し、これらの機能はゲストアプリケーションやオーケストレーションツールから、APIを用いて直接かつ容易にアクセスすることが可能です。
Disaggregated Junosの目的
• プラットフォームのソフトウェアとネットワークの機能をハードウェアから完全に分離したアーキテクチャの提供
• ハードウェアベースのフォワーディングエンジンに対して、標準のオープンAPI(SDK)による直接的な接続を提供
• Junosに対する3rdパーティーパッケージ統合の必要性の排除
• 完全にオープンなコンテナ及び仮想マシンのサポート
• 仮想プラットフォームの提供
• 完全にオープンでプログラマブルなプラットフォームの提供
Junosの進化
Junos
• Control Plane
– BGP, MPLS, OSPF
• Forwarding Engine
– ACL, Fib, Mac Tables
• Platform Drivers
– Fan, Power Supply…
• KVMによる仮想化
– 仮想化されたJunos
– Control planeの仮想的な二重化によるISSU
• 1CPUを共有
• 全てのコンポーネントはJunosに含まれる
Linux
Junos VM
• H/Wから分離されたJunos VM
– Control Planeのみ
• Forwarding PlaneはLinux上でネイティブに動作
– CLIや3rd partyツールによる自動化
– コントローラまたはネイティブな管理エージェント
• ネイティブなLinux上のプラットフォームドライバ
– Linuxベースドライバの有効活用
• VMとコンテナのサポート
– あらゆるVMとコンテナ、バイナリのサポート
Linux
Platform Software
PFE Software
3rd Party (VM/Container)
A
P
I
s
VNF
Junos VM
パフォーマンスの向上
完全な仮想化
Linuxエコシステムの活用
RPM ベースのパッケージ管理
プログラマビリティ
Disaggregated Junosによるアドバンテージ
真にオープンでプログラマブルなシステムの創造
パフォーマンスの向上
完全な仮想化
Linuxエコシステムの活用
RPM ベースのパッケージ管理
プログラマビリティ
Disaggregated Junosによるアドバンテージ
• Junosコンポーネントのモジュラー化によるLinux上でのネイティブ動作
• Junosをハードウェアから独立させることによる、コントロールプレーンのみへの特化
• ソフトウェアとフォワーディングプレーン間の広帯域な専用接続の提供
• Junosソフトウェアの特定CPUへのpinning
• 3rd Partyアプリケーションはその他のCPUコアで動作
パフォーマンスの向上
完全な仮想化
Linuxエコシステムの活用
RPM ベースのパッケージ管理
プログラマビリティ
Disaggregated Junosによるアドバンテージ
• 標準的なx86 CPU上の仮想サーバ技術の使用(KVM等)
• コントロールプレーンの仮想化によるISSUの提供
• 3rd Partyアプリケーションを許容するVM/コンテナ/ネイティブLinux環境の提供
• ネイティブなLinuxツール(例: Nagios)をJuniperによるパッケージングなしで利用可能
• 仮想インフラからフロントパネル・ポートへの専用接続
パフォーマンスの向上
完全な仮想化
Linuxエコシステムの活用
RPM ベースのパッケージ管理
プログラマビリティ
Disaggregated Junosによるアドバンテージ
• あらゆるアプリケーションの、ネイティブなRPM、コンテナ、VMを用いたインストール
• ネイティブLinux環境への完全なアクセス
• あらゆる3rd Partyアプリケーションを動作させる事が可能な仮想化環境
• Puppet, Chef, Python 等のJunosコントロールプレーン外での動作
• Linux向けの豊富なデバイスドライバを活用することが可能
パフォーマンスの向上
完全な仮想化
Linuxエコシステムの活用
RPM ベースのパッケージ管理
プログラマビリティ
Disaggregated Junosによるアドバンテージ
• RPM Package Managerによる依存関係の管理とソフトウェアパッケージのアップグレード
• Junos向けのポイント・リリース(PFEやデバイスドライバ)
• コンポーネント単位でのアップグレード
• RPM SPECファイルによる依存関係の管理
• ユーザ自身またはJuniperの提供するリポジトリによる、選択的なシステムやパッケージのアップグレード
パフォーマンスの向上
完全な仮想化
Linuxエコシステムの活用
RPM ベースのパッケージ管理
プログラマビリティ
Disaggregated Junosによるアドバンテージ
• 外部または内部からのAPIを利用した3rd Partyソフトウェアによる設定の変更*
• コントロールプレーンAPI
– JET –ネットワークプロトコルやACL, インターフェイスなどの設定を提供
• データパスAPI
– OpenHAL –SAI (Switch Abstraction Interface, OpenNSL, OpenXP, and other vendor silicon APIs)を含む
• プラットフォームAPI
– ファン, 光学モジュール, 電源ユニットに関する操作を提供
*This is how programmability will evolve.
Disaggregated Junosによってもたらされるもの
監視と分析仮想化されたネットワーク機能
Linux
監視と分析
• データプレーンへの直接的な操作による監視と分析
• Nagios, Graylog, InMon, CAE
• 中央化されたロギング• VMやコンテナのログを共有
• 3rd Partyユーティリティ(例: Graylog)等をログ管理に利用可能
仮想化されたネットワーク機能
Linux
監視と分析 Linux
• SR-IOVに対応した内蔵NIC
• ハードウェアへの直接的なアクセスによるパフォーマンスの向上
• Virtual Functionによる効率的な物理デバイスの共有
• サービスチェイニングを提供可能な内部スイッチ
• Linux Bridges
• Open vSwitch
仮想化されたネットワーク機能
• Linuxシェルへの直接アクセス• プロビジョニングに使用するユーザインタフェイスとして、LinuxシェルかJunos CLIかをユーザ自身が選択可能
• /proc と /sysfs• Linuxファイルシステム経由での統計情報の取得
• 詳細なシステムのインベントリやリソースの消費情報の取得
• Linux用の様々なツールによる情報の収集や操作
監視と分析仮想化されたネットワーク機能
Linux
ユースケース
Nagiosを使用した /sysfsの監視
• Nagiosはシステムリソースを関しするために使用される3rd Partyアプリケーション
• システム上の全てのカウンタ情報は/sysfsに出力される
• Nagiosはパラメータを元にした通知を提供することができる
• これらのカウンタ情報の粒度はJunosに提供される物よりも高精度になる (例:パケットサイズ)
中央化されたロギング
• 全ての仮想化されたモジュールからのログはJDM内に格納される
• それぞれのVMはSyslogをJDMに送信する事が求められる
• ログ管理のための3rd PartyアプリケーションであるGraylogを使うことによって、これらを統合的に管理する事が可能
CAE (Cloud Analytics Engine)
• ローカルでの解析に加えて、詳細な情報を外部の解析サーバに送信することが可能
• CAEのコンポーネントはVM上で動作し、QFXスイッチ上で動作させる場合、完全にJunosから独立する
• フォワーディングプレーンに対して専用のパスで接続し、フローに関する情報を取得する
インベントリとリソース情報
• 全ての統計情報はXMLによって提供される• show system inventory in CLI from jdm
• ユーザは全ての情報を取得する事が可能
• From Linux• virsh cpu-stats vjunos0
• virsh dumpxml vjunos0 to dump current VM configuration
RPMs
• RPMによる、それぞれのコンポーネント単位での修正の提供:• Linux (Base OS)
• Junos VM (Control Plane)
• Platform (System Hardware)
• PFE (Data Plane)
• パッケージの依存関係はRPMによって管理される
Disaggregated Junosのアーキテクチャ
システム概要
• Junos はコントロールプレーン
• プラットフォームに依存する機能はJunosからは取り除かれ、Linux上で動作する• ハードウェアドライバ
• フォワーディングエンジン
• それぞれのポイントでAPIが提供され、それによりシステム全体を管理する事が可能
Native Linux Host OS
Packet Forwarding Engine
(PFE)Platform Hardware
Platform Daemon
Platform Independent
Platform Dependent
Junos VM
Platform
Independent
Forwarding Daemon
Platform Independent
Platform Dependent
Hardware Abstraction Layer
JET
Front Panel Ports
仮想化環境の概要
• Juniper Device Manager (JDM)• Linux上に配置されるUbuntuコンテナ
• 仮想環境の管理を行う
• オープンかつプログラマブルなツールチェーンのサポート
• LinuxまたはJunos CLIにより操作可能
• JDMによるSandbox環境の提供• システムリソースの消費やホストOSに影響を与えないために、アプリケーションはコンテナ内で動作する
Native Linux Host OS
Packet Forwarding Engine
(PFE)Platform Hardware
Front Panel Ports
Juniper
Device
Manager
(JDM)
SXE Ports
Junos VM
Platform
Independent
Container
3rd Party
Guest VM
3rd Party
Disaggregated Junosのコンポーネント
コンポーネントの概要
Linux
Juniper Device
Manager
Disaggregated Infrastructure
Forwarding Daemon Platform Daemon
Third-Party
Containers/ VMsJunos VMs
ホストOS
提供するもの:• カーネル, root ファイルシステム
• スイッチハードウェアのドライバ
• Open vSwitch
役割:• オープンソースなLinuxベースの安定した環境
• SELinuxに準拠
• 標準的なサーバ向けユーティリティを内包
• プロセスの管理にはmonitが使用される
• 最新のKVM & QEMU
• コンテナのサポート
• VT-d, SR-IOVへの対応
Linux
Juniper Device
Manager
Third-Party
Containers/
VMs
Disaggregated Infrastructure
Forwarding Daemon Platform Daemon
Junos VMs
フォワーディングデーモン
提供するもの:• PFEを管理するフォワーディングデーモン
役割:• JunosとSDKとの間の通信を提供
• チップベンダーのSDKを使用したPFEハードウェアへの操作
• RPCをサポートするPFE SDKの提供
PFEのコントロール
Linux
Juniper Device
Manager
Third-Party
Containers/
VMs
Disaggregated Infrastructure
Forwarding Daemon Platform Daemon
Junos VMs
プラットフォームデーモン
提供するもの:• プラットフォームに依存する機能の提供
役割:• ハードウェアとコントロールプレーンの間の橋渡し
• 主なデーモン:• Linux Chassis Manager
• (controls fans, Temp sensors, PSU, LEDs)
• CB Manager • (controls forwarding asic to CPU connectivity)
柔軟なハードウェアサポートの提供
Linux
Juniper Device
Manager
Third-Party
Containers/
VMs
Disaggregated Infrastructure
Forwarding Daemon Platform Daemon
Junos VMs
ゲストVM / コンテナ
提供するもの:• 3rd Partyアプリケーションのサポート
• RPMや コンテナ、ネイティブなLinuxアプリケーションのサポート
役割:• オープンかつプログラマブルな仮想化環境の提供
• Open vSwitchやSR-IOVによる接続性の提供
• 広帯域環境におけるサービスチェイニングを可能とする能力
• 仮想化環境の管理にはlibvirtを使用
• libvertはオープンソースで開発されている仮想化環境を管理するためのAPIとツール群であり、様々なハイパーバイザをサポートする
• 多重化された仮想化環境をサポートする
仮想マシン
Linux
Juniper Device
Manager
Third-Party
Containers/
VMs
Disaggregated Infrastructure
Forwarding Daemon Platform Daemon
Junos VMs
Junos
提供するもの:• コントロールプレーン
役割:• ハードウェア関係の機能を持たないJunos
• ハードウェア関係の機能はLinux上に移動
• PFE (Packet Forwarding Engine)
• Platform hardware details (memory, cores…)
• 物理ハードウェアへの直接操作を一切行わない
• ネットワーク機能のためのコントロールプレーン• OSPF, MPLS, EVPN, RSVP, LDP, BGP, …
VM上で動作するJunos
Linux
Juniper Device
Manager
Third-Party
Containers/
VMs
Disaggregated Infrastructure
Forwarding Daemon Platform Daemon
Junos VMs
Juniper Device Manager
提供するもの:• VM のライフサイクル管理
• NIC (SR-IOV)/仮想スイッチの作成
• 内部ネットワークの管理
• 中央化されたロギングとイメージの管理
役割:• システムへの入り口
• ユーザが操作可能なデフォルトのLinuxコンテナ
• ホストOSとユーザの変更可能な範囲のアイソレーション
• Linux上の一般的なアプリケーションの実行
(Root Container)
Linux
Juniper Device
Manager
Third-Party
Containers/
VMs
Disaggregated Infrastructure
Forwarding Daemon Platform Daemon
Junos VMs
各コンポーネントへの接続
異なるコンポーネントへの移動
• プラットフォームが起動すると、まずJDMが起動する。JDMはJunosベースのCLIを持つ
• 何種類かのコマンドによって、それぞれのコンポーネントに接続する
• JDMとVMの間では常にSSHによるアクセスが提供される
Root Container
(JDM)
Guest VM Host OS JDM CLI
まずはここにログイン
virsh console ssh hypervisor cli
JunosVM
virsh console
Container
virsh console
まとめ
• Disaggregated Junosは今後、スイッチ、ルータ、セキュリティ全てのプラットフォームに対して提供される
• 一般的なJunos CLIの提供に加えて、Linuxシェルへの直接アクセスが提供される
• 3rd Partyアプリケーションやドライバサポートなど、Linuxエコシステムを活用する
• RPMパッケージマネージャによる、コンポーネント単位でのソフトウェアアップグレードの提供
• あらゆるネイティブアプリケーションやサードパーティのVNFを動作させることが出来る仮想化環境の提供
データプレーンやコントロールプレーン、プラットフォーム依存の機能を含むあらゆるAPIの提供と、それによる統合を実現
THANK YOU!