VyOSでBGPを設定したみた

こーめいです。

VyOSでBGPのオプションがどの程度使えるか気になって設定してみました。

BGP設定

set protocols bgp <AS番号>

neighbor設定

set protocols bgp <AS番号> neighbor <ip address> remote-as <AS番号>

nexthop-self設定

set protocols bgp <AS番号> neighbor <ip address> nexthop-self

デフォルトルート設定

set protocols bgp <AS番号> neighbor <ip address> default-originate

デフォルトルートを配送したい時に設定します。

hello timer設定

set protocols bgp <AS番号> neighbor <ip address> timer keepalive <sec>

dead timer設定

set protocols bgp <AS番号> neighbor <ip address> timer holdtime <sec>

retry timer設定

set protocols bgp <AS番号> neighbor <ip address> timer connect <times>

update-source設定

set protocols bgp <AS番号> neighbor <ip address> update-source <ip address>

router id設定

set protocols bgp <AS番号> parameters router-id <ip address>

ダイレクトコネクト再配送設定

set protocols bgp <AS番号> redistribute connected metric <value>

スタティックルート再配送設定

set protocols bgp <AS番号> redistribute static metric <value>

ebgp マルチパス再配送設定

set protocols bgp <AS番号> maximum-paths ebgp <values>

以下、設定をshowコマンドで見た時の状態です。reditributeは省いています。

protocols {
    bgp 64513 {
        maximum-paths {
            ebgp 2
        }
        neighbor 172.16.1.2 {
            default-originate {
            }
            nexthop-self
            remote-as 64512
            timers {
                connect 1
                holdtime 4
                keepalive 1
            }
            update-source 172.16.1.1
        }
        parameters {
            router-id 172.16.1.1
        }

再配送部分は以下の通りです。

protocols {
    bgp 64513 {
           redistribute {
                 connected {
                     metric 1
                 }
                 static {
                     metric 1
                 }
             }
         }

合わせてRoute-map + prefix-listで再配送するstaticを絞ってみました。既に気づいているかと思いますが、双方とも暗黙のdenyで落としています。

policy {
    prefix-list static {
        rule 5 {
            action permit
            prefix 0.0.0.0/0
        }
    }
    route-map static {
        rule 1 {
            action permit
            match {
                ip {
                    address {
                        prefix-list static
                    }
                }
            }
        }
    }
protocols {
    bgp 64513 {
        redistribute {
            static {
                metric 10
                route-map static
            }
        }
    }

コンフィグレーションとは別で各設定は動作確認を取りましたが、マルチパスのbgpテーブルとルーティングテーブルはメモしておきます。

vyos@vyos:~$ show ip bgp           
BGP table version is 0, local router ID is 172.16.1.1
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
*  192.168.0.0      172.16.2.2           0             0 64512 i
*>                  172.16.1.2             0             0 64512 i

vyos@vyos:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
       I - ISIS, B - BGP, > - selected route, * - FIB route

S   0.0.0.0/0 [1/0] via 172.16.1.254
C>* 172.16.1.0/24 is directly connected, eth1
C>* 172.16.2.0/24 is directly connected, eth2
B>* 192.168.0.0/24 [20/0] via 172.16.1.2, eth1, 03:12:25
  *                       via 172.16.2.2, eth2, 03:12:25

ちなみにbgpの設定を対向側で落としたりしましたが、以下の通りログも出力されていました。Trap確認すれば良かった・・・。

$ cat /var/log/messages
 vyos bgpd[2549]: stream_read_try: read failed on fd 9: Connection reset by peer
 vyos bgpd[2549]: 172.16.1.2 [Error] bgp_read_packet error: Connection reset by peer

細かい点までBGPでやりたかったことは一通り確認できました。


シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。

このエントリーをはてなブックマークに追加

Vyatta仮想ルータ活用ガイド (Software Design plus)

Vyatta仮想ルータ活用ガイド (Software Design plus)

Cisco BGP‐4コマンド設定ハンドブック―Cisco IOSで使うすべてのBGP‐4コマンドを完全詳解 (CCIE professional development)

Cisco BGP‐4コマンド設定ハンドブック―Cisco IOSで使うすべてのBGP‐4コマンドを完全詳解 (CCIE professional development)