quaggaでBGPを設定してみる
こーめいです。
Linuxでルーティングプロトコルを回すニーズが少しづつ増えて来たのかなと思ってquaggaの設定と動作を確認しておきます。
quaggaは石黒邦宏氏が開発したzebraの派生ソフトウェアです。ciscoのIOSライクな操作(というよりそのまま)が可能です。
- quaggaインストール
- quagga初期設定/起動
- BGP設定
- 動作確認
quaggaインストール
バージョンにこだわりがなければyumからインストールが一番楽です。こだわりがある人は公式から落としてきてください。
$ yum install quagga
本日時点でバージョンは0.99.15です。/etc/quagga配下にconfファイルが作成されますので確認します。
confファイルを見ればわかりますが、ipv4であれば以下に対応しています。
- bgp
- ospf
- rip
[komei@localhost ~]$ sudo ls /etc/quagga/ bgpd.conf.sample ospfd.conf.sample vtysh.conf zebra.conf.sample bgpd.conf.sample2 ripd.conf.sample vtysh.conf.sample ospf6d.conf.sample ripngd.conf.sample zebra.conf
quagga初期設定/起動
まずはzebra.confを設定します。quaggaはvty経由でログインします。hostname/passwordを初期設定して起動します。
[komei@localhost ~]$ sudo cat /etc/quagga/zebra.conf hostname zebra password zebra log stdout [komei@localhost ~]$ sudo /etc/init.d/zebra start Starting zebra: [ OK ]
今回はbgoを使用しますので、bgpd.confを設定します。サンプルコンフィグをのぞいてみます。
[komei@localhost ~]$ sudo cat /etc/quagga/bgpd.conf.sample ! -*- bgp -*- ! ! BGPd sample configuratin file ! ! $Id: bgpd.conf.sample,v 1.1 2002/12/13 20:15:29 paul Exp $ ! hostname bgpd password zebra !enable password please-set-at-here ! !bgp mulitple-instance ! router bgp 7675 ! bgp router-id 10.0.0.1 ! network 10.0.0.0/8 ! neighbor 10.0.0.2 remote-as 7675 ! neighbor 10.0.0.2 route-map set-nexthop out ! neighbor 10.0.0.2 ebgp-multihop ! neighbor 10.0.0.2 next-hop-self ! ! access-list all permit any ! !route-map set-nexthop permit 10 ! match ip address all ! set ip next-hop 10.0.0.1 ! !log file bgpd.log ! log stdout
文頭に「!」がついているものがほとんどです。これはIOSと同様でコメントアウトです。今回、後からログインして設定するのでこの設定を流用して起動します。
[komei@localhost ~]$ sudo mv /etc/quagga/bgpd.conf.sample /etc/quagga/bgpd.conf [komei@localhost ~]$ sudo /etc/init.d/bgpd start Starting bgpd: [ OK ]
quaggaはvty経由でログインするのですが、使用するポートはプロトコルごとに違います。bgpは2605です。
[komei@localhost ~]$ telnet localhost 2605 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Hello, this is Quagga (version 0.99.15). Copyright 1996-2005 Kunihiro Ishiguro, et al. User Access Verification Password: bgpd>
先ほど確認したパスワードを使用してログインできました。石黒氏の名前が確認できます。では、基本コマンドを確認してみます。
- 特権モード
bgpd> en bgpd#
- バージョン確認
bgpd# show ver Quagga 0.99.15 (bgpd). Copyright 1996-2005 Kunihiro Ishiguro, et al.
BGP設定
bgpの基本的な設定として以下の通り設定してみます。
bgpd# show run Building configuration... Current configuration: ! hostname bgpd log file /var/log/quagga/bgpd.log ! password zebra ! router bgp 64512 bgp router-id 172.16.1.2 network 192.168.0.0/24 neighbor 172.16.1.1 remote-as 64513 neighbor 172.16.1.1 timers 1 4 neighbor 172.16.1.1 timers connect 1 ! line vty ! end
ここでは設定しませんでしたが、ebgp-multihopやnext-hop-selfなど重要なコマンドも実装しているようです。
この環境ではBGP PeerとしてVyOSを使用してみました。今回使用したVyOSではDead値が4以上からの設定でしたので、timersは1 4で設定しています。
それではshow ip bgp関連コマンドを使用して確認します。
bgpd# show ip bgp summary BGP router identifier 172.16.1.2, local AS number 64512 RIB entries 6, using 672 bytes of memory Peers 1, using 4560 bytes of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 172.16.1.1 4 64513 2777 2777 0 0 0 00:46:16 3 Total number of neighbors 1 bgpd# show ip bgp neighbors BGP neighbor is 172.16.1.1, remote AS 64513, local AS 64512, external link BGP version 4, remote router ID 172.16.1.1 BGP state = Established, up for 00:46:26 Last read 00:00:00, hold time is 4, keepalive interval is 1 seconds Configured hold time is 4, keepalive interval is 1 seconds Neighbor capabilities: 4 Byte AS: advertised and received Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 1 2 Keepalives: 2785 2784 Route Refresh: 0 0 Capability: 0 0 Total: 2787 2787 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast Community attribute sent to this neighbor(both) 3 accepted prefixes Connections established 1; dropped 0 Last reset never Local host: 172.16.1.2, Local port: 52045 Foreign host: 172.16.1.1, Foreign port: 179 Nexthop: 172.16.1.2 Nexthop global: :: Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off
問題なさそうです。続いてbgpテーブルを確認します。しっかりとルートを受けとっていることを確認できました。192.168.0.0/24はnetworkコマンドで自身がbgpテーブルに乗せたルートなのでibgp生成になっています。
bgpd# show ip bgp BGP table version is 0, local router ID is 172.16.1.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 0.0.0.0 172.16.1.1 0 64513 i *> 172.16.1.0/24 172.16.1.1 1 0 64513 ? *> 192.168.0.0 0.0.0.0 0 32768 i Total number of prefixes 4
コンフィグにもありましたが、ログは以下に生成されます。 /var/log/quagga/bgpd.log
今回はquaggaの話だけとなりましたが、文中に記載した通りVyOSでもBGPを設定していますので、そのあたりもエントリーを書きたいと思います。
シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。
- 作者: Iljitsch van Beijnum,近藤邦昭
- 出版社/メーカー: オーム社
- 発売日: 2004/07
- メディア: 単行本
- 購入: 1人 クリック: 8回
- この商品を含むブログを見る
Cisco BGP‐4コマンド設定ハンドブック―Cisco IOSで使うすべてのBGP‐4コマンドを完全詳解 (CCIE professional development)
- 作者: ウィリアム・R.パークハースト,シスコシステムズ,William R. Parkhurst,糸川洋
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2002/07/23
- メディア: 単行本
- 購入: 1人 クリック: 19回
- この商品を含むブログ (2件) を見る