GNS3をさくらのVPS環境にインストールする(CentsOS6.3 x64環境)

Ciscoの試験勉強には実機操作が一番なのですが、中古で買うにしても高額だったり、部屋に置けなかったり、奥さんに怒られたりする問題があります。かと言ってDynamipsやGNS3をインストールしたマシンを用意するのもそれなりにお金がかかるし、セットアップがめんどくさいと言った問題が残ります。そもそも思いついた時に操作したいという欲求を満たすには、常時稼動にする必要がありますが電気代とか騒音とかの問題をクリアしないといけません。
これまた住宅事情に対する挑戦となってしまいます。
そもそもBGPとOSPFで再配布とかやっちゃう場合はかなりたくさんのルータが必要になりますが、全部用意するなんて現実的ではありません。
というわけでホスティング事業者のインフラ上で構築すればこれらを満たすことができるのでは?
iPhoneとMacとかAndroid端末でも操作できるのでは?
というわけでやってみます。

使用したプラン
さくらのVPS 2G (石狩DC)

スペック
メモリ:2G
ディスク:200GB
CPU:仮想CPU 3コア

月額1480円で初回は2ヶ月分払う必要があります。
クレジットカードの他に請求書払いにも対応しています。

まずはTeratermやPuttyなどのSSHクライアントでサーバーへログインしてください。(rootで)

環境確認
# uname -a
Linux xxxxx.sakura.ne.jp 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS release 6.3 (Final)

CentOS 6.3 64bitであることが確認できます。

特に不便はないのだけど、言語を日本語に変更しておきます。

# vi /etc/sysconfig/i18n

LANG=”C”
SYSFONT=”latarcyrheb-sun16″

以下に変更します

#LANG=”C”
LANG=”ja_JP.UTF-8″
SYSFONT=”latarcyrheb-sun16″

日本語を有効にするため一旦再起動します。
# reboot

ファイアーウォールの設定を行います。
さくらのVPSの場合はデフォルトだとファイアーウォールが動作していません。
さすがにこれはまずいので最低限の設定をします。
# setup











許可するサービスは任意で追加してください。
ただし必須は「SSH」です。

基本的な制限についてはこれで設定されますが、VNCで使用するポートや送信元IPで制限する必要が有るため設定ファイルを編集します。
# vi /etc/sysconfig/iptables
単純にVNCで使用するポートを許可するだけの場合は以下の行を追加します。
-A INPUT -m state –state NEW -m tcp -p tcp –dport 5901 -j ACCEPT
送信元アドレスを指定して許可する場合は以下の行を追加しますが、接続元IPアドレスが常に固定な環境でなければなりません。
-A INPUT -m state –state NEW -m tcp -p tcp -s 1.2.3.4 –dport 5901 -j ACCEPT

この設定でVNCが使用するTCP 5901ポートがグローバル側に対して待受を開始します。

※VNCは暗号化されていない通信ですので通信の安全に対して問題があります。
※気になる場合はSSHトンネルで保護するなど対策を行なってください。

設定が終わったらiptableを再起動します。
# service iptables restart

一般ユーザーを作成します。
# adduser higume
# passwad higuma
ユーザー higuma のパスワードを変更。
新しいパスワード:<-任意のパスワードを入力します。
新しいパスワードを再入力してください:<-任意のパスワードを入力します。
passwd: 全ての認証トークンが正しく更新できました。

Rootログインを禁止します。
# vi /etc/ssh/ sshd_config
以下の行を書き換えます。
#PermitRootLogin yes

PermitRootLogin no

これでroot直接ログインができなくなります。
必ず一般ユーザーでログインしてからsu –でrootになってください。
# service sshd restart
# exit

一般ユーザでログインをやり直してください。
$ su –
でrootになります。

さくらのVPSの場合はデフォルトだとランレベル3用になっているので、いわゆるGUI環境というか
デスクトップ環境は入っていません。
(完全サーバー用途の構成です)
ですので、GNOMEなどのデスクトップ環境に必要とされるアプリケーションを予めインストールしておきます。

# yum groupinstall "X Window System" "GNOME Desktop Environment" "Desktop"
# yum install firefox

これらのインストールしたパッケージでGUI環境が整うのですが、リモート環境にはディスプレイ等が接続されていませんので使用出来ません。
(さくらのVPSでは仮想コンソールがありません)
遠隔地のデスクトップ環境にリモートアクセスするので、VNCをインストールします。
# yum install vnc vnc-server tigervnc-server

VNCの設定を行います。
ユーザー例:higuma

# su - higuma
$ vncpasswd
ここで好きなパスワードを入力できますが、先ほど設定したOSのログインパスワードとは別物です。
管理が煩雑になるためOSのログインパスワードと同じものを登録したほうが良いでしょう。

一旦VNCを起動します。
$ vncserver :1
VNCを停止させます。
$ vncserver -kill :1

そうすると初期値の設定ファイルが生成されますので、このファイルを修正します。
$ vi ~/kuma/.vnc/xstartup

以下の様な行がありますのでこの2行をコメントアウトし新たに二行追加します。
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
gnome-session &

一般ユーザーからログアウトします。
$ exit

VNCサーバーの設定を変更します。
# vi /etc/sysconfig/vncserver
以下の行を追加します。
VNCSERVERS="1:higuma"
VNCSERVERARGS[1]="-geometry 1280x900 -nolisten tcp"

ここではVNCの画面解像度を指定しています。
画面の高さが重要で、900以下になるとGNS3の設定画面が見えないといった問題があります。利用環境にはご注意ください。

VNCの起動登録と再起動を行います。
# chkconfig vncserver on
# /etc/init.d/vncserver restart

GNS3に必要とされる関連パッケージをインストールします。
# yum install python python-devel xorg-x11-proto-devel libXext-devel gcc-c++ libXrender* PyQt4 PyQt4-devel qt qt-devel qemu-img libvirt qtwebkit qtwebkit-devel telnet

一旦再起動しておきます。
# reboot

GNS3は「/opt/GNS3」にインストールします。
というわけで必要資材のインストールなどを行なっていきます。
# cd /opt

## wget http://jaist.dl.sourceforge.net/project/gns-3/GNS3/0.8.4-RC2/GNS3-0.8.4-RC2-src.tar.gz
GNS3をダウンロードします。
# wget http://jaist.dl.sourceforge.net/project/gns-3/GNS3/0.8.3.1/GNS3-0.8.3.1-src.tar.gz

# tar zxvf GNS3-0.8.3.1-src.tar.gz
# ln -s GNS3-0.8.3.1-src GNS3
# cd GNS3
# mkdir Dynamips IOS Project Cache Temp
# chmod o+rw Project Temp
# chmod 777 IOS
# cd Dynamips
DynamipsのLinux x64用のバイナリをダウンロードします。
# wget http://jaist.dl.sourceforge.net/project/gns-3/Dynamips/0.2.8-RC3-community/dynamips-0.2.8-RC3-community-x86_64.bin
# chmod +x dynamips-0.2.8-RC3-community-x86_64.bin

# cd /opt/GNS3
# wget http://www.rehmert.com/wp-content/uploads/2012/08/gns3-150x150.png
# mv gns3-150x150.png gns3.png
# ln -s /opt/GNS3/gns3.png /usr/share/icons
# ln -s /opt/GNS3/gns3.png /usr/share/pixmaps

起動ファイルを作成します。
# vi /usr/bin/gns3
以下の二行をペーストしてください。
#!/bin/bash
python "/opt/GNS3/gns3"

作ったファイルに実行権限をつけます。
# chmod +x /usr/bin/gns3

デスクトップの起動ファイルを作成します。
# vi /usr/share/applications/gns3.desktop
以下をペーストしてください。
[Desktop Entry]
Name=GNS3
Comment=GNS3
Exec=gns3
Icon=gns3.png
Terminal=0
Type=Application
Encoding=UTF-8
Categories=Development

これでGNS3の起動準備は整うのですが、このままだと以下のエラーメッセージが表示され使用出来ません。
AttributeError: 'xxxxxxxxxxx' object has no attribute 'ItemSendsGeometryChanges'


以下のファイルを修正します。
# vi /opt/GNS3/src/GNS3/Node/AbstractNode.py

以下の二行をコメントアウトします。
if QtCore.QT_VERSION >= 0x040600:
flags = flags | self.ItemSendsGeometryChanges

ここまでで起動準備が整いましたので、Cisco IOSを準備します。
今回はCisco C2600を使用します。
使用したIOS:c2600-ipbase-mz.124-25c.bin

これまでの作業で「/opt/GNS3/IOS」にIOS置き場を作成しましたので、そこにこのIOSをアップロードします。
WinSCPなどを使用すれば簡単にできると思います。
TeratermでもSCP転送機能がありますので、お好みに合わせてください。

VNCで接続します。
今回使用したVNCビューワは「RealVNC日本語インストール版」です。
クライアントはWindows7 32bitのマシンです。
接続の仕方は、ホスト名:5901となります。
後ろの5901はポート番号ですので、他の番号で設定した場合はそっちに合わせてください。


VNCのパスワードを入力してからOKをクリックします。




ここらへんはWindows版のGNS3と同じ手順で初期設定できますので割愛します。


ルーターを右クリックしてコンソールを開きます。
ここからの操作は実機と同じですので、設定を入れていきます。

各ルーターのConfig

Alpha
# conf t
# interface FastEthernet 0/0
# ip address 10.0.0.1 255.255.255.224
# no shutdown
# end
# copy run start

Bravo
# conf t
# interface FastEthernet 0/0
# ip address 10.0.0.2 255.255.255.224
# no shutdown
# end
# copy run start

Charlie
# conf t
# interface FastEthernet 0/0
# ip address 10.0.0.3 255.255.255.224
# no shutdown
# end
# copy run start

Alphaから他のルータへPingを打ってみて、正しく応答があれば構築完了です。

カテゴリー: 未分類 パーマリンク

コメントは停止中です。