週末にずっと外に出ずwinゲー「水色散歩道」をプレイ。出かけたのもコンビニだけ。という週末もダメなのでまた勉強しようかなと。
ずっと初級のCCNA資格でも恥ずかしいので、CCNPを考えた。最短で受かっても7万円強の資格とか。。。アホか。
ネットを調べてたら、ubuntuでラボ環境を作れるとか。無料でできることはやってみなくてはヤカン。
数台の仮想ルータを相互接続させてみる。
まず早速virtualboxをインストール。
sudo apt-get install virtualbox
quagga用には、ubuntuのサーバ版イメージを適当に落としてみる。(英語/日本語)
Vyattaは、オフィシャルからサクッとダウンロード。
VirtualboxのGUI管理画面から、「仮想メディアマネージャ」で解凍したイメージを登録する。vmdkというイメージ形式は、懐かしのvmware用イメージなのだが、現在はネイティブで使用できるようだ。 登録してから「新規」マシーンを2台それぞれ作ってみる。
「設定」で仮想マシンの環境をいじれるが、今回は2台ともネットワークを「ホストインターフェイス」=eth1(BBルータへのポート)にした。同一セグメントでネイバー関係を形成し、背中にダミーのloopbackを作ってテーブルを交換した気分になる。(まずripで行います)
quagga用のubuntuから起動。
sudo ifconfig ethX up
sudo ifconfig ethX address 10.0.0.5 netmask 255.255.255.0
sudo nano /etc/resolv.conf ** 名前サーバをBBルータに
sudo route add default gw 10.0.0.1
sudo apt-get install quagga
これでquaggaは勝手に起動するが、/etc/quagga/以下のconfファイルがないので何も起こらない。手動で面倒だが、/usr/share/doc/quagga/examples/の中からzebra.conf.sample, vtysh.conf.sample, ripd.conf.sampleをコピーする。名前から.sampleを除去するのも手動。
再起動はsudo /etc/init.d/quagga restart
sudo vtyshというコマンドで、やっと仮想ルータに触れる。嬉しいことに、quaggaはciscoのコマンドインターフェイスのそっくりクローンみたいな設計なのです。
まあ細かい話は置いといてsh runを晒す。
Current configuration:
!
end
hostname Router
hostname ripd
log stdout
hostname quagga710
!
password kdkkd
enable password kdfjefa
!
interface eth1
ip address 10.0.0.5/24
no ipv6 nd suppress-ra
!
router rip
version 2
redistribute connected ** これがないとloopbackを宣伝しない
network eth1
!
line vty
!
続けてvyattaの仮想マシンを起動する。これは、起動した瞬間からルータのインターフェイスなのだ。(アプライアンスvm)
ユーザモードから、configure というコマンドで設定モードに入れる。?とタブとlistコマンドを活用すると、マニュアルなしで使えるんじゃない?
show configrationを部分的に晒す。
interfaces {
ethernet eth2 {
address 10.0.0.50/24
hw-id 00:00:00:xx:xx
}
loopback lo {
address 10.100.100.1/24
}
}
protcols {
rip {
interface eth2
network 10.0.0.0/24
redistribute {
connected {
}
}
}
}
system {
host-name yatta
....etc.
NECルータもRip v2でルートを吐いてるので、3者が通信していることを確認する。
quaggaではshow ip routeとshow ip rip statusで確認。
vyattaでもshow ip routeとshow ip rip statusで同じでした。
vyatta@yatta:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
I - ISIS, B - BGP, > - selected route, * - FIB route
R>* 0.0.0.0/0 [120/3] via 10.0.0.1, eth2, 00:05:24
C>* 10.0.0.0/24 is directly connected, eth2
C>* 10.100.100.0/24 is directly connected, lo
R>* 10.255.255.0/24 [120/2] via 10.0.0.5, eth2, 00:05:24
C>* 127.0.0.0/8 is directly connected, lo
いちおうshow ip rip status @ vyatta
vyatta@yatta:~$ show ip rip status
Routing Protocol is "rip"
Sending updates every 30 seconds with +/-50%, next due in 1 seconds
Timeout after 180 seconds, garbage collect after 120 seconds
Outgoing update filter list for all interface is not set
Incoming update filter list for all interface is not set
Default redistribution metric is 1
Redistributing: connected
Default version control: send version 2, receive any version
Interface Send Recv Key-chain
eth2 2 1 2
Routing for Networks:
10.0.0.0/24
eth2
Routing Information Sources:
Gateway BadPackets BadRoutes Distance Last Update
10.0.0.5 0 0 120 00:00:25
10.0.0.1 0 0 120 00:00:02
Distance: (default is 120)
vboxの仮想マシンのシェルから、直接コピー&ペーストできないので上ののも手打ちデス。NECのルータが強気に0.0.0.0/0を吐きまくってるのが笑った。
何でquaggaマシンにtelnet接続できないのか考えたのだが、特別なポート(2601番?)で待ちうけしているらしい。これでコピペ可能になるかな。