1. HOME
  2. ブログ
  3. ブログ
  4. テックブログ
  5. テックブログ
  6. GoBGPとVyOSでフルルート検証 – GoBGP編

Article

記事一覧

テックブログ

GoBGPとVyOSでフルルート検証 – GoBGP編

こんにちは。kobayashiです。

BGPのフルルートを検証する際にGoBGPを使用してみましたのでその方法を記載します。
GoBGPを使用するOSにはUbuntuを使用し、フルルートをVyOSで受け取っています。

【使用OS】
GoBGP : Ubuntu Server 16.04 LTS
VyOS : VyOS 1.1.8(Helium)

【AS番号】
GoBGP : AS65000(172.16.0.1)
VyOS : AS65001(172.16.0.2)

まずはGoBGPを使用してフルルートを利用します。
※Ubuntuのインストール方法は割愛します

gobgpd用のフォルダを作成し、プログラムをダウンロード+解凍します。

$ mkdir gobgp
$ cd gobgp
$ wget https://github.com/osrg/gobgp/releases/download/v2.2.0/gobgp_2.2.0_linux_amd64.tar.gz
$ tar zxvf gobgp_2.2.0_linux_amd64.tar.gz

gobgpdの設定ファイルを作成します。

$ vi gobgpd.conf
[global.config]
  as = 65000
  router-id = "172.16.0.1"

[[neighbors]]
  [neighbors.config]
    neighbor-address = "172.16.0.2"
    auth-password = "password"
    peer-as = 65001

フルルートが記録されたファイルを取得し、解凍します

$ wget http://archive.routeviews.org/route-views.wide/bgpdata/2019.06/RIBS/rib.20190628.0400.bz2
$ bzip2 -d rib.20190628.0400.bz2

※最新のファイルは以下から辿れば取得可能です
http://archive.routeviews.org/route-views.wide/bgpdata/

gobgpdの補助スクリプトを3つダウンロードし、実行します。

$ wget https://raw.githubusercontent.com/osrg/gobgp/master/tools/completion/gobgp-completion.bash
$ wget https://raw.githubusercontent.com/osrg/gobgp/master/tools/completion/gobgp-static-completion.bash
$ wget https://raw.githubusercontent.com/osrg/gobgp/master/tools/completion/gobgp-dynamic-completion.bash
$ source gobgp-completion.bash

ubuntuのIPアドレスがDHCPの場合にはIPを固定します。

$ sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
↓
auto eth0
    iface eth0 inet static         # "static"に変更
    address 172.16.0.1          # 割り当てるIPアドレス
    netmask 255.255.255.0          # サブネットマスク
$ sudo reboot ※とりあえず再起動して反映

ここまででGoBGPを使用する準備が出来ました。
早速GoBGPを使用してみましょう。
※この手順以降、OSを再起動した場合にはこれ以降を実行すればOKです

// gobgpdをscreenで起動
// コマンドに&を付けてバックグラウンド起動するとすぐに落ちるのでscreenを使用します
$ screen -AmdS gobgp sudo -E ./gobgpd -f gobgpd.conf
// 一度セッションを切り替える
// セッションを切り替えたら、sudo のパスワード入力で止まっているので
// sudoのパスワードを入れてあげます
$ screen -r gobgp

ログっぽいのが表示されればOKです。
「Ctrl + a を押した後 d」を押してセッションをしまいます。

次に、ダウンロード&解凍したフルルート情報を注入します。 先の手順でGoBGPを先に起動してからでないと「context deadline exceeded」というエラーが出るので注意です。

$ ./gobgp mrt inject global rib.20190628.0400.bz2

以上でフルルートを使用しつつVyOS宛に広報する準備ができました。

//BGPテーブルを表示(時間がかなり掛かるし多分メモリ足りなくなるのでやらないほうが良い)
 ./gobgp global rib | head -n 20

// 8.8.8.8のIPアドレス形式で検索
./gobgp global rib 8.8.8.8

   Network              Next Hop             AS_PATH              Age        Attrs
*> 8.8.8.0/24           202.249.2.86         7500 2516 15169      00:01:49   [{Origin: i} {Communities: 2516:10, 2516:1101, 2516:2001, 65000:31, 65001:50, 65001:1000}]
*  8.8.8.0/24           202.249.2.169        2497 15169           00:01:49   [{Origin: i}]

フルルートを受け取るVyOS側の設定方法は次回。

この記事が気に入ったら
いいね ! してください

Twitter で