tools team/tools/Router/Cisco
IOS上でTclを実行可能です。
IVR(Intractive Voice Response)やEEM(Embeded Event Manager)でTclスクリプトを呼び出す事が可能ですが、ここではIOS上でのTclシェルの実行例を示します。

Tclシェルを起動します。

Tclシェルを起動します。

 CE#tclsh
 CE(tcl)#

Tclのコマンドを実行します。

TclコマンドはTclコマンドとして実行されます。 Tclバージョンの表示

 CE(tcl)#info tclversion   
 8.3

変数をセットする。

 CE(tcl)#set var "Hello!!ToolsTeam!!"
 Hello!!ToolsTeam!!

変数を表示する。

 CE(tcl)#puts $var
 Hello!!ToolsTeam!!

面倒な検証を楽にする方法

ルータのスケーラビリティの試験などでは多くの設定が必要となります。
ただしほとんどの場合、単純なfor構文などを覚えておけば、設定は楽になります。

vrfを設定し、インターフェースに適用する。

本例ではvrfを10個作成します。
またdot1qサブインターフェースも10個作成し、それぞれにvlan id 2-11を設定します。
さらにそれぞれのサブインターフェースにvrfを割り当て、IPアドレス10.10.10.1/24を設定します。
まずEXECコマンドで現在の設定を確認します。

 CE#show ip vrf 
 Load for five secs: 33%/0%; one minute: 12%; five minutes: 4%
 Time source is hardware calendar, 06:24:36.811 JST Tue Jan 5 2010
 
 CE#

何も設定されていません。
Tclシェルを起動します。

 CE#tclsh
 CE(tcl)#
 

$xを0-10まで1ずつ増加させて、$yは$xに1を足した数です。
ios_configでTclシェル上でIOSのコンフィグが実施可能です。

 CE(tcl)#for {set x 1} {$x<=10} {incr x} {
 +>(tcl)#set y [expr $x+1]
 +>(tcl)#ios_config "ip vrf $x" "rd $x:1"
 +>(tcl)#ios_config "interface ethernet 0/0.$y" "encapsulation dot1Q $y" "ip vrf forwarding $x" "ip address 10.10.10.1 255.255.255.0"
 +>(tcl)#}

execでTclシェル上からIOSのExecコマンドが実施可能ですので、そちらで確認してみます。

 CE(tcl)#exec "show ip vrf"
   
   Name                             Default RD          Interfaces
   1                                1:1                 Et0/0.2
   10                               10:1                Et0/0.11
   2                                2:1                 Et0/0.3
   3                                3:1                 Et0/0.4
   4                                4:1                 Et0/0.5
   5                                5:1                 Et0/0.6
   6                                6:1                 Et0/0.7
   7                                7:1                 Et0/0.8
   8                                8:1                 Et0/0.9
   9                                9:1                 Et0/0.10

実行したTclコマンドの全体はこちらです。

 for {set x 1} {$x<=10} {incr x} {
 set y [expr $x+1]
 ios_config "ip vrf $x" "rd $x:1"
 ios_config "interface ethernet 0/0.$y" "encapsulation dot1Q $y" "ip vrf   forwarding $x" "ip address 10.10.10.1 255.255.255.0"
 }

$x<= の値を変えればより多くの設定をする事が可能です。
コピー&ペーストのテキストの流し込みなどとは違い、取りこぼしも少なく済むと思われます。

IPv6 Staticルートを大量に作成

100個のStatic routeを作成してます。

 for {set x 1} {$x<=100} {incr x} {
 set y "2001:DB8:[format %04X $x]::/48"
ios_config "ipv6 route $y null0"
}

サポートされるIOS

12.3(2)T,12.2(25)S以降

参考URL

CCO:Cisco IOS Scripting with Tcl

Counter: 6360, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-01-09 (土) 20:18:22 (2777d)