• 検索結果がありません。

第 5 章 実装 32

5.8 ネットワーク構築の自動化

5.8.2 Netem の設定ファイル

NetEmノードのメモリ計算が終了した後,要求されているリンクを模倣するための

NetEmの設定コマンドを生成する.遅延生成,遅延ゆらぎ,パケットロスに関しては,

NetEmそのもので模倣可能であるため1つの設定で生成可能である.帯域制限に関して

は,NetEm自体が帯域制限の機能を持っていないため,帯域制限を行うモジュールにデー

タを渡す設定を記述する必要がある.そのため,NetEmで遅延生成,帯域制限の両方を 設定したい場合は2つの設定を記述する必要がある.

図5.10に生成される設定ファイルを示す.設定ファイルはJSON(JavaScript Object No-tation)形式で記述されており,Link-No,実験ノード,NetEmの設定,NetEmノードの IPアドレス,NetEmノードが生成するブリッジインターフェース名,ブリッジインター フェースに所属するインターフェース名が記述されている.Link-Noはリンク特性の模倣 を行うリンクの識別子として用いている.実験ノードはリンクに接続される実験ノード名 を記述している.StarBEDで提供されているノードが接続される場合には,DNSに登録 されているノード名が記述され,外部機器を用いている場合には,Noneと記述される.

NetEmの設定は,NetEmノードが模倣を行うリンクの設定コマンドが記述されている.

netemと書かれている箇所は,遅延,遅延揺らぎ,パケットロスの設定が記述されており,

tbfと書かれている箇所にはトークンバケツフィルタの設定が記述されている.netemip

にはNetEmノードとして割り当てられたノードのIPアドレスが記述されており,この

IPアドレスを持つノードがリンク特性の模倣を行う.bridge-ifはLink-Noの番号が割り 当てられたブリッジインターフェース名である.リンク特性の模倣では,接続される実験 ノードが同じネットワークに所属する必要がある.そのため,ブリッジインターフェース を作成し,データリンク層で実験ノード間のデータをフォワーディングできるように設定 する.physical-ifは作成したbridge-ifに所属する物理インターフェースを記述している.

これは基本的に,VLANインターフェースとなる.本システムでは,NetEmの多重化を 行うため1つのインターフェースに複数のトラフィックが流れてくる.そのため,VLAN インターフェースを作成し,それぞれのトラフィックが混合しないようにしている.

{

"Link0": {

"node": ["a159", "a160"], "netem": {

"netem": "netem limit 10000 delay 80ms 10ms loss 10%", "tbf": "tbf rate 42mbit latency 1s buffer 42kb"

},

"netemip": "172.16.6.200", "bridge-if": "br0",

"physical-if": ["eth0.760", "eth0.761"]

} }

図5.10: NetEmの設定ファイル

{

"150.65.117.41": { "route": { "route": { },

"netemip": "192.168.254.1", "netemif": "eth1"

},

"eth0.201": { "1": {

"10": "netem limit 10000 delay 100ms", "child": {

"100": "tbf rate 10mbit latency 1s burst 10k", "child": {

"flow": "parent 1: protocol ip prio 1 u32 match ip src 192.168.0.0/24"

} } },

"dst": "192.168.1.0/24"

},

"eth0.200": { "1": {

"10": "netem limit 10000 delay 100ms", "child": {

"100": "tbf rate 10mbit latency 1s burst 10k", "child": {

"flow": "parent 1: protocol ip prio 1 u32 match ip src 192.168.1.0/24"

} } },

"dst": "192.168.0.0/24"

} } }

図5.11: test

関連したドキュメント