• EOSのソフトウェア不具合(Bug)調査

 
 
Print Friendly, PDF & Email

はじめに

Arista EOSはモジュラー型システムであり、またそれぞれのエージェントはSysDBを中心としたPub-Subモデルであり、それぞれのモジュールは独立して動作可能なため、ソフトウェア不具合が入り込みににくく、また1日あたり50,000項目にもあたるテストを毎日実施しているため、高品質なソフトウェアを提供可能であると言えます。

Ariasta ホワイトペーパー EOS:次世代の拡張可能なオペレーティング・システム

Arista Networks EOS Evolution and Quality with Ken Duda

 

一方で実際のネットワーク構築は長期間に渡るものも多い為、常に最新のソフトウェアバージョンを適用する事は難しいと言えるのでは無いでしょうか?

運用中の機器の既知のソフトウェア不具合(Bug)に関して把握し、対応をする事は不可欠であると言えます。

本ブログではCVX(Cloud Vision Exchange)のBug Alertを用いて効率よく、既知のネットワーク機器の不具合を調査する方法を記載したいと思います。

従来の方法(Software Bug Portal/リリースノート)

Software Bug Portalや最新のリリースノートを確認して頂くと、既知の不具合および未解決の不具合の事象や影響のあるソフトウェアバージョンに関して参照頂く事が出来ます。

これを実際に運用されているプロトコルやソフトウェアバージョンに照らし合わせ、影響の有無および影響度合いを把握します。

非常に時間と手間がかかる作業と言えるのでは無いでしょうか?

CVX(Cloud Vision Exchange)のBug Alert機能概要

CVXのBug Alertは従来、人によって行われていた前述の不具合(Bug)調査をソフトウェアの機能によって実現します。

ArsitaではSoftware Bug Portalで使われている既知のBug情報をAlertBaseとして提供

(AlertBaseはソフトウェアダウンロードページよりダウンロード出来ます。)

CVXにAlertBaseをダウンロードし、適用

各デバイスはCVXへクライアントして接続

CVXはCLI Relay Agentという機能で接続するデバイスのソフトウェアバージョンや設定内容を確認

CVXは機器のソフトウェア不具合情報をレポートします。

 

CVXのBug Alertデモおよびコマンド説明

AlertBaseの適用

CVXにてAlertBase.jsonがダウンロードされているかを確認します。

CVXにAlertBase.jsonを適用するには下記bashコマンドを実施します。

bash /usr/bin/AlertBaseImporter -l /mnt/flash/AlertBase.json

また自動的に最新のAlertBase.jsonをダウンロードできる為のスクリプトも用意しています。

デモの設定ではAliasコマンドを設定しています。

alias BugAlertImport bash /usr/bin/AlertBaseImporter -l /mnt/flash/AlertBase.json
alias BugAlertUpdate bash /mnt/flash/bugAleartUpdate.py

またスケジューラコマンドで24時間(1440分)毎に一度bugAleartUpdate.pyを実行し、最新のAlertBase.jsonをダウンロードできる様に設定しています。

schedule bugalertupdate interval 1440 timeout 30 max-log-files 100 command BugAlertUpdate

またEOSでは再起動の度にシステムを再構築される為、ブートされる度にAlertBase.jsonを適用するコマンドを実行するイベントスケジューラーを設定しています。

 

event-handler BugAlert
 trigger on-boot
 action bash /usr/bin/AlertBaseImporter -l /mnt/flash/AlertBase.json
 !

多くの情報がSysDBにインポートされているのがわかります。

BugAlertの実行

CVXのクライアントとして動作する設定は非常に簡単です。

management cvx
  no shutdown
  server host 192.168.1.10
  source-interface Management1

CVX(192.168.1.10)に接続する為の設定を行います。

CVX自身も調査対象に含める為、本設定が必要です。

cvx
  no shutdown
  !

CVXとして動作する為には上記の設定が必要になります。

BugAlert/Cli-Relayのサービスはデフォルトで有効になっている為、特別な設定は必要ありません。

BugAlertがインポートされ、しばらく経つとBugAlertを実行が可能になります。

cvx#show service bug-alert summary
  Bug Alert service: Enabled
  Alert Base release: 28c2491c-eac7-4c5d-8b1e-7ac717dc985d, released 2018-05-16
  Switches monitored: 6
  Total bugs in database: 541
  Total known bugs impact: 22
  Switches with known bugs impact: 3

“show service bug-alert summary”コマンドでサマリー情報が表示可能です。

CVXをあわせ6台スイッチがモニターされるのがわかり、データベースには541のBug情報があり、ネットワークとしてインパクトのある22個の既知バグが存在してる事がわかります。また対象となってるノード数は3台になります。

“show service bug-alert report”でインパクトのある既知バグと対象となっているノードが表示されます。

cvx#show service bug-alert report
  Bugs report
  ===========

---snip--

Bug ID: 190191
  Summary: Rib agent may restart on executing \"show ip bgp <prefix> command\"
  Switches impacted: R1 (2cc2.607a.795c)
  Fixed in: 4.17.6, 4.18.3, 4.19.1, 4.20.0
  Alert Note: Rib agent may restart unexpectedly when BGP has received more than 1024 paths for an ECMP prefix and "show ip bgp <prefix>" command is executed. "show ip bgp [vrf all|default]" command shall
 also fail, but not result in Rib agent restart.

---snip---

Switch report
  =============
  Switch: R1 (2cc2.607a.795c)
  EOS version: 4.18.1F
  Bug exposure: 180082, 187002, 188693, 190191, 192362, 194520, 195216, 195469, 197030, 203772, 205280, 212408, 214681, 228771

Switch: R2 (2cc2.605a.ab7e)
  EOS version: 4.15.10M
  Bug exposure: None

Switch: R3 (2cc2.6072.d71e)
  EOS version: 4.20.1F
  Bug exposure: 203520, 211531, 224914, 229418, 231815, 233922, 236812, 246153

Switch: R4 (2cc2.6012.dc19)
  EOS version: 4.18.6M
  Bug exposure: None

Switch: R5 (2cc2.60cb.2194)
  EOS version: 4.20.1F
  Bug exposure: 203520, 211531, 224914, 229418, 231815, 233922, 236812, 246153

Switch: cvx (2cc2.605c.a35e)
  EOS version: 4.20.5.2F
  Bug exposure: None

cvx#

CVXはAlertBaseよりBug情報を知り、接続している各デバイスに対してshowコマンドを実施し、調査します。

cvx#show service cli-relay summary
  Apps: 1
  Commands: 127
  Results (all): 127
  Results (valid): 106
  Results (exc): 21

127個のコマンドを実施し、21個が合致した為にインパクトがある事がわかります。

cvx#show service cli-relay command

Switch: 2c:c2:60:12:dc:19
  Command BugAlert/1
  Command: show version
  Revision: 1
  Expression: json['version']
  Result: 4.18.6M
  Command BugAlert/2
  Command: show inventory
  Revision: 1
  Expression: findAll( 'modelName', json )
  Result: []
  Command BugAlert/3
  Command: show inventory
  Revision: 1
  Expression: findAll( 'name', json )
  Result: ['vEOS']

--snip--

 Command BugAlert/70
  Command: show ip pim interface
  Revision: 1
  Expression: json[ 'interfaces'] != {}
  Result:
  Command BugAlert/74
  Command: show running-config section bgp
  Revision: 1
  Expression: findAll( r'maximum-paths', text ) != []
  Result: True

まとめ

CVXにはVXLANのコントローラーやOpenStack/NSXコントローラーとの連携など数多くの機能が存在します。

BugAlertは現在運用しているネットワークが健全な状態であるかを調査する事が可能です。

最後にデモで利用した影響のあったソフトウェア(R1/R3/R5)を全て最新のバージョンにアップデートした状態のアウトプットも表示し、現在のネットワークの状態が健全である事を表示します。

cvx#show service bug-alert summary
  Bug Alert service: Enabled
  Alert Base release: 28c2491c-eac7-4c5d-8b1e-7ac717dc985d, released 2018-05-16
  Switches monitored: 6
  Total bugs in database: 541
  Total known bugs impact: 0
  Switches with known bugs impact: 0

cvx#show service bug-alert report
  Bugs report
  ===========
  Switch report
  =============
  Switch: R1 (2cc2.607a.795c)
  EOS version: 4.20.5.2F
  Bug exposure: None

Switch: R2 (2cc2.605a.ab7e)
  EOS version: 4.15.10M
  Bug exposure: None

Switch: R3 (2cc2.6072.d71e)
  EOS version: 4.20.5.2F
  Bug exposure: None

Switch: R4 (2cc2.6012.dc19)
  EOS version: 4.18.6M
  Bug exposure: None

Switch: R5 (2cc2.60cb.2194)
  EOS version: 4.20.5.2F
  Bug exposure: None

Switch: cvx (2cc2.605c.a35e)
  EOS version: 4.20.5.2F
  Bug exposure: None

参考URL

Bug Alerts

https://eos.arista.com/eos-4-17-0f/bug-alerts/

Automating CVX BugAlert Database Updates

https://eos.arista.com/automating-cvx-bugalert-database-updates/

CloudVision eXchange (CVX)

https://www.arista.com/en/cg-cv/cv-cloudvision-exchange-cvx

 

 

 

Follow

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

Join other followers: