Skip to content

IXIA#

ixnetwork-restpyはIxNetwork APIを使用して、IxNetworkを制御するPythonライブラリです。 以下は、ixnetwork-restpyの基本的な使い方の手順です。

IxNetworkのインストール まず、IxNetworkをダウンロードしてインストールする必要があります。IxNetworkのダウンロードには、 IxiaのWebサイトへのアクセスが必要です。

ライブラリのインストール ixnetwork-restpyを使用するには、Pythonライブラリをインストールする必要があります。 コマンドラインから以下を実行して、必要なライブラリをインストールします。

pip install ixnetwork_restpy

IxNetworkの起動 次に、IxNetworkを起動してAPIサーバーを有効にする必要があります。IxNetworkの起動は、IxNetwork GUIまたはコマンドラインから実行できます。

コードの書き方 以下のようなPythonスクリプトを書くことで、IxNetworkを制御することができます。

from ixnetwork_restpy import SessionAssistant

# セッションを作成
session_assistant = SessionAssistant(IxNetwork_Tcl='tclsh')
ixnetwork = session_assistant.Ixnetwork

# 接続先を設定
ixnetwork.ResourceManager().Connect(Hostname='192.168.1.1', UserName='admin', Password='admin')

# シナリオをロード
ixnetwork.LoadConfig(FilePath='scenario.ixncfg')

# トポロジを取得
topology = ixnetwork.Topology.find()[0]

# ポートを設定
vport = ixnetwork.Vport.add(Name='Port 1')
vport.Connections.add(Port=ixnetwork.Traffic.TrafficItem[0].EndpointSet[0].Sources[0], \
    ConnectedTo=vport.AssignedTo)

# トラフィックを開始
ixnetwork.Traffic.TrafficItem[0].State = 'started'

# セッションを終了
session_assistant.Session.remove()

IxNetworkのREST APIサーバーのポート番号は、IxNetwork GUIのログファイルから調べることができます。ログファイルは、IxNetworkの起動ディレクトリにあるIxNetwork.logという名前のファイルです。

ログファイルをテキストエディタで開き、以下のような行を検索します。

REST API Server listening on http://localhost:<port number>/

または、REST APIを使用するPythonスクリプトで、REST APIサーバーに接続する際に使用するポート番号を指定することができます。以下は例です。

from ixnetwork_restpy import SessionAssistant

# セッションを作成
session_assistant = SessionAssistant(IxNetwork_Tcl='tclsh', RestPort=11009)

この例では、ポート番号11009でREST APIサーバーが実行されていることを想定しています。必要に応じて、RestPortパラメーターをREST APIサーバーのポート番号に変更してください。

traffic#

以下は、IxNetwork REST APIを使用して、作成されたIxNetworkコンフィグを開いて、トラフィックアイテム名を取得し、トラフィックを流して、止めて、結果を取得する方法の例です。

from ixnetwork_restpy import SessionAssistant
import time

# セッションを作成
session_assistant = SessionAssistant(IpAddress='127.0.0.1', RestPort=60100)

# IxNetwork GUIに接続
ixnetwork = session_assistant.Ixnetwork

# コンフィグファイルを開く
ixnetwork.NewConfig()

# 作成されたコンフィグファイルを読み込む
ixnetwork.LoadConfig('/path/to/config_file.ixncfg')

# トラフィックアイテム名を取得する
traffic_item_name = 'Traffic Item 1'

# トラフィックアイテムを取得する
traffic_item = ixnetwork.Traffic.TrafficItem.find(Name=traffic_item_name)

# トラフィックを開始する
traffic_item.Generate()
time.sleep(10)  # トラフィックを10秒間流す

# トラフィックを停止する
traffic_item.StopTrafficBlocking()
time.sleep(2)  # トラフィックが停止するのを待つ

# 統計情報を取得する
view_name = 'Flow Statistics'
view_obj = ixnetwork.Statistics.View.find(ViewName=view_name)
view_obj.Refresh()

# 統計情報のテーブルを取得する
table = view_obj.GetTable(TopCount=100, ColumnList=['Tx Frames', 'Rx Frames'])

# テーブルの内容を表示する
for row in table.Rows:
    tx_frames = row['Tx Frames']
    rx_frames = row['Rx Frames']
    print(f"Tx Frames: {tx_frames}, Rx Frames: {rx_frames}")

この例では、IxNetwork REST APIを使用して、作成されたIxNetworkコンフィグを開いて、トラフィックアイテム名を取得し、トラフィックを流して、停止して、結果を取得する方法を示しています。この例では、Traffic Item 1という名前のトラフィックアイテムを実行し、10秒間トラフィックを流し、停止し、統計情報を取得しています。 必要に応じて、トラフィックアイテム名や、トラフィックを流す時間、統計情報を取得するためのビュー名やカラムリストを変更してください。