RENAT - NW検証自動化
グエン ホウ バツ
NTTコミュニケーションズ(株)
NTT TECH CONFERENCE #3 2018.08.31 2
DISCLAIMER
‣ 本資料に記載されている会社名、製品名などは、一般に各社の登録商標または商標、
商品名です。

‣ 記載されている内容について必ずご自身の責任と判断によって行ってください。

‣ 記載されている内容を使用したことによって生じたすべての障害・損害・不具合等
に関しては、 弊社と弊社の関係者および私の所属するいかなる団体・組織とも、
一切の責任を負いません。
NTT TECH CONFERENCE #3 2018.08.31 3
自己紹介
‣ 名前:グエン ホウ バツ
‣ 2005年 NTTコミュニケーションズに入社
‣ NW運用、NWサービス開発、システム開発   
自分
・NW統合運⽤ソリューション
・帯域制御システム
SO
発表のアジェンダ
NTT TECH CONFERENCE #3 2018.08.31 4
今日のテーマ
‣ 我々の取り組みの紹介
‣ デモ
‣ フレームワークの特徴
‣ 結論・ディスカーション
NTT TECH CONFERENCE #3 2018.08.31 5
「検証自動化」なぜ?
‣ 検証期間の短縮
‣ 検証品質担保
‣ リソースの有効活用
‣ 維持・メンテからリソースシフト
‣ 効率的に新規サービス開発の実現
NTT TECH CONFERENCE #3 2018.08.31 6
ネットワーク検証自動化の課題
②ベンダーロックインによるカスタマイズできない
③検証の過程をend2endをサポートするPFはない
④NWオペレータのプログラミング・スキルが低い
①レガシー設備がまだ多く使われている
NTT TECH CONFERENCE #3 2018.08.31 7
ROBOT FRAMEWORK
‣ 2005年にNOKIA社が開発
‣ 2008年にApacheライセンスで公開
‣ 活発なコミュニティ活動
‣ SW開発・テストでよく使われるFW
‣ 高い拡張性
‣ Python・Javaサポート
‣ 簡単にモジュール追加可能
RENAT
低コストで実用性高いNW検証自動化の実現
自分たちで開発する
NTT TECH CONFERENCE #3 2018.08.31 8
RENAT
NTT TECH CONFERENCE #3 2018.08.31 9
RENATにより検証フロー
DEMO
10
NTT TECH CONFERENCE #3 2018.08.31 11
BGPベスト選択基準
1. Protocol Preference(= Administrative Distance) 比較 | (強) Connected > Static > OSPF Int. > Aggregate > OSPF Ext. > BGP (弱)
2. Local Preference 比較 | 大きいほど強い
3. AS-PATH length 比較 | 短いほど強い
4. Origin Code 比較 | (強) IGP > EGP > Incomplete (弱)
5. always-compare-med 無し = 同一 AS からの経路のみ MED 比較 | 小さいほど強い (JunOS の BGP 経路では Metric と表記されている)
always-compare-med 有り = 無条件で MED 比較 | 小さいほど強い (JunOS の BGP 経路では Metric と表記されている)
6. Internal 経路優先 | Static, Direct, Local の経路を優先
7. EBGP 優先 | IBGP ピアからの経路より EBGP ピアからの経路の方が強い
8. IGP Cost 比較 (Protocol Nexthop への IGP Cost を比較) | 小さいほど強い (JunOS の BGP 経路では Metric2 と表記されている)
9. Active 経路優先 (EBGP からの経路のみ) | 古くから持っている経路ほど強い
10. Router ID 比較 | 若いものほど強い
11. Cluster List length 比較 | 短いほど強い
12. Peer Address 比較 | 小さいほど強い
NTT TECH CONFERENCE #3 2018.08.31 12
デモ:BGP BEST PATH 選択の検証項目
1. 機器準備、配線
2. DUTへ既存のconfig※をロード
3. テスターに既存のconfig※をロード、環境へ合わせる
4. 状態確認
5. ターゲットIFのsubIF .2をフラップする
6. route情報を習得
7. best path選択結果をまとめる
検証手順
単体検証の例:BGP BestPath評価
Ixia Network
ge-3/0/2 card4/slot7
DUT
※既存のconfigにおいてIPを変更する必要ないが、物理ポートの変更はよくある
検証手順
01.	物理配線	
				OpticalSwitch.Load	From	File	
02.	ルータへconfigをロード	
				Router.Switch																				target	
				Router.Load	Config													 set													target.conf					vars=INTERFACE=${LOCAL['interface']}	
03.	テスターへconfigをロード	
				Tester.Switch																				tester	
				Tester.Load	Config														 apply=${FALSE}		 	 wait_time=1m	
04.	状態を確認	
				${num}=																														Router.Number	Of	BGP	Neighbor	
				Should	Be	Equal	As	Numbers						${num}										10	
				${num}=																														Router.Number	Of	OSPF	Neighbor	
				Should	Be	Equal	As	Numbers							${num}										2	
05.	ターゲットIFのsubIF	.2をフラップする	
				Router.Flap	Interface												${LOCAL['interface']}.2	 1s	
				Sleep																												45s	
06.	route情報取得(1/8	と1::/16)	
				${show4}=																								Router.Cmd						show	route	1/8	detail	
				${show6}=																								Router.Cmd						show	route	1::/16	detail	
				Set	Multi	Item	Variable														${show4}							${show6}	
07.	結果まとめ	
				Create	Best	Path	Select	Data					${show4}								best4.xlsx	
				Create	Best	Path	Select	Data					${show6}								best6.xlsx	
単体検証の例:BGP BestPath評価
Ixia Network
ge-3/0/2 card4/slot7
DUT
13
NTT TECH CONFERENCE #3 2018.08.31 14
手順からシナリオ化
01.	物理配線	
				OpticalSwitch.Load	From	File	
02.	ルータへconfigをロード	
				Router.Switch																				target	
				Router.Load	Config															set													target.conf					vars=INTERFACE=${LOCAL['interface']}	
03.	テスターへconfigをロード	
				Tester.Switch																				tester	
				Tester.Load	Config															apply=${FALSE}		wait_time=1m	
04.	状態を確認	
				${num}=																										Router.Number	Of	BGP	Neighbor	
				Should	Be	Equal	As	Numbers							${num}										10	
				${num}=																										Router.Number	Of	OSPF	Neighbor	
				Should	Be	Equal	As	Numbers							${num}										2	
05.	ターゲットIFのsubIF	.2をフラップする	
				Router.Flap	Interface												${LOCAL['interface']}.2				1s	
				Sleep																												45s	
06.	route情報取得(1/8	と1::/16)	
				${show4}=																								Router.Cmd						show	route	1/8	detail	
				${show6}=																								Router.Cmd						show	route	1::/16	detail	
				Set	Multi	Item	Variable										${show4}							${show6}	
07.	結果まとめ	
				Create	Best	Path	Select	Data					${show4}								best4.xlsx	
				Create	Best	Path	Select	Data					${show6}								best6.xlsx	
単体検証の例:BGP BestPath評価
Ixia Network
ge-3/0/2 card4/slot7
DUT
NTT TECH CONFERENCE #3 2018.08.31 15
手順からシナリオ化
01.	物理配線	
				OpticalSwitch.Load	From	File	
02.	ルータへconfigをロード	
				Router.Switch																				target	
				Router.Load	Config															set													target.conf					vars=INTERFACE=${LOCAL['interface']}	
03.	テスターへconfigをロード	
				Tester.Switch																				tester	
				Tester.Load	Config															apply=${FALSE}		wait_time=1m	
04.	状態を確認	
				${num}=																										Router.Number	Of	BGP	Neighbor	
				Should	Be	Equal	As	Numbers							${num}										10	
				${num}=																										Router.Number	Of	OSPF	Neighbor	
				Should	Be	Equal	As	Numbers							${num}										2	
05.	ターゲットIFのsubIF	.2をフラップする	
				Router.Flap	Interface												${LOCAL['interface']}.2				1s	
				Sleep																												45s	
06.	route情報取得(1/8	と1::/16)	
				${show4}=																								Router.Cmd						show	route	1/8	detail	
				${show6}=																								Router.Cmd						show	route	1::/16	detail	
				Set	Multi	Item	Variable										${show4}							${show6}	
07.	結果まとめ	
				Create	Best	Path	Select	Data					${show4}								best4.xlsx	
				Create	Best	Path	Select	Data					${show6}								best6.xlsx	
単体検証の例:BGP BestPath評価
Ixia Network
ge-3/0/2 card4/slot7
DUT
複雑なキーワード
nativeコマンド
ベンダー非依存キワード
キーワード
NTT TECH CONFERENCE #3 2018.08.31 16
デモのパラメータ
ルータ: mx240-31-22 xe-1/0/0
テスター: ixnet01_8009 (app server)

chassis: ixia-xgs12-sd (10.128.4.40)
card 12 / port 5
設定ファイル(既存):
  xconnect.conn (L1接続)
  bgp.ixncfg (Ixia設定、トラヒック)
  target.conf(ルータ設定)
NTT TECH CONFERENCE #3 2018.08.31 17
結果(1)
IPV4 BEST PATH SELECTION 結果と原因
NTT TECH CONFERENCE #3 2018.08.31 18
結果(2)
IPV6 BEST PATH SELECTION 結果と原因
NTT TECH CONFERENCE #3 2018.08.31 19
結果(3) 装置ログ
実施ログ・レポート
装置ごとの詳細ログ
ステップごとの結果
NTT TECH CONFERENCE #3 2018.08.31 20
RENATのアーキテクチャー
COMMON
VCHANNEL
ROUTER
TESTER
LOGGER
WEBAPP
JUNIPER
CISCO
GR
SAMURAI
ARBOR
IX
NETWORK
IX LOAD
RENAT
RENATの特徴
RENAT モジュール構成
マインモジュール
拡張MOD
‣ 可読性の高いシナリオーによりNW検証の自動化可能
‣ データ・ロジックが分離され、簡単に管理
‣ NW検証のフローを忠実に再現可能
‣ プラグインで簡単に新プラットホームの追加
‣ ルータ・スイッチ・テスターを簡単に操作可能
OPTIC
SWITCH
CALIENT
BREAKING
POINT
NTT TECH CONFERENCE #3 2018.08.31 21
色々レベルでプログラミング可能
#	command	1	
show	version	|	no-more	
#	command	2	
show	system	user	
show	interface	xe-0/0/0
#	sample	commands	with	jinja2	template	
show	interface	{{	LOCAL['extra']['line1']	}}	
show	interface	{{	LOCAL['extra']['line2']	}}	
{%	for	i	in	range(2)	%}	
show	interface	et-0/0/{{	i	}}	
{%	endfor	%}
Lab	Setup	
				[Documentation]									initial	setup	for	all	test	cases	
				Create	Directory								tmp	
				Change	Mod														tmp																	0775	
				Create	Directory								${WORKING_FOLDER}	
				Change	Mod														${RESULT_FOLDER}				0755	
				Set	Library	Search	Order				Common
① コマンドリスト(JINJA2 TEMPLATE)
② ROBOT キーワドの組みあわせ・拡張
③ PYTHON LIBRARY : 高度なキワードの実装
Number	Of	OSPF	Neighbor	
Number	Of	BGP	Neighbor	
Create	Best	Path	Select	Data
NTT TECH CONFERENCE #3 2018.08.31 22
プログラミング言語の複雑を隠す
defを追加するだけで、新しいキワードを作れる
def	get_version(self):	
				"""	return	router	version	information	
				"""	
				result	=	self._vchannel.cmd('show	version')	
				return	result
ファイル名を用い簡易な継承を実現
cisco.py
cisco_asr.py
②get_version()
→
①get_user()
③get_version()→
juniper.py ④get_version()→
呼び
キーワード
デバイス
タイプ
実行された
関数
Get Version juniper ④
Get Version cisco_asr ③
Get Version cisco ②
Get User cisco_asr ①
Get User cisco ①
ソースコード
NTT TECH CONFERENCE #3 2018.08.31 23
データとロジック分離
ケースのlocal.yamlに書くだけで、シナリオで利用可能
<省略>	
												-			chassis:								10.128.4.40	
																card:											12	
																port:											2	
interface:	xe-1/2/0	
#	other	default	information	
<省略>
ログイン、ログ集計などは気にせず、検証内容だけに専念
node:	
				vmx11:	
								device:	vmx11	
								snmp-polling:	yes	
				vmx12:	
								device:	vmx12	
								snmp-polling:	yes	
								tag:	
				apollo:	
								device:	apollo	
								snmp-polling:	yes	
								tag:
device.yaml: 物理装置のIP、機種等
auth.yaml: 認証情報など
04.	インタフェースフラップ	
				Router.Switch																			vmx12	
				Router.Flap	Interface											ge-0/0/0
local.yaml(テスケースごと)
シナリオの例
NTT TECH CONFERENCE #3 2018.08.31 24
忠実に検証のログを取得可能
画面が動的変わる(TOP等) SSH/TELNETの出力のみログを取るとき
RENATでログをとるとき
NTT TECH CONFERENCE #3 2018.08.31 25
総合的にNW検証に必要な機種・プロセスをサポート
物理配線
ルータ・スイッチの操作
サーバからコマンド実施
WEB・WEBアプライアンスの操作
(クリック、画面キャプチャなど)
ログ集計・レポート
テスターの操作
(トラヒック印加、変更など)
RENATシナリオ
トラヒックジェネレート
NTT TECH CONFERENCE #3 2018.08.31 26
RENATの実績・期待効果
‣ NWの検証項目が90%以上自動化可能
‣ 検証のやり直し、修正の手間を大幅削減
‣ RENATより数百~数千時間の稼働削減効果



  
‣ NW機器の稼働率の向上(夜間・土日)
‣ 検証を簡単に他のシステムの連携(Slackなど)
平均的 70%検証稼働削減を見込み
LAGのバランス確認試験 → 10人日分削減 / 1回
QoS確認試験 → 18人日分削減 / 1回
NTT TECH CONFERENCE #3 2018.08.31 27
ユーザからのフィードバック
NTT TECH CONFERENCE #3 2018.08.31 28
RENATをぜひ試して、一緒に作りませんか

https://github.com/bachng2017/RENAT.git
THANK YOU
29

RENAT - ネットワーク検証自動化

  • 1.
  • 2.
    NTT TECH CONFERENCE#3 2018.08.31 2 DISCLAIMER ‣ 本資料に記載されている会社名、製品名などは、一般に各社の登録商標または商標、 商品名です。 ‣ 記載されている内容について必ずご自身の責任と判断によって行ってください。 ‣ 記載されている内容を使用したことによって生じたすべての障害・損害・不具合等 に関しては、 弊社と弊社の関係者および私の所属するいかなる団体・組織とも、 一切の責任を負いません。
  • 3.
    NTT TECH CONFERENCE#3 2018.08.31 3 自己紹介 ‣ 名前:グエン ホウ バツ ‣ 2005年 NTTコミュニケーションズに入社 ‣ NW運用、NWサービス開発、システム開発    自分 ・NW統合運⽤ソリューション ・帯域制御システム
  • 4.
    SO 発表のアジェンダ NTT TECH CONFERENCE#3 2018.08.31 4 今日のテーマ ‣ 我々の取り組みの紹介 ‣ デモ ‣ フレームワークの特徴 ‣ 結論・ディスカーション
  • 5.
    NTT TECH CONFERENCE#3 2018.08.31 5 「検証自動化」なぜ? ‣ 検証期間の短縮 ‣ 検証品質担保 ‣ リソースの有効活用 ‣ 維持・メンテからリソースシフト ‣ 効率的に新規サービス開発の実現
  • 6.
    NTT TECH CONFERENCE#3 2018.08.31 6 ネットワーク検証自動化の課題 ②ベンダーロックインによるカスタマイズできない ③検証の過程をend2endをサポートするPFはない ④NWオペレータのプログラミング・スキルが低い ①レガシー設備がまだ多く使われている
  • 7.
    NTT TECH CONFERENCE#3 2018.08.31 7 ROBOT FRAMEWORK ‣ 2005年にNOKIA社が開発 ‣ 2008年にApacheライセンスで公開 ‣ 活発なコミュニティ活動 ‣ SW開発・テストでよく使われるFW ‣ 高い拡張性 ‣ Python・Javaサポート ‣ 簡単にモジュール追加可能 RENAT 低コストで実用性高いNW検証自動化の実現 自分たちで開発する
  • 8.
    NTT TECH CONFERENCE#3 2018.08.31 8 RENAT
  • 9.
    NTT TECH CONFERENCE#3 2018.08.31 9 RENATにより検証フロー
  • 10.
  • 11.
    NTT TECH CONFERENCE#3 2018.08.31 11 BGPベスト選択基準 1. Protocol Preference(= Administrative Distance) 比較 | (強) Connected > Static > OSPF Int. > Aggregate > OSPF Ext. > BGP (弱) 2. Local Preference 比較 | 大きいほど強い 3. AS-PATH length 比較 | 短いほど強い 4. Origin Code 比較 | (強) IGP > EGP > Incomplete (弱) 5. always-compare-med 無し = 同一 AS からの経路のみ MED 比較 | 小さいほど強い (JunOS の BGP 経路では Metric と表記されている) always-compare-med 有り = 無条件で MED 比較 | 小さいほど強い (JunOS の BGP 経路では Metric と表記されている) 6. Internal 経路優先 | Static, Direct, Local の経路を優先 7. EBGP 優先 | IBGP ピアからの経路より EBGP ピアからの経路の方が強い 8. IGP Cost 比較 (Protocol Nexthop への IGP Cost を比較) | 小さいほど強い (JunOS の BGP 経路では Metric2 と表記されている) 9. Active 経路優先 (EBGP からの経路のみ) | 古くから持っている経路ほど強い 10. Router ID 比較 | 若いものほど強い 11. Cluster List length 比較 | 短いほど強い 12. Peer Address 比較 | 小さいほど強い
  • 12.
    NTT TECH CONFERENCE#3 2018.08.31 12 デモ:BGP BEST PATH 選択の検証項目 1. 機器準備、配線 2. DUTへ既存のconfig※をロード 3. テスターに既存のconfig※をロード、環境へ合わせる 4. 状態確認 5. ターゲットIFのsubIF .2をフラップする 6. route情報を習得 7. best path選択結果をまとめる 検証手順 単体検証の例:BGP BestPath評価 Ixia Network ge-3/0/2 card4/slot7 DUT ※既存のconfigにおいてIPを変更する必要ないが、物理ポートの変更はよくある
  • 13.
    検証手順 01. 物理配線 OpticalSwitch.Load From File 02. ルータへconfigをロード Router.Switch target Router.Load Config set target.conf vars=INTERFACE=${LOCAL['interface']} 03. テスターへconfigをロード Tester.Switch tester Tester.Load Config apply=${FALSE} wait_time=1m 04. 状態を確認 ${num}= Router.Number Of BGP Neighbor Should Be Equal As Numbers ${num} 10 ${num}= Router.Number Of OSPF Neighbor Should Be Equal As Numbers ${num} 2 05. ターゲットIFのsubIF .2をフラップする Router.Flap Interface ${LOCAL['interface']}.2 1s Sleep 45s 06. route情報取得(1/8 と1::/16) ${show4}= Router.Cmd show route 1/8 detail ${show6}= Router.Cmd show route 1::/16 detail Set Multi Item Variable ${show4} ${show6} 07. 結果まとめ Create Best Path Select Data ${show4} best4.xlsx Create Best Path Select Data ${show6} best6.xlsx 単体検証の例:BGP BestPath評価 Ixia Network ge-3/0/2 card4/slot7 DUT 13
  • 14.
    NTT TECH CONFERENCE#3 2018.08.31 14 手順からシナリオ化 01. 物理配線 OpticalSwitch.Load From File 02. ルータへconfigをロード Router.Switch target Router.Load Config set target.conf vars=INTERFACE=${LOCAL['interface']} 03. テスターへconfigをロード Tester.Switch tester Tester.Load Config apply=${FALSE} wait_time=1m 04. 状態を確認 ${num}= Router.Number Of BGP Neighbor Should Be Equal As Numbers ${num} 10 ${num}= Router.Number Of OSPF Neighbor Should Be Equal As Numbers ${num} 2 05. ターゲットIFのsubIF .2をフラップする Router.Flap Interface ${LOCAL['interface']}.2 1s Sleep 45s 06. route情報取得(1/8 と1::/16) ${show4}= Router.Cmd show route 1/8 detail ${show6}= Router.Cmd show route 1::/16 detail Set Multi Item Variable ${show4} ${show6} 07. 結果まとめ Create Best Path Select Data ${show4} best4.xlsx Create Best Path Select Data ${show6} best6.xlsx 単体検証の例:BGP BestPath評価 Ixia Network ge-3/0/2 card4/slot7 DUT
  • 15.
    NTT TECH CONFERENCE#3 2018.08.31 15 手順からシナリオ化 01. 物理配線 OpticalSwitch.Load From File 02. ルータへconfigをロード Router.Switch target Router.Load Config set target.conf vars=INTERFACE=${LOCAL['interface']} 03. テスターへconfigをロード Tester.Switch tester Tester.Load Config apply=${FALSE} wait_time=1m 04. 状態を確認 ${num}= Router.Number Of BGP Neighbor Should Be Equal As Numbers ${num} 10 ${num}= Router.Number Of OSPF Neighbor Should Be Equal As Numbers ${num} 2 05. ターゲットIFのsubIF .2をフラップする Router.Flap Interface ${LOCAL['interface']}.2 1s Sleep 45s 06. route情報取得(1/8 と1::/16) ${show4}= Router.Cmd show route 1/8 detail ${show6}= Router.Cmd show route 1::/16 detail Set Multi Item Variable ${show4} ${show6} 07. 結果まとめ Create Best Path Select Data ${show4} best4.xlsx Create Best Path Select Data ${show6} best6.xlsx 単体検証の例:BGP BestPath評価 Ixia Network ge-3/0/2 card4/slot7 DUT 複雑なキーワード nativeコマンド ベンダー非依存キワード キーワード
  • 16.
    NTT TECH CONFERENCE#3 2018.08.31 16 デモのパラメータ ルータ: mx240-31-22 xe-1/0/0 テスター: ixnet01_8009 (app server)
 chassis: ixia-xgs12-sd (10.128.4.40) card 12 / port 5 設定ファイル(既存):   xconnect.conn (L1接続)   bgp.ixncfg (Ixia設定、トラヒック)   target.conf(ルータ設定)
  • 17.
    NTT TECH CONFERENCE#3 2018.08.31 17 結果(1) IPV4 BEST PATH SELECTION 結果と原因
  • 18.
    NTT TECH CONFERENCE#3 2018.08.31 18 結果(2) IPV6 BEST PATH SELECTION 結果と原因
  • 19.
    NTT TECH CONFERENCE#3 2018.08.31 19 結果(3) 装置ログ 実施ログ・レポート 装置ごとの詳細ログ ステップごとの結果
  • 20.
    NTT TECH CONFERENCE#3 2018.08.31 20 RENATのアーキテクチャー COMMON VCHANNEL ROUTER TESTER LOGGER WEBAPP JUNIPER CISCO GR SAMURAI ARBOR IX NETWORK IX LOAD RENAT RENATの特徴 RENAT モジュール構成 マインモジュール 拡張MOD ‣ 可読性の高いシナリオーによりNW検証の自動化可能 ‣ データ・ロジックが分離され、簡単に管理 ‣ NW検証のフローを忠実に再現可能 ‣ プラグインで簡単に新プラットホームの追加 ‣ ルータ・スイッチ・テスターを簡単に操作可能 OPTIC SWITCH CALIENT BREAKING POINT
  • 21.
    NTT TECH CONFERENCE#3 2018.08.31 21 色々レベルでプログラミング可能 # command 1 show version | no-more # command 2 show system user show interface xe-0/0/0 # sample commands with jinja2 template show interface {{ LOCAL['extra']['line1'] }} show interface {{ LOCAL['extra']['line2'] }} {% for i in range(2) %} show interface et-0/0/{{ i }} {% endfor %} Lab Setup [Documentation] initial setup for all test cases Create Directory tmp Change Mod tmp 0775 Create Directory ${WORKING_FOLDER} Change Mod ${RESULT_FOLDER} 0755 Set Library Search Order Common ① コマンドリスト(JINJA2 TEMPLATE) ② ROBOT キーワドの組みあわせ・拡張 ③ PYTHON LIBRARY : 高度なキワードの実装 Number Of OSPF Neighbor Number Of BGP Neighbor Create Best Path Select Data
  • 22.
    NTT TECH CONFERENCE#3 2018.08.31 22 プログラミング言語の複雑を隠す defを追加するだけで、新しいキワードを作れる def get_version(self): """ return router version information """ result = self._vchannel.cmd('show version') return result ファイル名を用い簡易な継承を実現 cisco.py cisco_asr.py ②get_version() → ①get_user() ③get_version()→ juniper.py ④get_version()→ 呼び キーワード デバイス タイプ 実行された 関数 Get Version juniper ④ Get Version cisco_asr ③ Get Version cisco ② Get User cisco_asr ① Get User cisco ① ソースコード
  • 23.
    NTT TECH CONFERENCE#3 2018.08.31 23 データとロジック分離 ケースのlocal.yamlに書くだけで、シナリオで利用可能 <省略> - chassis: 10.128.4.40 card: 12 port: 2 interface: xe-1/2/0 # other default information <省略> ログイン、ログ集計などは気にせず、検証内容だけに専念 node: vmx11: device: vmx11 snmp-polling: yes vmx12: device: vmx12 snmp-polling: yes tag: apollo: device: apollo snmp-polling: yes tag: device.yaml: 物理装置のIP、機種等 auth.yaml: 認証情報など 04. インタフェースフラップ Router.Switch vmx12 Router.Flap Interface ge-0/0/0 local.yaml(テスケースごと) シナリオの例
  • 24.
    NTT TECH CONFERENCE#3 2018.08.31 24 忠実に検証のログを取得可能 画面が動的変わる(TOP等) SSH/TELNETの出力のみログを取るとき RENATでログをとるとき
  • 25.
    NTT TECH CONFERENCE#3 2018.08.31 25 総合的にNW検証に必要な機種・プロセスをサポート 物理配線 ルータ・スイッチの操作 サーバからコマンド実施 WEB・WEBアプライアンスの操作 (クリック、画面キャプチャなど) ログ集計・レポート テスターの操作 (トラヒック印加、変更など) RENATシナリオ トラヒックジェネレート
  • 26.
    NTT TECH CONFERENCE#3 2018.08.31 26 RENATの実績・期待効果 ‣ NWの検証項目が90%以上自動化可能 ‣ 検証のやり直し、修正の手間を大幅削減 ‣ RENATより数百~数千時間の稼働削減効果
 
    ‣ NW機器の稼働率の向上(夜間・土日) ‣ 検証を簡単に他のシステムの連携(Slackなど) 平均的 70%検証稼働削減を見込み LAGのバランス確認試験 → 10人日分削減 / 1回 QoS確認試験 → 18人日分削減 / 1回
  • 27.
    NTT TECH CONFERENCE#3 2018.08.31 27 ユーザからのフィードバック
  • 28.
    NTT TECH CONFERENCE#3 2018.08.31 28 RENATをぜひ試して、一緒に作りませんか
 https://github.com/bachng2017/RENAT.git
  • 29.