• EOS Network Telemetryの概要〜EOS OpenConfig対応

 
 
Print Friendly, PDF & Email

粒度の細かいスイッチの状態監視や適切なトラフィックエンジニアリング実現のためにテレメトリデータの活用が注目されています。

ARISTA EOSは、スイッチ単体、ネットワークワイドでテレメトリデータを収集するためにさまざまな機能を提供してきました。今回は、マルチベンダ環境でのマネージメントにおいて重要な要素となるEOSのOpenConfig対応について紹介します。

EOSのデータモデル

EOS4.18.1Fより、OpenConfigデータモデルをサポートしました。これにより、OpenConfigをサポートする外部システムからEOSへのアクセスやストリーミングが可能になります。テレメトリの観点では、TerminAttrプロセスが、EOS SysDBにある状態情報を出力していました。OpenConfigプロセスを実行することにより、OpenConfigに規定されるデータパスと構造でストリーミングが可能になります。ここでは、TerminAttrとOpenConfigについて、トランスポート、データ構造、出力できるデータ、外部システムの視点から、その違いを整理してみます。

streaming-model

TerminAttr

TerminAttrでは、トランスポートにgRPCやHTTPを利用します。データ構造は、JSON形式(キーとバリュ)です。出力できるデータは、SysDBやレイヤ2/3のテーブル、カウンタやKernelなど広範な情報が出力可能になっています。外部システムには、ARISTAのソフトウェアソリューションCloudVisionやKafka/ELKスタックなどオープソースを利用してデータの蓄積と解析が可能になっています。

OpenConfig

OpenConfigでは、トランスポートにgRPC, RESTCONFを利用します。(NETCONFトランスポートもサポート予定) データ構造は、OpenConfigで定義されるYANG形式です。出力できるデータは、OpenConfigで規定されるデータパスAPIの一部をサポートしています。外部システムには、OpenConfigをサポートするシステムを想定しています。なお、OpenConfigを利用したデータの操作(デバイスの設定など)については、NETCONFのサポートにより可能になります。以下にEOSがサポートするOpenConfigデータパスを示します。

/interfaces/interface/ config/
/network-instances/network-instance[name=default]/ protocols/protocol[identifier=BGP][name=BGP]/bgp/
global/config/....
/relay-agent/dhcp/agent-information-option/{config,state}/enable
/routing-policy/defined-sets/prefix-sets/prefix-set/config/...
/vlans/vlan/config...

TerminAttrに比較して、現在のEOS OpenConfigが提供できる情報はわずかになります。テレメトリデータの利活用を目的とする場合にはTerminAttrの利用を検討ください。 

EOS OpenConfigの動作確認

EOSにサブスクライブしてOpenConfig構造を確認するためのテスト用バイナリ(occli)を準備しています。このバイナリを用いると、OpenConfigの方式に則りOpenConfigパスのデータにアクセスすることが可能になります。ここでは、occliを利用してEOS OpenConfigパスにアクセスする例を紹介します。occliは、GOベースの軽量プログラムです。まずは、プログラムを実行するためにローカルのLinux環境でGOの環境を整えます。Linux環境は、Network Telemetryのオープンソース連携で紹介した環境を利用しています。

~$ export GOPATH=$HOME/go path
~$ export PATH=$PATH:$HOME/go/bin:$GOPATH/bin
~$ go get github.com/aristanetworks/goarista/cmd/occli

GO環境が整ったら、Gituhbよりoccliを取得します。occliは、ARISTAのソフトウェアエンジニアがOpenConfigアクセス用に準備したサンプルプログラムです。 occliコマンドが取得できれば、occliコマンドが実行可能になります。

~$ occli -addrs 172.20.10.3:6030 -username admin -password admin -get /interfaces/interface/

EOSの設定

OpenConfigでのデータ取得を可能にするためにdaemonパラメータから、OpenConfigプロセスを起動します。OpenConfigプロセスは、/usr/bin配下に存在します。(最新OSの実行環境を確認)

daemon OpenConfig
   exec /usr/bin/OpenConfig -grpcaddr=172.20.10.4:6030
   no shutdown

OpenConfigの出力例

ubuntu-1704:~$ occli -addrs 172.20.10.3:6030 -username admin -password admin -get /interfaces/interface/
I0517 18:08:25.910253 2150 client.go:43] Connected to 172.20.10.3:6030
{
  "notification": {
   "path": "/",
   "timestamp": 0,
   "updates": {
    "/interfaces/interface/": [
    {
     "config": {
      "description": "",
      "enabled": true,
      "mtu": 1500,
      "name": "Management1"
     },
     "name": "Management1",
     "openconfig-if-ethernet:ethernet": {
      "config": {
       "mac-address": "00:00:00:00:00:00"
      }
     }
    }



OpenConfigのサポート(今後のNETCONFトランスポート)により、マルチベンダ対応の外部システムからEOSにアクセスいただくことが可能になります。環境に応じてTerminAttrとOpenConfigを選択いただくことでテレメトリ環境を構築いただくことが可能になります。

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: