8.02.2013

MacユーザのためのGNS3設定 .netファイル編



はじめに



GNS3の基本的なセットアップは前回までの記事で完了しているはずなので、今回は.netファイルの見方について書いていく。

まだ前回までの記事をごらんになっていない方はそちらから先に見ていただけると理解がいいと思います。今回は第三回目で、既に二回ほど書いております。

MacユーザのためのGNS3(Dynamips)設定方法 基本編
MacユーザのためのGNS3設定 トポロジ構築編



なんで.netの中身が重要か


topologyの記録された.netファイルをある程度調整しておかないと、無駄にCPUを使ってしまったりして、パームレストが死ぬほど熱くなったり、CPUファンの半端ない回転数にびびったりと心を痛めながら勉強しなければならないので、把握しておくにこしたことはない。

まず基本中の基本として、projectが保存されたフォルダに配置されている、topology.netを適当なテキストエディタで開く。


.netファイルには何が書いてあるか


.netファイルは大きく4つの要素に分かれている。
 1. プロセス
 2. ルータ機種
 3. 個別ルータ
 4. 位置情報

このうち、設定で重要になってくるのは上の3つで、位置情報はトポロジ上でどの座標にルータを配置しているかを記録しているものだから、最悪記録されていなくても動く。

それぞれの要素についてまとめつつ書いていこうと思う。

1. プロセス

プロセスは[]でくくられた部分の一番外側に位置する設定になる。

立ち位置としては、このプロセス配下にルータ機種、個別ルータが配置されてくるイメージになる。
プロセスは読んで字のごとくで、プロセス数が5個なら、OS上でも5つのdynamipsプロセスが立ち上がることになる。

上の.netファイルでは[127.0.0.1:7200]と記されているが、これはローカルホストのポート7200にこのプロセスをマッピングしているという意味で、ポート番号を変えてあげればプロセスは複数立ち上がる(例えば7201,7202みたいなかんじ)。

あと、同じようにUDPのポートも10001,10101のように100ずつくらい増やしてユニークに設定する。

複数ルータを配置した場合、プロセスはある程度自動で分割されることもあるが、いろいろ調べたところによると、1プロセスあたり、ルータ5台までを配置するくらいが具合がいいらしい。


2. ルータ機種

機種セクションに配置されるのは、使用するIOSの配置されたパスと、各種ルータの起動の方法などである。

sparsemem、ghostiosなど、それぞれTrueがいい、Falseがいい、と諸説あるようで、まだ結論は出ていないらしい。
結論を出すのは詳しい人たちに任せておいて、基本的には変更しなくていいと思う。

ここにはidlePCの値を設定した場合に、その値が投入されることになる。idle PCは詳細はよくわからないが、CPUの使い方をPC側に教えるものだと理解している。

よくわからないことは置いておいて、とりあえずこの項目で重要なのは、idlemax=100を記述しておくことである。

    [[3640]]
        image = /Users/shun/Documents/IOS/c3640.image
        sparsemem = True
        ghostios = True
        chassis = 3640
        idlemax = 100

こんな感じで記述し、上書き保存。

idle maxを書かない状態で前回までに作成したtopologyを起動し、idle PCを設定。数分後のCPU状態をキャプチャした。

ちなみにidle PCはルータアイコンをcontrol + クリックしてidle PCを選択する。計算結果で数値はいろいろ出てくるけど、ベストな値というのはなくって、非常にだるいんだけど、何回も計算させてCPU使用率が下がるのを待つしかない。





idlemaxなし


idlemaxあり


dynamipsのCPU使用率を数値で見てみると、idlemaxありが8%、idlemaxなしが24%と、かなりの違いが見える。

今回はルータを4台しかシミュレートしていないので、そもそもCPUの使われ方は少ないが、これが数十台のルータをシミュレートするということになってくると、大きな差となって現れる。



3. 個別ルータ

個別ルータは特に設定する項目がないんだけど、憶えておかなければならないことが一点ある。

terminalソフトからのルータ接続は、コンソール接続と言いながらもtelnet接続をコンソール接続かのように扱うんだけど、そのときにマッピングされるポートは個別ルータ設定のconsole = 2104の部分になる。

これを知っておくと、iTermなど、ブックマークを設定できるterminalを使うときに非常に便利で、同じトポロジを繰り返し練習するときはルータアイコンをダブルクリックしたりすることすらダルく感じてくるので、ブクマからさくっと好みのルータに入れる方が効率がいい。

実際のtelnetの仕方だけど、terminalからtelnet 127.0.0.1:2104でポート2104番を叩いてあげればそれがコンソール接続的に扱われることになる。

結構topologyごとにポート番号がバラバラになってたりするので、ポート番号の割当を自分ルールに割り当ててあげるといいと思う。

僕の場合はR1を2101から始めて、下二桁が必ずルータ番号とマッチングするように設定している。



4. 無理矢理プロセスを分けてみる

ルータ4台しかシミュレートしていないので、あまり効果があるかわからないけど、idlemax=100とプロセス分けを設定して実験してみる。

結果はこんな感じで、4つプロセスが動いていることがわかる。

それぞれCPU使用率も3%前後ずつでプロセスあたりの使用率は抑えられてる。まあ4台程度じゃ効果はわかんないよね。

こんな感じでGNS3の中身を少し知っておくと、いろいろとはかどりますね。


画像が多いとたいへんだ(小並感)





0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...