Disaggregated Junos Software Infrastructure

39
Disaggregated Junos Software Infrastructure Providing an open and programmable platform for innovation Juniper Networks, K.K.

Transcript of Disaggregated Junos Software Infrastructure

Page 1: Disaggregated Junos Software Infrastructure

Disaggregated JunosSoftware InfrastructureProviding an open and programmable platform for innovation

Juniper Networks, K.K.

Page 2: Disaggregated Junos Software Infrastructure

この資料について

本資料は、Disaggregated Junosと呼ばれる、次世代ソフトウェアアーキテクチャとそれによる優位性、オープン性を解説します。

本資料はAPIについて説明するものではありません。APIに関してはそれぞれのAPIに対応する資料をご参照ください。

いくつかのUse Caseをご紹介していますが、これらは技術的な実現可能性のサンプルを示しており、現時点でJuniperより販売されているソリューションではありませんので、ご注意ください。

Page 3: Disaggregated Junos Software Infrastructure

Agenda

• Disaggregated Junosによるオープン性とプログラマビリティの実現• Junosの進化

• アーキテクチャの優位性

• Disaggregated Junosによってもたらされるもの

• ユースケース

• アーキテクチャの概要

• コンポーネントの解説

• 各コンポーネントへの接続

Page 4: Disaggregated Junos Software Infrastructure

Disaggregated Junos Software:オープン性とプログラマビリティの実現Platform for Innovation

Page 5: Disaggregated Junos Software Infrastructure

Disaggregated Junos Software

Disaggregated Junosは、ユーザがサードパーテ

ィのアプリケーションやツールをルータ、スイッチ、セキュリティデバイスに搭載することを可能とします。コントロールプレーンとデータプレーンは並列に動作し、これらの機能はゲストアプリケーションやオーケストレーションツールから、APIを用いて直接かつ容易にアクセスすることが可能です。

Page 6: Disaggregated Junos Software Infrastructure

Disaggregated Junosの目的

• プラットフォームのソフトウェアとネットワークの機能をハードウェアから完全に分離したアーキテクチャの提供

• ハードウェアベースのフォワーディングエンジンに対して、標準のオープンAPI(SDK)による直接的な接続を提供

• Junosに対する3rdパーティーパッケージ統合の必要性の排除

• 完全にオープンなコンテナ及び仮想マシンのサポート

• 仮想プラットフォームの提供

• 完全にオープンでプログラマブルなプラットフォームの提供

Page 7: Disaggregated Junos Software Infrastructure

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

Page 8: Disaggregated Junos Software Infrastructure

パフォーマンスの向上

完全な仮想化

Linuxエコシステムの活用

RPM ベースのパッケージ管理

プログラマビリティ

Disaggregated Junosによるアドバンテージ

真にオープンでプログラマブルなシステムの創造

Page 9: Disaggregated Junos Software Infrastructure

パフォーマンスの向上

完全な仮想化

Linuxエコシステムの活用

RPM ベースのパッケージ管理

プログラマビリティ

Disaggregated Junosによるアドバンテージ

• Junosコンポーネントのモジュラー化によるLinux上でのネイティブ動作

• Junosをハードウェアから独立させることによる、コントロールプレーンのみへの特化

• ソフトウェアとフォワーディングプレーン間の広帯域な専用接続の提供

• Junosソフトウェアの特定CPUへのpinning

• 3rd Partyアプリケーションはその他のCPUコアで動作

Page 10: Disaggregated Junos Software Infrastructure

パフォーマンスの向上

完全な仮想化

Linuxエコシステムの活用

RPM ベースのパッケージ管理

プログラマビリティ

Disaggregated Junosによるアドバンテージ

• 標準的なx86 CPU上の仮想サーバ技術の使用(KVM等)

• コントロールプレーンの仮想化によるISSUの提供

• 3rd Partyアプリケーションを許容するVM/コンテナ/ネイティブLinux環境の提供

• ネイティブなLinuxツール(例: Nagios)をJuniperによるパッケージングなしで利用可能

• 仮想インフラからフロントパネル・ポートへの専用接続

Page 11: Disaggregated Junos Software Infrastructure

パフォーマンスの向上

完全な仮想化

Linuxエコシステムの活用

RPM ベースのパッケージ管理

プログラマビリティ

Disaggregated Junosによるアドバンテージ

• あらゆるアプリケーションの、ネイティブなRPM、コンテナ、VMを用いたインストール

• ネイティブLinux環境への完全なアクセス

• あらゆる3rd Partyアプリケーションを動作させる事が可能な仮想化環境

• Puppet, Chef, Python 等のJunosコントロールプレーン外での動作

• Linux向けの豊富なデバイスドライバを活用することが可能

Page 12: Disaggregated Junos Software Infrastructure

パフォーマンスの向上

完全な仮想化

Linuxエコシステムの活用

RPM ベースのパッケージ管理

プログラマビリティ

Disaggregated Junosによるアドバンテージ

• RPM Package Managerによる依存関係の管理とソフトウェアパッケージのアップグレード

• Junos向けのポイント・リリース(PFEやデバイスドライバ)

• コンポーネント単位でのアップグレード

• RPM SPECファイルによる依存関係の管理

• ユーザ自身またはJuniperの提供するリポジトリによる、選択的なシステムやパッケージのアップグレード

Page 13: Disaggregated Junos Software Infrastructure

パフォーマンスの向上

完全な仮想化

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.

Page 14: Disaggregated Junos Software Infrastructure

Disaggregated Junosによってもたらされるもの

Page 15: Disaggregated Junos Software Infrastructure

監視と分析仮想化されたネットワーク機能

Linux

Page 16: Disaggregated Junos Software Infrastructure

監視と分析

• データプレーンへの直接的な操作による監視と分析

• Nagios, Graylog, InMon, CAE

• 中央化されたロギング• VMやコンテナのログを共有

• 3rd Partyユーティリティ(例: Graylog)等をログ管理に利用可能

仮想化されたネットワーク機能

Linux

Page 17: Disaggregated Junos Software Infrastructure

監視と分析 Linux

• SR-IOVに対応した内蔵NIC

• ハードウェアへの直接的なアクセスによるパフォーマンスの向上

• Virtual Functionによる効率的な物理デバイスの共有

• サービスチェイニングを提供可能な内部スイッチ

• Linux Bridges

• Open vSwitch

仮想化されたネットワーク機能

Page 18: Disaggregated Junos Software Infrastructure

• Linuxシェルへの直接アクセス• プロビジョニングに使用するユーザインタフェイスとして、LinuxシェルかJunos CLIかをユーザ自身が選択可能

• /proc と /sysfs• Linuxファイルシステム経由での統計情報の取得

• 詳細なシステムのインベントリやリソースの消費情報の取得

• Linux用の様々なツールによる情報の収集や操作

監視と分析仮想化されたネットワーク機能

Linux

Page 19: Disaggregated Junos Software Infrastructure

ユースケース

Page 20: Disaggregated Junos Software Infrastructure

Nagiosを使用した /sysfsの監視

• Nagiosはシステムリソースを関しするために使用される3rd Partyアプリケーション

• システム上の全てのカウンタ情報は/sysfsに出力される

• Nagiosはパラメータを元にした通知を提供することができる

• これらのカウンタ情報の粒度はJunosに提供される物よりも高精度になる (例:パケットサイズ)

Page 21: Disaggregated Junos Software Infrastructure

中央化されたロギング

• 全ての仮想化されたモジュールからのログはJDM内に格納される

• それぞれのVMはSyslogをJDMに送信する事が求められる

• ログ管理のための3rd PartyアプリケーションであるGraylogを使うことによって、これらを統合的に管理する事が可能

Page 22: Disaggregated Junos Software Infrastructure

CAE (Cloud Analytics Engine)

• ローカルでの解析に加えて、詳細な情報を外部の解析サーバに送信することが可能

• CAEのコンポーネントはVM上で動作し、QFXスイッチ上で動作させる場合、完全にJunosから独立する

• フォワーディングプレーンに対して専用のパスで接続し、フローに関する情報を取得する

Page 23: Disaggregated Junos Software Infrastructure

インベントリとリソース情報

• 全ての統計情報はXMLによって提供される• show system inventory in CLI from jdm

• ユーザは全ての情報を取得する事が可能

• From Linux• virsh cpu-stats vjunos0

• virsh dumpxml vjunos0 to dump current VM configuration

Page 24: Disaggregated Junos Software Infrastructure

RPMs

• RPMによる、それぞれのコンポーネント単位での修正の提供:• Linux (Base OS)

• Junos VM (Control Plane)

• Platform (System Hardware)

• PFE (Data Plane)

• パッケージの依存関係はRPMによって管理される

Page 25: Disaggregated Junos Software Infrastructure

Disaggregated Junosのアーキテクチャ

Page 26: Disaggregated Junos Software Infrastructure

システム概要

• 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

Page 27: Disaggregated Junos Software Infrastructure

仮想化環境の概要

• 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

Page 28: Disaggregated Junos Software Infrastructure

Disaggregated Junosのコンポーネント

Page 29: Disaggregated Junos Software Infrastructure

コンポーネントの概要

Linux

Juniper Device

Manager

Disaggregated Infrastructure

Forwarding Daemon Platform Daemon

Third-Party

Containers/ VMsJunos VMs

Page 30: Disaggregated Junos Software Infrastructure

ホスト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

Page 31: Disaggregated Junos Software Infrastructure

フォワーディングデーモン

提供するもの:• 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

Page 32: Disaggregated Junos Software Infrastructure

プラットフォームデーモン

提供するもの:• プラットフォームに依存する機能の提供

役割:• ハードウェアとコントロールプレーンの間の橋渡し

• 主なデーモン:• 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

Page 33: Disaggregated Junos Software Infrastructure

ゲスト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

Page 34: Disaggregated Junos Software Infrastructure

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

Page 35: Disaggregated Junos Software Infrastructure

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

Page 36: Disaggregated Junos Software Infrastructure

各コンポーネントへの接続

Page 37: Disaggregated Junos Software Infrastructure

異なるコンポーネントへの移動

• プラットフォームが起動すると、まず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

Page 38: Disaggregated Junos Software Infrastructure

まとめ

• Disaggregated Junosは今後、スイッチ、ルータ、セキュリティ全てのプラットフォームに対して提供される

• 一般的なJunos CLIの提供に加えて、Linuxシェルへの直接アクセスが提供される

• 3rd Partyアプリケーションやドライバサポートなど、Linuxエコシステムを活用する

• RPMパッケージマネージャによる、コンポーネント単位でのソフトウェアアップグレードの提供

• あらゆるネイティブアプリケーションやサードパーティのVNFを動作させることが出来る仮想化環境の提供

データプレーンやコントロールプレーン、プラットフォーム依存の機能を含むあらゆるAPIの提供と、それによる統合を実現

Page 39: Disaggregated Junos Software Infrastructure

THANK YOU!