🌟
【VITOTHON】quagga を使って BGP ルータ jail を作る
FreeBSD に jail
を組み込んだアプライアンス VITOTHON[1][2] を使用して BGP の練習をします。この記事では、以下の過程を説明します。
- VITOTHON を使ってルータ用
jail
flavour を作成する - 作成した
jail
に quagga をインストールする - 作成した
jail
を BGP ルータとして動作させて、AS 間で疎通確認を行う
今回作成するネットワーク図
赤が AS65001、青が AS65002 です。
server01 - server02
間で ping が通れば OK です。
jail
を用意する
ルータ用 [root@vitothon /jails/flavours]# cp -r example router
jail
に quagga をインストールする
[root@vitothon /jails/flavours]# mkdir router/pkg
[root@vitothon /jails]# cd router/pkg/
[root@vitothon /jails/flavours/router/pkg]# pkg fetch --o . -d quagga
[root@vitothon /jails/flavours/router/pkg]# mv All/* .
[root@vitothon /jails/flavours/router/pkg]# ls
All indexinfo-0.3.1.pkg quagga-1.2.4_11.pkg readline-8.2.1.pkg
[root@vitothon /jails/flavours/router/pkg]# rm -r All
quagga の設定
[root@vitothon /jails/bin]# jls
JID IP Address Hostname Path
6 server01 /jails/server01
7 server02 /jails/server02
8 router01 /jails/router01
9 router02 /jails/router02
10 bridge00 /jails/bridge00
11 bridge01 /jails/bridge01
12 bridge02 /jails/bridge02
[root@vitothon /jails/bin]# jexec router01 /bin/sh
# vi /etc/rc.conf // 以下 2 行を追記
quagga_enable="YES"
quagga_daemons="zebra bgpd"
// bgpd.conf と zebra.conf を用意する
# cd /usr/local/etc/
# touch bgpd.conf // 中身は以下
hostname Router
password zebra
# touch zebra.conf // 中身は以下
hostname Router
password zebra
# service quagga start
# vtysh
Hello, this is Quagga (version 1.2.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
router01# conf t
router01(config)# router bgp 65001
router01(config-router)# network 10.0.1.0/24
router02(config-router)# bgp router-id 192.168.100.1
router01(config-router)# neighbor 192.168.100.2 remote-as 65002
router01(config-router)# end
router01# write mem
Building Configuration...
Configuration saved to /usr/local/etc/quagga/zebra.conf
Configuration saved to /usr/local/etc/quagga/bgpd.conf
[OK]
// router02 も同様に設定
router02# conf t
router02(config)# router bgp 65002
router02(config-router)# network 10.0.2.0/24
router02(config-router)# bgp router-id 192.168.100.2
router02(config-router)# neighbor 192.168.100.1 remote-as 65001
router02(config-router)# end
router02# write mem
Building Configuration...
Configuration saved to /usr/local/etc/quagga/bgpd.conf
[OK]
// 確認
router02# show ip bgp
BGP table version is 0, local router ID is 192.168.100.2
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.0.1.0/24 192.168.100.1 0 0 65001 i
*> 10.0.2.0/24 0.0.0.0 0 32768 i
# ここで、2つのネットワークが見えていれば OK です。
# 最後に server02 に入って、server01 に向けて ping を打ってみてください。
# 設定が間違っていなければ ping が通るはずです。
Discussion