Zebra

更新日2009-09-12 (土) 17:59:12

zebraはTCP/IPのルーティングを行うフリー・ソフトでサポートしているルーティング・プロトコルは,IPv4用はBGP-4,RIPv1,RIPv2,OSPFv2など,IPv6用はRIPng,BGP4+,OSPFv3など。quaagaというzebraの後続版もあるようだ

今回はripを利用するためにインストールしてみる。

それぞれのプロトコルに対応したデーモンがあり、それをzebraというデーモンを通してKeranelのルーティングテーブルに書き込みをしている。またネットワークに経路情報を発信する。

実験環境

 192.168.50.0/24
       |
       |
       | 192.168.50.1 (eth1)
----------------
|  host1       |
|              |
----------------
       | 192.168.10.43 (eth0)
       |
       |
       | 192.168.10.44 (eth0)
----------------
|  host2       |
|              |
----------------
       | 192.168.60.1 (eth1)
       |
       |
 192.168.60.0/24

それぞれのインターフェイスにパケットがフォワードされるように

/etc/sysctl.confを変更

net.ipv4.ip_forward = 1  0から1

有効にするため

# sysctl -p

インストール

http://www.zebra.org/から Downlad

もしかすると readline-develが必要かもしれないのでインストール

$ tar zxvf zebra-0.95a.tar.gz
$ cd zebra-0.95a
$ ./configure
$ make
$ su
# make install

環境設定

環境ファイルは /usr/local/etcにプログラムは /usr/loca/sbinにインストールされる

# cd /usr/local/etc/
# cp zebra.conf.sample zebra.conf
# cp ripd.conf.sample ripd.conf

zebra.confは特に変更場所はない。ただし、対話モードにログインするときのパスワードが記入されているので実運用時変更の必要あり。

ripd.conf

[host1側]

!        <==コメント
! Zebra configuration saved from vty
!   2009/09/10 20:49:46
!
hostname ripd
password zebra
log stdout
!
interface lo
!
interface eth0   <==インターフェイスの指定
!
interface sit0
!
router rip       <== RIPを使うための宣言
! passive-interface eth0  <== コメントアウトを外すと受信した全てのRIP
                              メッセージを解釈するが、
                              そのインターフェースから自分は発信しない
!
 network 192.168.10.0/24  <== RIP情報を流すネットワークを指定
 network 192.168.50.0/24  <== RIP情報を流すネットワークを指定(両方必要なようだ)
!
line vty
!

[host2側]

!
! Zebra configuration saved from vty
!   2009/09/10 13:05:42
!
hostname ripd
password zebra
log stdout
!
interface lo
!
interface eth0
!
interface sit0
!
router rip
 network 192.168.10.0/24
 network 192.168.60.0/24
!
line vty
!

起動

# /usr/local/sbin/zebra -d
# /usr/local/sbin/ripd -d

確認

host1で(host2も同じ)仮想端末(zebra:2601)にログイン

$ telnet localhost 2601
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Hello, this is zebra (version 0.95a).
Copyright 1996-2004 Kunihiro Ishiguro.


User Access Verification 

Password:  <=zebra(zebra.confのパスワード)
Router> show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
       B - BGP, > - selected route, * - FIB route

K>* 0.0.0.0/0 via 192.168.10.253, eth0
C>* 127.0.0.0/8 is directly connected, lo
K>* 169.254.0.0/16 is directly connected, eth1
C>* 192.168.10.0/24 is directly connected, eth0
R>* 192.168.50.0/24 [120/2] via 192.168.10.43, eth0, 00:00:12
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rip情報が追加されている
C>* 192.168.60.0/24 is directly connected, eth1

shellでも確認

$ netstat -rn
カーネルIP経路テーブル
受信先サイト    ゲートウェイ    ネットマスク   フラグ   MSS Window  irtt インターフェース
192.168.50.0    192.168.10.43   255.255.255.0   UG        0 0          0 eth0
^^^^^^^^^^^^^^^^^^^^^^^^^
追加されている。
192.168.60.0    0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         192.168.10.253  0.0.0.0         UG        0 0          0 eth0

仮想端末のポート

参考


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS