1
00:00:10,980 --> 00:00:13,500
こんにちは、INEへようこそ。

2
00:00:13,500 --> 00:00:16,350
今日のこのビデオでは、
TextFSMについて見ていきます。

3
00:00:16,350 --> 00:00:20,610
現在、TextFSMはデータを解析するための優れた
方法です。

4
00:00:20,610 --> 00:00:23,490
そして、私たちは正規表現を通じて
それを行ったことを知っています。

5
00:00:23,490 --> 00:00:26,430
ただし、TextFSMを使用すると、
データを解析できます。

6
00:00:26,430 --> 00:00:29,340
そして、TextFSMの作成の背後にある全体的なアイデア


7
00:00:29,340 --> 00:00:32,830

ネットワークとデバイスのデータを解析することでした。

8
00:00:32,830 --> 00:00:35,280
つまり、
TextFSMの存在全体

9
00:00:35,280 --> 00:00:36,900
ネットワークデバイス用でした。

10
00:00:36,900 --> 00:00:40,290
また、データの解析が容易になるため、
簡単になります。

11
00:00:40,290 --> 00:00:42,840
正規表現を介して
本当に複雑になる可能性があります

12
00:00:42,840 --> 00:00:47,375
複雑な環境で
データを解析する必要がある場合。

13
00:00:47,375 --> 00:00:48,750
たとえば、


14
00:00:48,750 --> 00:00:51,990
いくつかのルーティングテーブル、または多分ショーのためにデータを解析する

15
00:00:51,990 --> 00:00:55,500
CDPネイバー、または
おそらくショーBGP。

16
00:00:55,500 --> 00:00:57,900
TextFSMテンプレートを使用すると、
実際に

17
00:00:57,900 --> 00:01:00,370
はるかに簡単な方法でデータを解析します。

18
00:01:00,370 --> 00:01:03,750
それでは、始めて、
TextFSMがどのように機能するかを見てみましょう。

19
00:01:03,750 --> 00:01:09,110
そのための
ユースケースは何ですか。

20
00:01:09,110 --> 00:01:14,860
それでは、TextFSMの例とユースケースを見てみましょう。


21
00:01:14,860 --> 00:01:19,870
だから私がここでやろうとしていることは私が解析することです

22
00:01:19,870 --> 00:01:22,340
traceroute出力のデータ。

23
00:01:22,340 --> 00:01:24,460
それで、私が
tracerouteを持っているとしましょう。

24
00:01:24,460 --> 00:01:28,510

ホップカウント、シーケンスについて知りたい

25
00:01:28,510 --> 00:01:30,940
番号とネクストホップ。

26
00:01:30,940 --> 00:01:37,600
たとえば、
たとえば、ルーターに移動した場合を考えてみましょう。

27
00:01:37,600 --> 00:01:41,740

2.2.2.2.2へのtracerouteを実行し、

28
00:01:41,740 --> 00:01:44,650

データが表示される形式は何ですか？

29
00:01:44,650 --> 00:01:47,500
最初のホップがわかります。
これはシーケンス番号です。

30
00:01:47,500 --> 00:01:51,230
最初のホップは
いくつかのIPアドレスです。

31
00:01:51,230 --> 00:01:53,830
だから基本的には
見せてくれます

32
00:01:53,830 --> 00:01:57,260
シーケンス番号とネクストホップの
IPアドレス。

33
00:01:57,260 --> 00:01:59,240
ルーターの
リストが表示されます

34
00:01:59,240 --> 00:02:01,720
私は実際に経験しています
そしてそれはまた私に与えます

35
00:02:01,720 --> 00:02:04,450

msecのような他の情報、

36
00:02:04,450 --> 00:02:07,120
そして2つ、そして
ミリ秒、そして星。

37
00:02:07,120 --> 00:02:08,900

その情報は本当に必要ありません。

38
00:02:08,900 --> 00:02:11,290

データを解析したいのですが、私だけだとしましょう

39
00:02:11,290 --> 00:02:14,590
シーケンス番号とネクストホップIPアドレスを知りたい
。

40
00:02:14,590 --> 00:02:15,970
私はそれを知りたいだけです。

41
00:02:15,970 --> 00:02:22,220
TextFSMを使用してデータを解析し、
構造化された出力を取得できます

42
00:02:22,220 --> 00:02:24,880

これらの出力を印刷できるようにします

43
00:02:24,880 --> 00:02:27,320

ネクストホップアドレスを見てください。

44
00:02:27,320 --> 00:02:29,540
それでは、それを試してみましょう。

45
00:02:29,540 --> 00:02:32,920
したがって、
次の点に注意する必要があることが2つあります。

46
00:02:32,920 --> 00:02:34,520
TextFSMを実行しています。

47
00:02:34,520 --> 00:02:37,640
TextFSMは
テンプレートを使用していることを忘れないでください。

48
00:02:37,640 --> 00:02:39,670
したがって、
テンプレートファイルが1つあります。

49
00:02:39,670 --> 00:02:43,450
スクリプトで呼び出すことができます。

50
00:02:43,450 --> 00:02:47,020
したがって、2つの
ファイルを作成する必要があります。1つはスクリプトです。

51
00:02:47,020 --> 00:02:49,390
2番目は
テンプレートになります。

52
00:02:49,390 --> 00:02:52,600
テンプレートは、再利用できるように
保存するものです

53
00:02:52,600 --> 00:02:55,002
いつでもそのテンプレート。

54
00:02:55,002 --> 00:02:56,710
これが
実際に使用する利点です

55
00:02:56,710 --> 00:02:58,960
TextFSMまたは正規表現、
正規表現を使用するため、

56
00:02:58,960 --> 00:03:03,410
スクリプト内に正規表現の
パラメータを含めています

57
00:03:03,410 --> 00:03:05,890

それは1回しか使用できません。

58
00:03:05,890 --> 00:03:08,320
だから私と一緒に
テンプレートを作成すると、

59
00:03:08,320 --> 00:03:13,310
これらのテンプレートを再利用し続け、
好きなようにデータを解析します。

60
00:03:13,310 --> 00:03:15,590
それでは、それを試してみましょう。

61
00:03:15,590 --> 00:03:18,400
だから私がすることは
私はここに私のアトムを持っています、

62
00:03:18,400 --> 00:03:22,240

2つのファイルを作成します。1つは

63
00:03:22,240 --> 00:03:25,030
my
script.py拡張子になります

64
00:03:25,030 --> 00:03:26,860
1つは
私のテンプレートになります。

65
00:03:26,860 --> 00:03:31,340
そして、traceroute出力のデータを
解析します。

66
00:03:31,340 --> 00:03:34,823
それでは、
戻ってそれをお見せしましょう。

67
00:03:34,823 --> 00:03:36,490
だから最初に、
私がやろうとしていること

68
00:03:36,490 --> 00:03:41,020

最初にスクリプトを作成します。

69
00:03:41,020 --> 00:03:44,720
それでは、ファイルを作成しましょう。
おそらくtracerouteファイルです。

70
00:03:44,720 --> 00:03:48,120
tracerouteとしましょう、
名前を付けましょう

71
00:03:48,120 --> 00:03:56,400
tracerouteが等しいので、これは
この中にいくつかのデータを入れます。

72
00:03:56,400 --> 00:03:59,970
明らかに、この情報を取得したい場合があります


73
00:03:59,970 --> 00:04:01,860
ルーターに
コマンドを送信する

74
00:04:01,860 --> 00:04:03,750
その情報を保存します。

75
00:04:03,750 --> 00:04:05,550
あなたもそれを行うことができます。

76
00:04:05,550 --> 00:04:08,290
ただし、これは非常に簡単な例です。


77
00:04:08,290 --> 00:04:11,040
だから私は実際にはルーターに接続するつもりはありません


78
00:04:11,040 --> 00:04:14,970

tracerouteというコマンドを送信します。

79
00:04:14,970 --> 00:04:18,120
次に、その出力をキャプチャして
データを解析します。

80
00:04:18,120 --> 00:04:19,089
私はそれをすることができました。

81
00:04:19,089 --> 00:04:21,029
しかし、この最初の
例では、

82
00:04:21,029 --> 00:04:23,790
非常に単純な
単純な例を実行するには

83
00:04:23,790 --> 00:04:26,370
スクリプトにいくつかのデータがあります。

84
00:04:26,370 --> 00:04:28,410
だから私は変数を作成します
私が置く場所

85
00:04:28,410 --> 00:04:30,220
この変数内のいくつかのデータ。

86
00:04:30,220 --> 00:04:32,320
それでは、いくつかのデータを入れましょう。

87
00:04:32,320 --> 00:04:36,000

ここにこのデータがあると仮定して、

88
00:04:36,000 --> 00:04:38,200
このファイルを閉じます。

89
00:04:38,200 --> 00:04:41,550
だから今、私は実際に
先に進んでこのファイルを保存しました

90
00:04:41,550 --> 00:04:44,060
traceroute.pyとして。

91
00:04:47,850 --> 00:04:50,910
だから私はtraceroute.pyと呼ばれる
ファイルを持っています

92
00:04:50,910 --> 00:04:54,690

tracerouteという変数があり、いくつかのデータがあります

93
00:04:54,690 --> 00:04:55,620
その中。

94
00:04:55,620 --> 00:04:57,720
ここで、
データを解析したいと思います。

95
00:04:57,720 --> 00:05:01,000
TextFSMを使用して
このデータを解析したいと思います。

96
00:05:01,000 --> 00:05:03,360
だから私は
テンプレートを使いたいのですが

97
00:05:03,360 --> 00:05:04,710
他のすべての情報。

98
00:05:04,710 --> 00:05:07,950
IPアドレスとホップカウントだけが必要です。


99
00:05:07,950 --> 00:05:09,240
私はそれだけが欲しい。

100
00:05:09,240 --> 00:05:11,910
そして私はそれを
構造化された形式で欲しい

101
00:05:11,910 --> 00:05:14,100
はい、正規表現を使用して
これを行うことができます。

102
00:05:14,100 --> 00:05:17,310
ただし、
TextFSMテンプレートを使用して実行します。

103
00:05:17,310 --> 00:05:20,410

より簡単でスケーラブルです。

104
00:05:20,410 --> 00:05:22,240
それではやってみましょう。

105
00:05:22,240 --> 00:05:24,840
だから私はこの後に
何をするつもりですか

106
00:05:24,840 --> 00:05:26,640

私が最初にやらなければならないことは

107
00:05:26,640 --> 00:05:29,070
TextFSMのモジュールをインポートします。

108
00:05:29,070 --> 00:05:35,070
これは、
コマンドimportTextFSMを使用して実行されます。

109
00:05:35,070 --> 00:05:38,490
そこで、TextFSMモジュールであるモジュールをインポートします。


110
00:05:38,490 --> 00:05:39,960
次のこと
これからやる

111
00:05:39,960 --> 00:05:46,260
テンプレートファイルの呼び出しです。
これを開いて解析する必要があります

112
00:05:46,260 --> 00:05:47,290
データ。

113
00:05:47,290 --> 00:05:49,590
したがって、データを解析するために、
これから行うこと

114
00:05:49,590 --> 00:05:55,970
開いた状態で言うと、
テンプレートファイルを呼び出します。

115
00:05:55,970 --> 00:05:59,450
ここで、
正しいフォルダにいることを確認してください

116
00:05:59,450 --> 00:06:04,163

テンプレートファイルを保存している場所。

117
00:06:04,163 --> 00:06:05,580

適切なフォルダにいない場合は、

118
00:06:05,580 --> 00:06:07,520
OSモジュールを
インポートすることもできます

119
00:06:07,520 --> 00:06:10,740
次に、ディレクトリの
パスを変更します。

120
00:06:10,740 --> 00:06:12,210
私は正しいフォルダにいます。

121
00:06:12,210 --> 00:06:14,430
したがって、問題にはならないはずです。

122
00:06:14,430 --> 00:06:17,940
だから私はオープンで言うだけです
そしてテンプレートファイルを与えます

123
00:06:17,940 --> 00:06:18,440
名前。

124
00:06:18,440 --> 00:06:22,880
テンプレートの
ファイル名が、たとえば、

125
00:06:22,880 --> 00:06:25,040
traceroute.template。

126
00:06:25,040 --> 00:06:29,540
これが私のファイル名です
これから作成します。

127
00:06:29,540 --> 00:06:32,340
現時点では、そのファイルを作成していません。


128
00:06:32,340 --> 00:06:36,180
ただし、作成する
任意の名前を付けているだけです。

129
00:06:36,180 --> 00:06:39,120
ですから、実際、
今すぐ作成してみましょう。

130
00:06:39,120 --> 00:06:40,560
新しいファイルを考えてみましょう。

131
00:06:40,560 --> 00:06:47,640
このファイルを
traceroute.templateとして保存しましょう。

132
00:06:47,640 --> 00:06:50,420
これが
私のテンプレートファイルになります

133
00:06:50,420 --> 00:06:51,170
私が作成していること。

134
00:06:51,170 --> 00:06:53,190
私が言ったように、あなたは2つのファイルが必要です。

135
00:06:53,190 --> 00:06:54,740
つまり、
スクリプトになります。

136
00:06:54,740 --> 00:06:56,240
1つは
テンプレートになります。

137
00:06:56,240 --> 00:06:58,680
スクリプトは
テンプレートを呼び出します。

138
00:06:58,680 --> 00:07:01,370
だから今、私は
traceroute.pyファイルを持っています

139
00:07:01,370 --> 00:07:04,790
これは私のスクリプトファイルです。
TextFSMをインポートしています。

140
00:07:04,790 --> 00:07:07,730
開いて、
このテンプレートファイルを開きます

141
00:07:07,730 --> 00:07:11,060
これを一時的に開きます
たとえば、temp。

142
00:07:11,060 --> 00:07:13,280
繰り返しますが、これは
名前を付けることができます。

143
00:07:13,280 --> 00:07:16,970
一時的な
名前または一時的な名前

144
00:07:16,970 --> 00:07:21,080
このファイルが開かれる
プレースホルダー。

145
00:07:21,080 --> 00:07:25,070
このファイルを開いたら、
ここに2つのコマンドが必要です。

146
00:07:25,070 --> 00:07:28,760
まずは、
TextFSMを使いたいです。

147
00:07:28,760 --> 00:07:30,710
だから私が
TextFSMを使うには

148
00:07:30,710 --> 00:07:34,940
FSMが変数を作成するとします。
繰り返しますが、これは任意の名前にすることができます。

149
00:07:34,940 --> 00:07:41,210
FSMはTextFSMと同じです。
これは私のモジュールです。

150
00:07:41,210 --> 00:07:47,060
したがって、このモジュールを使用してください
dot TextFSM、

151
00:07:47,060 --> 00:07:53,750

tempのデータを解析する前です。

152
00:07:53,750 --> 00:07:55,760
したがって、tempを使用してデータを解析します。

153
00:07:55,760 --> 00:07:56,720
内部温度とは何ですか？

154
00:07:56,720 --> 00:07:58,940
Tempは私の一時的な
プレースホルダーホルダーでした

155
00:07:58,940 --> 00:08:02,870
これが含まれています
それは何でも含まれています

156
00:08:02,870 --> 00:08:05,222
そのテンプレートファイル内。

157
00:08:05,222 --> 00:08:06,680
次のこと
これからやる

158
00:08:06,680 --> 00:08:08,480
と呼ばれる別の
変数を作成します

159
00:08:08,480 --> 00:08:14,450
結果として、
fsm.ParseText、

160
00:08:14,450 --> 00:08:16,820

解析したいテキストはどれですか？

161
00:08:16,820 --> 00:08:19,820
tracerouteと呼ばれるこの
変数のテキストを解析したいのですが、

162
00:08:19,820 --> 00:08:21,570
データが含まれています。

163
00:08:21,570 --> 00:08:26,030

traceroute、それだけです。

164
00:08:26,030 --> 00:08:27,190
それが私が必要なものすべてです。

165
00:08:27,190 --> 00:08:31,600
次に
行うことは、結果を印刷することです。

166
00:08:31,600 --> 00:08:34,150
これで、
基本的にデータが解析されます

167
00:08:34,150 --> 00:08:36,130

結果を印刷します。

168
00:08:36,130 --> 00:08:40,929
この結果は
リスト形式になります。

169
00:08:40,929 --> 00:08:44,020
明らかに、
リスト形式を出力するだけの場合

170
00:08:44,020 --> 00:08:50,350
この情報を
1つ提供してから0.12.1を入札しました。

171
00:08:50,350 --> 00:08:54,610
2番目のリストは
216.0.0.5になります。

172
00:08:54,610 --> 00:08:57,830

これが何なのか、これが何なのか、私にはよくわかりません。

173
00:08:57,830 --> 00:09:02,380
だからあなたができることはただ
あなたにもっと多くの情報を与えることです

174
00:09:02,380 --> 00:09:08,500
これらの値が何であるか、
印刷fsm.headerを実行できます。

175
00:09:08,500 --> 00:09:13,780
fsm.headerが行うことで、
実際のID値が出力されます

176
00:09:13,780 --> 00:09:17,140
これが
何を表しているのか、そしてこのIPが何を表しているのか

177
00:09:17,140 --> 00:09:19,930
アドレスは、
私が作成するものを表します

178
00:09:19,930 --> 00:09:21,890
テンプレートファイル内。

179
00:09:21,890 --> 00:09:24,250
ですから、
スクリプトに必要なのはこれだけです。

180
00:09:24,250 --> 00:09:29,000
これを保存して、
テンプレートファイルに移動しましょう。

181
00:09:29,000 --> 00:09:31,720
だから私のテンプレート
ファイルでは、私が必要とするすべて

182
00:09:31,720 --> 00:09:34,850

これらの値を作成する必要がありますか。

183
00:09:34,850 --> 00:09:39,640
だから私はこの番号に
名前を付ける必要があります

184
00:09:39,640 --> 00:09:43,360
この列に
名前を付ける必要があります。

185
00:09:43,360 --> 00:09:46,510
だから私がやろうとしているのは
名前を呼んで、

186
00:09:46,510 --> 00:09:50,480
これで、コマンド値を使用して
名前が定義されます。

187
00:09:50,480 --> 00:09:54,220
したがって、値は
変数の定義を定義します。

188
00:09:54,220 --> 00:09:56,410
では、
定義はいくつ必要ですか？

189
00:09:56,410 --> 00:09:57,920
スクリプトを見てください。

190
00:09:57,920 --> 00:10:00,460
キャプチャする必要があります、
解析する必要があります

191
00:10:00,460 --> 00:10:04,790
この情報、この番号、およびこのIPアドレスのみ。

192
00:10:04,790 --> 00:10:08,960
したがって、基本的に、私は
この情報のみが必要です。

193
00:10:08,960 --> 00:10:12,880
これは1つ、
IPアドレス、2つ、

194
00:10:12,880 --> 00:10:16,400
IPアドレス、3つのIPアドレス
、4つのIPアドレス。

195
00:10:16,400 --> 00:10:19,240
したがって、この列が必要であり、
2番目の列が必要です。

196
00:10:19,240 --> 00:10:22,390

キャプチャして解析するには、2つの列が必要です。

197
00:10:22,390 --> 00:10:27,220
したがって、2つの
変数を作成する必要があります。1つはシーケンス用です。

198
00:10:27,220 --> 00:10:29,570
番号、IPアドレス用に1つ。

199
00:10:29,570 --> 00:10:31,880
それでは、ここで
2つの変数を作成しましょう。

200
00:10:31,880 --> 00:10:34,840
ですから、これをシーケンスとして
名前を付けましょう。

201
00:10:34,840 --> 00:10:37,460
そして、
シーケンスをどのように一致させますか？

202
00:10:37,460 --> 00:10:40,840
そのため、シーケンスに一致させるために、
ある種の正規表現を使用する必要があります。

203
00:10:40,840 --> 00:10:43,400
これで、シーケンスは常に
数字になります。

204
00:10:43,400 --> 00:10:47,210
したがって、
シーケンスを数字を使用して照合します。

205
00:10:47,210 --> 00:10:51,460
したがって、バックスラッシュDプラス、
1桁以上

206
00:10:51,460 --> 00:10:53,270
私のシーケンスと一致します。

207
00:10:53,270 --> 00:10:55,100
次に、
もう1つの変数を作成します。

208
00:10:55,100 --> 00:10:58,240

たとえば、ネクストホップになります。

209
00:10:58,240 --> 00:11:00,640
そして、
ネクストホップとどのように一致しますか？

210
00:11:00,640 --> 00:11:02,570
ネクストホップは単なるIPアドレスです。

211
00:11:02,570 --> 00:11:08,500
だから私はそれに合わせることができました、
私はバックスラッシュDを使うことができました

212
00:11:08,500 --> 00:11:12,940
次に、小さなドットを一致させます。
次に、Dをバックスラッシュします。

213
00:11:12,940 --> 00:11:14,170
次に、小さなドットと一致します。

214
00:11:14,170 --> 00:11:17,470
私はそれを行うことができましたが、
もっと簡単な方法です

215
00:11:17,470 --> 00:11:20,860

バックスラッシュの大文字のSプラスを使用するだけです。

216
00:11:20,860 --> 00:11:24,250
これは基本的に、空白以外の
すべてを意味します。

217
00:11:24,250 --> 00:11:25,900
つまり、
空白ではないものはすべて、

218
00:11:25,900 --> 00:11:26,760
それはそれに一致するでしょう。

219
00:11:26,760 --> 00:11:30,110
つまり、基本的に
私のIPアドレスと一致します。

220
00:11:30,110 --> 00:11:38,260
次に行うことは、
テンプレートの方法を定義することです

221
00:11:38,260 --> 00:11:40,070
実行されます。

222
00:11:40,070 --> 00:11:43,150
これは、
最初にstartを指定することによって行われます。

223
00:11:43,150 --> 00:11:47,320
したがって、startは、
私のテンプレートがどのようになっているのかを定義します

224
00:11:47,320 --> 00:11:51,190
実行される
いつ、常に開始する

225
00:11:51,190 --> 00:11:58,870

別の行にいる必要があります

226
00:11:58,870 --> 00:12:01,480
常に
シーケンスを開始する必要があります

227
00:12:01,480 --> 00:12:06,680
または、startコマンドを使用して
テンプレートマッチングを開始します。

228
00:12:06,680 --> 00:12:08,680
だからあなたはいつも始めます。

229
00:12:08,680 --> 00:12:12,490
次に、次の行で、
2つのスペースを指定しましょう。

230
00:12:12,490 --> 00:12:16,570
そして、あなたの
テンプレートの始まりは

231
00:12:16,570 --> 00:12:18,910
キャレット記号を使用して実行します。

232
00:12:18,910 --> 00:12:20,800
次に、
tracerouteの出力を見てみましょう。

233
00:12:20,800 --> 00:12:21,860
私は何を持っていますか？

234
00:12:21,860 --> 00:12:24,070
ですから、ここを見ると、
その前に

235
00:12:24,070 --> 00:12:27,520
ここに2つのスペースがあります。
ここで確認できます。

236
00:12:27,520 --> 00:12:29,330
ここに2つのスペースがあります。

237
00:12:29,330 --> 00:12:31,210
だから私は2つのスペースを与える必要があります。

238
00:12:31,210 --> 00:12:36,410
2つのスペースを与えて、
次に値を一致させましょう。

239
00:12:36,410 --> 00:12:39,100
これは
私の変数になります

240
00:12:39,100 --> 00:12:43,510
ドルで行われる予定です。

241
00:12:43,510 --> 00:12:47,110
したがって、ドル記号を使用して
シーケンスを呼び出します

242
00:12:47,110 --> 00:12:49,640
または変数定義。

243
00:12:49,640 --> 00:12:52,270
そのための私の変数定義は
シーケンスでした。

244
00:12:52,270 --> 00:12:56,120

中かっこで囲まれています。

245
00:12:56,120 --> 00:12:58,520
したがって、シーケンスの後、
tracerouteを見ると、

246
00:12:58,520 --> 00:13:00,980
ここにスペースがあります。
ここで確認できます。

247
00:13:00,980 --> 00:13:04,930
スペースが1つあり、
IPアドレスがあります。

248
00:13:04,930 --> 00:13:07,560
だから私はここにもう1つ
スペースを与えます

249
00:13:07,560 --> 00:13:10,830
次の値または
次の定義を求めます。

250
00:13:10,830 --> 00:13:14,460
ネクストホップになります。

251
00:13:14,460 --> 00:13:15,010
それでおしまい。

252
00:13:15,010 --> 00:13:16,710
それが私が必要なものすべてです。

253
00:13:16,710 --> 00:13:19,980

必要なのは、スクリプトを今すぐ終了することだけです。

254
00:13:19,980 --> 00:13:24,270

記号よりも大きいダッシュを与える必要があります。

255
00:13:24,270 --> 00:13:25,800
単語レコード。

256
00:13:25,800 --> 00:13:28,440

行の終わりで、レコードは何をしますか？

257
00:13:28,440 --> 00:13:31,170
基本的に
正規表現に一致しますが、

258
00:13:31,170 --> 00:13:37,020

処理され、TextFSMに含まれます。

259
00:13:37,020 --> 00:13:38,940
つまり、基本的には
含まれます

260
00:13:38,940 --> 00:13:40,650
TextFSMの結果で。

261
00:13:40,650 --> 00:13:43,650
したがって、
スクリプトを作成するとき、またはいつでも

262
00:13:43,650 --> 00:13:46,860
テンプレートを作成すると、
常に最初から始まります

263
00:13:46,860 --> 00:13:50,580
キャレット記号を付けて、
記号よりも大きいダッシュで終了します。

264
00:13:50,580 --> 00:13:51,720
と記録します。

265
00:13:51,720 --> 00:13:54,960
したがって、結果を
TextFSMに含める場合は、

266
00:13:54,960 --> 00:13:56,370
その後、あなたは記録を与えるでしょう。

267
00:13:56,370 --> 00:13:58,553
その他のオプションもあります
。

268
00:13:58,553 --> 00:13:59,970
しかし、この時点で
私たちはただ

269
00:13:59,970 --> 00:14:02,970

簡単なテンプレートの作成について知りたい。

270
00:14:02,970 --> 00:14:04,380
これで、テンプレートの準備が整いました。

271
00:14:04,380 --> 00:14:06,360
これを保存しましょう。

272
00:14:06,360 --> 00:14:10,320
これを保存しましょう。
このテンプレートファイルをコピーします

273
00:14:10,320 --> 00:14:12,190
私のUbuntuマシンに。

274
00:14:12,190 --> 00:14:16,500
では、cd
Desktop、cd rohit、

275
00:14:16,500 --> 00:14:18,870
それが私のフォルダです
ファイルがあります。

276
00:14:18,870 --> 00:14:22,840
そして、Ubuntuマシンに
SFTPを実行しましょう。

277
00:14:22,840 --> 00:14:26,070
したがって、Ubuntuマシンに
FTPを実行すると、

278
00:14:26,070 --> 00:14:33,940

スクリプトを実行できるはずです。

279
00:14:33,940 --> 00:14:43,440
traceroute.pyを入れましょう、
そしてまた入れましょう

280
00:14:43,440 --> 00:14:49,830
traceroute.template
をUbuntuマシンに配置します。

281
00:14:49,830 --> 00:14:52,620
だから今私のUbuntuマシンは
両方のファイルを持っているはずです。

282
00:14:52,620 --> 00:14:55,440
見てみましょう。

283
00:14:55,440 --> 00:14:57,390
私は今両方のファイルを持っているはずです。

284
00:14:57,390 --> 00:15:00,930
スクリプトを実行してみましょう。
traceroute.pyです。

285
00:15:00,930 --> 00:15:07,600
したがって、python3、traceroute.py、
そして出力を見てください。

286
00:15:07,600 --> 00:15:12,360
これは、私のスクリプトを見ると、
与えたからです。

287
00:15:12,360 --> 00:15:16,680
繰り返しになりますが、覚えていれば、
印刷物fsm.headerを提供しました。

288
00:15:16,680 --> 00:15:20,310
したがって、この値は
シーケンスとネクストホップです

289
00:15:20,310 --> 00:15:21,580
テンプレートから来ました。

290
00:15:21,580 --> 00:15:25,290
したがって、テンプレートから変数名を取得します


291
00:15:25,290 --> 00:15:26,560
そしてそれをあなたのために印刷します。

292
00:15:26,560 --> 00:15:29,310
そして、それは
コマンドprintを使用して行われます。

293
00:15:29,310 --> 00:15:32,250
かっこを開きます、fsm.​​header。

294
00:15:32,250 --> 00:15:35,340
そして、これはそれが作成した実際の
リストです。

295
00:15:35,340 --> 00:15:38,710
ご覧のとおり、
すべてのセクションがリストです。

296
00:15:38,710 --> 00:15:40,510
つまり、基本的にはリスト内の
リストです。

297
00:15:40,510 --> 00:15:43,560
だから私のシーケンス番号1、
私の最初のトップはこれでした。

298
00:15:43,560 --> 00:15:45,660
シーケンス番号2、
後半はこれでした。

299
00:15:45,660 --> 00:15:47,430
サードホップはこれでした。

300
00:15:47,430 --> 00:15:50,370
そしてPhotoshopは19.0.0.2でした。

301
00:15:50,370 --> 00:15:55,230
したがって、これでは、基本的に
TextFSMを使用してデータを解析します。

302
00:15:55,230 --> 00:16:00,660

tracerouteの出力を正常に取得しました

303
00:16:00,660 --> 00:16:04,270
それをリストとして印刷しました。

304
00:16:04,270 --> 00:16:06,700
では、
別の例を見てみましょう。

305
00:16:06,700 --> 00:16:10,140
今回は、
もう少し複雑な例を見ていきます

306
00:16:10,140 --> 00:16:15,820
ここで、show
IPinterfacebriefコマンドを確認します。

307
00:16:15,820 --> 00:16:18,300
したがって、
show IP interface briefを見ると、

308
00:16:18,300 --> 00:16:20,460
ルーターのshowIPインターフェース
概要

309
00:16:20,460 --> 00:16:22,690

ファイアウォールが異なるためです。

310
00:16:22,690 --> 00:16:25,650
それでは、
少し複雑にしましょう。

311
00:16:25,650 --> 00:16:27,090
いくつかのことをキャプチャできます。

312
00:16:27,090 --> 00:16:28,450
実際、それをお見せしましょう。

313
00:16:28,450 --> 00:16:31,930
CiscoルーターでshowIPinterface
briefを実行してみましょう。

314
00:16:31,930 --> 00:16:35,740
つまり、インターフェースが表示され、
IPアドレスが表示され、OKが表示されます。

315
00:16:35,740 --> 00:16:39,390
メソッド、
ステータス、プロトコルが表示されます。

316
00:16:39,390 --> 00:16:42,840
ファイアウォールを見ると、
コマンドが異なります。

317
00:16:42,840 --> 00:16:45,540
インターフェイスのIPブリーフを表示します。

318
00:16:45,540 --> 00:16:49,230
そしてここでも、私は
インターフェースIPを持っています、OK、

319
00:16:49,230 --> 00:16:51,900
メソッド、ステータス、およびプロトコル。

320
00:16:51,900 --> 00:16:58,350
ショーのIPをキャプチャしたい
と仮定しましょう

321
00:16:58,350 --> 00:17:03,480

ルーターとファイアウォールからのインターフェースの簡単な出力、

322
00:17:03,480 --> 00:17:06,040
次に、データを解析します。

323
00:17:06,040 --> 00:17:10,170
そして、私たちは
インターフェース、IPに関する情報だけが必要です

324
00:17:10,170 --> 00:17:13,380
アドレス、ステータス、
プロトコル。

325
00:17:13,380 --> 00:17:16,690
OKは必要ありません。
メソッドは必要ありません。

326
00:17:16,690 --> 00:17:23,609
だから私は4つの部分だけが欲しい
または4つの部分の情報

327
00:17:23,609 --> 00:17:25,380
ショーIP
インターフェースの概要から。

328
00:17:25,380 --> 00:17:28,720
インターフェースが欲しい、
IPアドレスが欲しい、ステータスが欲しい、

329
00:17:28,720 --> 00:17:30,570
そして私はプロトコルが欲しいです。

330
00:17:30,570 --> 00:17:32,850
そして、これはCiscoルーターから
欲しいです。

331
00:17:32,850 --> 00:17:37,300
また、これはCiscoファイアウォールから
必要です。

332
00:17:37,300 --> 00:17:39,060
それでは、このためのスクリプトを作成しましょう。

333
00:17:39,060 --> 00:17:40,950
これはもう少し複雑になります
私は

334
00:17:40,950 --> 00:17:45,360
テンプレートファイル内に
4つの変数が必要です。

335
00:17:45,360 --> 00:17:46,950

インターフェースをキャプチャする必要があるため、

336
00:17:46,950 --> 00:17:49,755
IPアドレス、
ステータス、プロトコルを取得する必要があります。

337
00:17:49,755 --> 00:17:52,050
したがって、4つの変数を
作成する必要があります。

338
00:17:52,050 --> 00:17:55,110
そして、
次のようなスクリプトを作成する必要があります

339
00:17:55,110 --> 00:17:58,230
ルーターに接続し、
showIPを実行します

340
00:17:58,230 --> 00:18:01,140
インターフェースの概要、
出力を取得、

341
00:18:01,140 --> 00:18:03,000
それを変数として保存します。

342
00:18:03,000 --> 00:18:07,740
次に、変数からそのデータを解析します


343
00:18:07,740 --> 00:18:10,380

内部にデータを保存しました。

344
00:18:10,380 --> 00:18:11,850
これを実行してみましょう。

345
00:18:15,550 --> 00:18:19,410
したがって、ショーIP
インターフェースの概要については、

346
00:18:19,410 --> 00:18:22,800

もう一度2つのスクリプトを作成する必要があります。

347
00:18:22,800 --> 00:18:26,550
最初のものは
次のようなスクリプトになります

348
00:18:26,550 --> 00:18:30,420
ルーターに接続する
Pythonスクリプトを実行します。

349
00:18:30,420 --> 00:18:33,270
CiscoでコマンドshowIP
interfacebriefを送信します

350
00:18:33,270 --> 00:18:37,290
ルーター、およびファイアウォールの顔を表示する
IPブリーフ、

351
00:18:37,290 --> 00:18:39,030
次に、データを保存します。

352
00:18:39,030 --> 00:18:42,550
そして、TextFSMを使用して
そのためのデータを解析します。

353
00:18:42,550 --> 00:18:44,950
それでは、最初にスクリプトを作成して
始めましょう。

354
00:18:44,950 --> 00:18:47,760
ご存知のように、
ファイアウォールにはshowinterfaceIPがあります

355
00:18:47,760 --> 00:18:50,700
簡単なコマンドと
ルーターの表示

356
00:18:50,700 --> 00:18:52,540
IPインターフェイスの簡単なコマンド。

357
00:18:52,540 --> 00:18:57,870
そこで、
新しいファイル、新しいスクリプトを作成します。

358
00:18:57,870 --> 00:19:02,950
このコマンドの
データを解析します。

359
00:19:02,950 --> 00:19:06,960
それでは、このファイルを
トレースとして保存しましょう--

360
00:19:06,960 --> 00:19:09,715
または実際には、
show_ip_int_brief.py。

361
00:19:16,650 --> 00:19:20,050
そして、スクリプトを書いてみましょう。

362
00:19:20,050 --> 00:19:24,180
ですから、私が最初にすべきことは
重要になるでしょう。

363
00:19:24,180 --> 00:19:26,280
netmikoから、インポート
ConnectHandler

364
00:19:26,280 --> 00:19:28,270

ルーターに接続できるようにします。

365
00:19:28,270 --> 00:19:38,190
それでは、netmikoから、
ConnectHandlerをインポートしましょう。

366
00:19:44,370 --> 00:19:47,362
次に、TextFSMをインポートします。

367
00:19:51,740 --> 00:19:55,190
これで、モジュールを
インポートしました。

368
00:19:55,190 --> 00:19:58,560
TextFSMとConnectHandlerです。
ルーターに接続できるようになりました。

369
00:19:58,560 --> 00:20:04,970
それでは、r1 = ConnectHandler、

370
00:20:04,970 --> 00:20:08,450
そして、
IPに接続しましょう。

371
00:20:08,450 --> 00:20:13,550
10.0.102.2だと思います。

372
00:20:13,550 --> 00:20:15,300
行って確認しましょう。

373
00:20:15,300 --> 00:20:20,750
したがって、r1で、
IPインターフェースの概要を表示してみましょう。

374
00:20:20,750 --> 00:20:26,000
つまり、10.0.102.2、そして
それが私のIPアドレスです。

375
00:20:26,000 --> 00:20:33,620
私のユーザー名はciscoです。

376
00:20:33,620 --> 00:20:39,260
私のパスワードも
ciscoになります。

377
00:20:39,260 --> 00:20:44,450
私の秘密のパスワードは
ciscoになります。

378
00:20:44,450 --> 00:20:54,100
そして、私のデバイスタイプは
cisco_xeと同じになります。

379
00:20:54,100 --> 00:20:57,580
したがって、ルーター1に接続するには
これで十分です。

380
00:20:57,580 --> 00:21:02,380
したがって、IPは10.0.10.2、ユーザー名はcisco、パスワードはcisco、

