このブログを検索

2014/11/09

さくらのVPSにGNS3をインストール(ubuntu)

とりあえず動いた・・・。





centosはメモリ1GBだから、GNS3を動かすのはちょっときついかな。

基本的に下記のガイドのとおり。

https://community.gns3.com/servlet/JiveServlet/download/38-7963/GNS3%20Getting%20Started%20Guide%201.0.pdf


ubuntuには、pythonは2系と3系が両方入っている。

pycrypto とかいうのがインストールされるところでエラーになって、
python2.7-dev と python3.4-dev をいれた。

たぶん3.4だけでいいのだと思う。


さくらのVPSにGNS3をインストール(centos)

gns3.com にインストールガイドがあるが、ubuntu用である。

centosにいれる。

とにかくいろんなものが必要。というか、足りない。

エラーになるたびメッセージをgoogleで検索して、必要なものをインストールしていった・・・。

どれも、それが何なのか全然わからないまま・・・。


先に結論を言うと、うまくいかなかった。

ので、正式なものは後日書くとして、
メモを残す。



まずdynamips

cmake

libpcap-devel

libuuid-devel.x86_64

libelfとかなんとか

dynamipsはうまくいった。



次に gns3server


python3

distribute

zeromq 4.0.5


Searching for pyzmq>=14.0.0
Reading https://pypi.python.org/simple/pyzmq/
Reading http://github.com/zeromq/pyzmq
Best match: pyzmq 14.4.1
Downloading https://pypi.python.org/packages/source/p/pyzmq/pyzmq-14.4.1.zip#md5=0cab6e0047107badf68a0a0fa4ae30d1
Processing pyzmq-14.4.1.zip
Writing /tmp/easy_install-khz_iw/pyzmq-14.4.1/setup.cfg
Running pyzmq-14.4.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-khz_iw/pyzmq-14.4.1/egg-dist-tmp-xy0lnt
warning: no files found matching 'tools'
no previously-included directories found matching 'docs/build'
no previously-included directories found matching 'docs/gh-pages'
warning: no previously-included files found matching 'bundled/zeromq/src/Makefile*'
warning: no previously-included files found matching 'bundled/zeromq/src/platform.hpp'
warning: no previously-included files found matching 'zmq/libzmq*'
warning: no previously-included files matching '.deps/*' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
warning: no previously-included files matching '*.pyd' found anywhere in distribution
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '.git*' found anywhere in distribution
warning: no previously-included files matching '.DS_Store' found anywhere in distribution
warning: no previously-included files matching '.mailmap' found anywhere in distribution
warning: no previously-included files matching 'Makefile.am' found anywhere in distribution
warning: no previously-included files matching 'Makefile.in' found anywhere in distribution
Using zmq-prefix /usr/local (found via pkg-config).
************************************************
Configure: Autodetecting ZMQ settings...
    Custom ZMQ dir:
build/temp.linux-x86_64-3.3/scratch/tmp/easy_install-khz_iw/pyzmq-14.4.1/temp/timer_createcmeorh.o: In function `main':
timer_createcmeorh.c:(.text+0x15): undefined reference to `timer_create'
collect2: ld はステータス 1 で終了しました
    ZMQ version detected: 4.0.5
************************************************
error: Setup script exited with error: in 'ext_modules' option (extension 'zmq.devices.monitoredqueue'), 'sources' must be present and must be a list of source filenames


ここでダメ。




GUI




Searching for pycrypto>=2.1,!=2.4
Reading https://pypi.python.org/simple/pycrypto/
Best match: pycrypto 2.6.1
Downloading https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz#md5=55a61a054aa66812daf5161a0d5d7eda
Processing pycrypto-2.6.1.tar.gz
Writing /tmp/easy_install-ni0km5/pycrypto-2.6.1/setup.cfg
Running pycrypto-2.6.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-ni0km5/pycrypto-2.6.1/egg-dist-tmp-uck3lu
error: Setup script exited with error: in 'ext_modules' option (extension 'Crypto.PublicKey._fastmath'), 'sources' must be present and must be a list of source filenames


ここでダメ。



gns3インストールの記録はあるのだが、
皆バージョンが少し古い。

今gns.comへ行くと、
GNS3-1.1.source.zip

しかない。


これを、centos
Linux xxxxx.sakura.ne.jp 2.6.32-431.29.2.el6.x86_64 #1 SMP Tue Sep 9 21:36:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


に入れねばならない。


いったんあきらめる。

ubuntuでできるか、試してみるか・・・。

さくらのVPSにvnc接続

vncserverをインストールする方法はいろんな人が公開している。


私はこのページを参考にした。

http://shirokuma-industry.com/wordpress/?p=948



そして自宅のWindows7のPCにreal vncをインストールして接続してみると、


「ホストへの接続ができません:接続を拒絶しました(10061)」

というエラーメッセージが表示されて接続できない。


iptablesのせいかと思って無効にしてみたが同じである。


いろいろ調べてみるが、サービスも起動しているし、何もおかしいところは見当たらない。



・・・

原因は、接続するときにホスト名の後に ":1" をつけていないことだった。

example.com:1

のように。

さくらのVPSにvncで接続したことは以前にもあったのだけど、
そうだったっけかな・・・

まあいいや。


2014/10/27

python3ではtweepyが使えない

GNS3のためにpythonを2.x.xから3.x.xにしたら、

今まで動いていた pythonで書いたtwitterのブロックしているユーザ一覧表示スクリプトが

動かなくなった。



調べると、3系ではtweepyは使えず、3系で使える別のライブラリがあるようだ。


作り直しか・・・

2014/10/26

bgp

最近、bgpをやった。

ちょっと整理してみる。


bgpは、egp(exterior gateway protocol)のひとつである。

AS外部との経路の交換をおこなうので、 exteriorというのである。

これに対し、AS内部での経路交換をおこなうルーティングプロトコルは igp(interior gateway protocol) という。OSPFが代表的である。


と言っても、ルーティングプロトコルと言えば、OSPF, static, BGP がほとんどではないだろうか。

egpに関しては、事実上BGPしかなく、egp = bgpと考えてよいだろう。



さて、egpとigpの違いについてまとめてみたい。

googleで検索したり本で調べれば、決まり文句のようにその違いが述べられている。

やれパスベクタ型だの、リンクステートだのなんだの。


私もそのように覚えていたのだが、

ずっと、bgpがなんなのかがよくわからなかった。

単に経路交換の仕組みが違うだけで、ルータに経路とそのネクストホップを知らせる、
という点については変わらないじゃないか、と。



そこで、GNS3で、簡単な構成を作ってみた。


client --- R1(アクセスルータ) --- R2(キャリア) --- R3(キャリア) --- R4(ISP/IX) ---(キャリア) --- Server


インターネットの通信というのは、基本的に上記のような経路を経ている。


client - R1 間は、パソコンとデフォルトゲートウェイである。

ここは経路は一つしかない。どこへ行くにも、R1を経由する。


R1-R2-R3-R4 の間は、igp(OSPF)でよい。

この区間は収容ユーザや回線数の都合、冗長性(耐障害性)の関係で同じ構成が並列にあったりするのでいくつかのノードを経る。


問題はR3とR4の間である。ここでbgpを使う。

clientからキャリアまでの間に選択すべき経路はそれほど多くないが、

ISP/IXからもらう経路は膨大である。



igpとegpを区別する一番の理由は、この経路数の規模である。




あと、bgpにはibgp と ebgpというのがある。

ibgpというのは同じAS同士、ebgpというのは異なるAS同士で使う。


ここで私はふと疑問に感じた。

「同じAS内の経路交換はigpでするんじゃないのか?なぜibgpが必要なのか?ibgpとigp(OSPF)の違いは?」


今日届いた「インターネットルーティング入門」をパラパラとめくっていると、以下のような記述があった。

「eBGPで得た自分以外のASからの経路情報を、さらに自分のAS内の他のBGPスピーカに伝えるときに使われるのがiBGPです。」


私は今まで、下から考えていた。clientがあって、キャリアがあって、ISPがあって、と。

逆に考えるのだ。eBGPでもらった経路を、iBGPでAS内に伝える。


この、AS内でのBGP交換というのは、ちょっと特殊なルーティングと言える。

あまり説明されることもない。



ibgpが必要になる理由は、先ほど言った、「この区間は収容ユーザや回線数の都合、冗長性(耐障害性)の関係で同じ構成が並列にあったりするのでいくつかのノードを経る」ということではないかと思う。



原理的なことだけを考えるなら、client - キャリア - ISP - IX - ISP - キャリア - Server

で済む。ここで登場するキャリア、ISP、IXはすべて異なるASである。


が、ネットワークというものは、複数束ねられているものである。

iBGPというのは、いわば大量の経路の複製である。




まず、2台のルータでBGPを設定する。同じAS、つまりiBGPである。

そこに、もう一台同じASのルータを追加すると、最初の2台で交換された経路が3台目には伝わらない。

ここがOSPFとは違うところである。こうなっているのは、経路交換のループを防ぐためである。

OSPFなら、3台目にも伝わる。(なぜ、OSPFだとループしないのか?は、改めて考える)




また、BGPで交換されているのに、ルーティングテーブルに載らないことがある。

つまり、show ip bgpでは存在しているのに、show ip routeでは存在していない。


いろいろな場合があるが、BGP特有なのは、「next hopへ到達できない経路はルーティングテーブルにのらない」ということである。

そもそもルーティングというのはnext hop情報を伝えることなのだから、「A宛のnexthopは100です」という情報があれば、それをテーブルに載せればいい、載るものだという認識があった。ルーティングテーブルに載っていてその宛先に送って届かないときは仕方がない、と。


だが、BGPでは「到達できないネクストホップ宛の経路情報」というものも交換されるのである。




R2(AS100) --- R3(AS100) --- R4(AS200)



R3とR4の間でBGP(eBGP)による経路交換がおこなわれると、

R3に、R4(の、R3と接続しているinterfaceのアドレス)をnext hopとする大量の経路情報が伝わる。


そして、R2とR3の間ではiBGPにより経路交換がおこなわれる。R3がR4からもらった経路情報はeBGPによる経路なので、R2に伝わる。

しかし、もしR2が、そのネクストホップつまりR4のR3の対向interfaceのアドレスに到達できないと、ルーティングテーブルに載らない。

だから、R2とR3間では、IGP(OSPFやstatic)によって、R3-R4間の経路情報を交換する必要がある。



2014/10/23

行き詰まり

最近行き詰っている。

ルーティングとは何か?ルータとは何か?インターネットとは何か?

TCP/IPとは?ウェブとは?クラウドとは?L3スイッチとは?

BGPとは?OSPFとは?

冗長?経路?アドレス?


一応、どんなものでどんな風に使われどんな風に設定しどんな風に動くのかはなんとなく理解している。

しかし、なぜこうでなくてはならないのか、ほかにもっといい方法がないのか、とか、

どうしてOSPFなのか、どうしてBGPなのか、

なぜ冗長化するのか、なぜcatalystなのか、nexusなのか、という、根拠というか理由というか、
動機というのか、そういうものがわからない。



そもそも、ネットワークとはなんだろう。

そんなことすら考える。


ネットワークとは、「接続」のことか。

一番単純なネットワークは、2点間の間を結ぶことだ。

糸電話のような。


「通信」とはなにか。「接続」と「通信」の何が違うのか。

ルーティングとスイッチングとは、それぞれどういうことか。


両方「ネットワーク」に分類されるが、違うものである。

よく言われるのはL3(えるさん)、L2(えるに、えるつー)であるが、
果たしてそれらはそれぞれどういうものなのか。

本当にみんなわかっているのか?



1秒の通信断が発生すると、何が起きるのか。
パケットが一つ落ちると、どうなるのか。


電車の中でスマホでウェブを見ている人に何が起きるのか。

家のパソコンでオンラインゲームをしている人にどんな影響があるのか。


メールを受信中に、メールサーバとクライアントの間のどこかで0.5秒の通信断が発生したら、
どうなるのか。



「TCPは再送機能があるがUDPにはないからドロップする」というが、
youtubeを視聴中にパケットが一個おちたらどうなるのか。


マルチキャストを利用した通信というかサービスは具体的に何か?


ウェブ(グーグル)で検索して得られる情報、資格試験受験のための参考書に書いてあること、
その他一般的に言われること、

それらと自分がインターネットやATMやiPhoneや漫画喫茶などで通信・サービスを利用していることの間に、もやもやとしたものがある。

もしかして私は重要な誤解をしている、あるいは重大な認識不足があるのではないか?

そんな気がしてならない。


とりあえず、「インターネットルーティング入門」という本を買った。

2014/07/19

自宅ラボ

Cisco

 Catalyst2960

 Catalyst3560 (24ポート)

 Catalyst3560 (48ポート)


NEC

 UNIVERGE IX2004


古川電工

 FITELnet-F-100 (3台)



これで自宅ラボを再構築しよう。

CCIE Writtenはやめて、Routeを取ろうかと思う。


NPを更新するだけなら、TSHOOTが簡単でいいのだが、

Routeは重要かつ最後の受験(まだBSCIだった)からだいぶたっているから。

最近BGPをやっているので、知識を整理したい。



3560はオークションで入手したが、2万円もしなかった。

安くなったなあ・・・・。


が、重い。5kgはあるか?