Cisco onePKを試す_プログラム実行編

前回のエントリでonePKを試すためのセットアップは完了しました。
今回は実際にプログラムを動かしてみます。

All-in-One-VMの構成

Router3台とVMUbuntu)の構成は下記のようになっています。

f:id:kashigeru:20140421190407j:plain

各ルータへのログインは下記のとおりです。
Router1
Console:telnet 127.0.0.1 3533
AUX:telnet 127.0.0.1 3534

Router2
Console:telnet 127.0.0.1 3535
AUX:telnet 127.0.0.1 3536

Router3
Console:telnet 127.0.0.1 3537
AUX:telnet 127.0.0.1 3538

前回ローカルPCからVMUbuntu)へSSH出来るようにしたのでそこから各ルータにログインしておきます。

チュートリアルについて

今回使用しているAll-in-One-VMチュートリアルが出来るようになってます。
環境は”C””JAVA””Python”があり、各プログラムは下記フォルダにあります。
/home/cisco/onePK-sdk-1.2.0.173/環境/tutorials

Ubuntu上のこのアイコンをダブルクリックしてもチュートリアル資料がみれます。

f:id:kashigeru:20140423221932j:plain

サンプルプログラム実行(Interfaceアドレス情報取得)

では用意されているサンプルプログラムをいくつか実行してみます。
今回はPythonでやります。

サンプルプログラムのフォルダ
/home/cisco/onePK-sdk-1.2.0.173/python/tutorials/

まず最初にInterfaceのアドレス情報取得のプログラムを実行します。

$ cd /home/cisco/onePK-sdk-1.2.0.173/python/tutorials/
$ cd interfaces/  ←interfacesフォルダに移動
$ ls
__init__.py                  InterfaceStateChangeTutorial.py  README
InterfaceAddressTutorial.py  InterfaceStatisticsTutorial.py
InterfaceCDPTutorial.py      NetworkInterfaceTutorial.py

今回はInterfaceAddressTutorial.pyを実行
$ ./InterfaceAddressTutorial.py -a 10.10.10.110 ←Router1に対して実行
INFO:onep:InterfaceAddressTutorial:Reading arguments...
Enter Username :      ←Ubuntuログイン時に設定したUsernameを入力
Enter Password :      ←Ubuntuログイン時に設定したPasswordを入力
INFO:onep:InterfaceAddressTutorial:Connecting to Network Element...
INFO:onep:BaseTutorial:We have a NetworkElement :
NetworkElement [ 10.10.10.110 ]

WARNING: Certificate presented by remote host '10.10.10.110' is not verified.

The SHA-1 fingerprint sent by the remote host(10.10.10.110) is:
9E:98:DD:80:16:7C:4B:96:F7:08:7A:4C:28:B2:EE:11:75:6E:6A:67

You MUST verify the certificate on remote host before proceeding!

Choose from following options:
Accept Once (o), Reject (r) (default) :o  ←oを入力
INFO:onep:BaseTutorial:Successful connection to NetworkElement -
Connected to network element 10.10.10.110  ←接続完了

取得結果
アドレスとprefixが表示されます。

Printing interface address...
Interface - GigabitEthernet0/3  Address:10.0.2.16
Interface - GigabitEthernet0/2  Address:10.10.10.110
Interface - GigabitEthernet0/1  Address:10.10.30.110
Interface - GigabitEthernet0/0  Address:10.10.20.110

Printing interface prefix...
Interface - GigabitEthernet0/3  Prefix:24
Interface - GigabitEthernet0/2  Prefix:24
Interface - GigabitEthernet0/1  Prefix:24
Interface - GigabitEthernet0/0  Prefix:24

Setting IPv4 address of interface GigabitEthernet0/1
Successfully set the IP address of interface GigabitEthernet0/1
 to 10.10.30.110 prefix 24
Disconnecting from the Network Element

Router1側ログ
実行されたプログラム名とセッションが切れたログが出てます。

*Apr 23 14:01:36.130: %SYS-5-CONFIG_I: Configured from 10.10.10.1 by test on onePK Application: InterfaceAddressTutorial ID: 4440
*Apr 23 14:01:36.338: %ONEP_BASE-6-DISCONNECT: [Element]: ONEP session Application:InterfaceAddressTutorial Host:10.10.10.110 ID:4440 User:test has disconnected.

サンプルプログラム実行(RIBテーブル取得)

次はRIBテーブルを取得するプログラムを実行します。

$ cd /home/cisco/onePK-sdk-1.2.0.173/python/tutorials/routing
$ ./RIBTutorial.py -a 10.10.10.120 ←今回はRouter2に対して実行

取得結果
ConnectedとLocalの6Route取れてます。

NFO:onep:RIBTutorial:Done
INFO:onep:RIBTutorial:Getting a Routing Instance...
INFO:onep:RIBTutorial:Getting a RIB...
INFO:onep:RIBTutorial:adding RIB listener...
INFO:onep:RIBTutorial:1001
INFO:onep:RIBTutorial:Routes are :
INFO:onep:RIBTutorial:L3UnicastRoute[address:10.0.2.0/24,ownerType:CONNECTED,ownerTag:,adminDistance:0,metric:0,errorCode:0]
INFO:onep:RIBTutorial:L3UnicastRoute[address:10.0.2.18/32,ownerType:LOCAL,ownerTag:,adminDistance:0,metric:0,errorCode:0]
INFO:onep:RIBTutorial:L3UnicastRoute[address:10.10.10.0/24,ownerType:CONNECTED,ownerTag:,adminDistance:0,metric:0,errorCode:0]
INFO:onep:RIBTutorial:L3UnicastRoute[address:10.10.10.120/32,ownerType:LOCAL,ownerTag:,adminDistance:0,metric:0,errorCode:0]
INFO:onep:RIBTutorial:L3UnicastRoute[address:10.10.20.0/24,ownerType:CONNECTED,ownerTag:,adminDistance:0,metric:0,errorCode:0]
INFO:onep:RIBTutorial:L3UnicastRoute[address:10.10.20.120/32,ownerType:LOCAL,ownerTag:,adminDistance:0,metric:0,errorCode:0]

Router2のルーティングテーブル

Router2#show ip route

S*    0.0.0.0/0 [254/0] via 10.0.2.2
      10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
C        10.0.2.0/24 is directly connected, GigabitEthernet0/2
L        10.0.2.18/32 is directly connected, GigabitEthernet0/2
C        10.10.10.0/24 is directly connected, GigabitEthernet0/1
L        10.10.10.120/32 is directly connected, GigabitEthernet0/1
C        10.10.20.0/24 is directly connected, GigabitEthernet0/0
L        10.10.20.120/32 is directly connected, GigabitEthernet0/0

スタティックルートもあるのに取れてないですね。
プログラムを確認してみないと。

まとめ

手軽にonePKを試せるAll-in-One-VMはいいですね。もっと広めたい。
まだサンプルプログラムもたくさんあるし、自分で開発も出来るし。
次は自分でなにか書いてみようと思います。
(ノ´▽`)ノ{+++THANK YOU+++}ヽ(´▽`ヽ)