VultrのサーバでBGPフルルートを受信してみた
ネットワークをある程度囓った事のある人ならBGPフルルートに憧れる物だが、
実際に弄ってトラフィックを操作している人は限られるのが現状。
フルルートを弄る為に有志が集まってAS運用したり個人でAS番号を取得するガチ勢もいるが、
本格的に設備を構えず手軽にフルルートを弄ってみたい人も多いと思う。
以前も書いた通りVultrでフルルート受信リクエストを出せば実際にフルルートを貰えるので、
Vultrで仮想サーバを契約してIPv4とIPv6のBGPフルルートを受信してみた。
先陣も多く申請手順はググれば出てくるが、御自宅でフルルートの記事が一番わかりやすかった。
記事にも書いてない細かい調整は必要だが誤自宅の人なら不明点も自力で解決出来ると思うので、
筆者がハマったポイントと実際に利用したFRRoutingのコンフィグを載せようと思う。
- BGPがEstablishedなのにフルルートを受信出来ない
最初にコレが発生したので非常に困った (´・ω・`)
ネクストホップが存在せずルーティングに乗らないのは良くあるが、そもそも受信してくれなかった。
自宅ラボの検証環境も用いてルーティングを確実に受信出来るコンフィグを投入し、
BGP StateももEstablishedに遷移しているのにピアからルーティングが一向に来なくて途方に暮れた。
どうやっても自力で解決出来なかったので、Vultrサポートに下記の問い合わせを投げた所、
「設定ミスっていたわ。ゴメン!」と返答が来て無事にフルルートを受信出来る様になった。
Dear Vultr Support,
After receiving the ticket "XXX-XXXXX",
I installed CentOS and FRRouting on my server instance and configured BGP peer.
I was able to set up a peer with Vultr BGP router,
But after 2 days, I still can't receive a full route.
The configuration of FRRouting and the status of the peer are as follows.
- FRRouting Config
> AS20473# show running-config
- BGP neighbor
> AS20473# show ip bgp neighbors
I think the FRRouting settings are correct,
But is there any reason why I cannot receive BGP full routes?
Also, can you tell me the status of the Vultr facility?
Regards, XXXXXX.
|
英文を全く書かないので文法が正しいか判らないが、コレで伝えたい事は上手く伝わった模様。
文で説明するのが面倒だったので、コンフィグとステータスを載せたのが良かったのかもしれない。
もしも、BGPピアを張れない状態になったら遠慮無くサポートに助けを求めると良いと思う。
- サーバスペックとプリペイド料金を迷う
Vultrのサーバはスペック毎に通信量が設定されており、通信量を超過すると面倒臭い事になる。
さらに、支払いは事前にお金を払うプリペイド方式がメインとなっており、
サーバで動かしたいサービスの通信量を予測しながらサーバスペックを選択して支払う必要がある。
勿論、利用分のみクレジットカードで引き落とす事も出来るらしいが、
筆者はオーソドックスにクレジットカード支払いプリペイド方式で払った。
ココで問題となったのはサーバスペックの予測が付かず、インスタンス選定に難儀した事。
という事で、実際に14日間起動しっぱなしにしつつ、
思い出した時にBGPステータスを表示するコマンドを打ち込んだ通信量が次の通り。
意外と通信量を抑える事が出来た (`・ω・´)
コレはVultrのインスタンスFWでBGPセッション用のTCP:179と、
サーバ管理用のTCP:22以外を全部遮断する事で不要なトラフィックが来なくなった結果だと思う。
LookingGlass用途ならフルルートを受信しつつルータのコマンドさえ打てれば良いので、
通信対象を絞る事で気にする必要が無くなる。
メモリの方はフルルートを処理する為に2GB位の容量が必要になってくる。
Linuxを最適化すればワンランク下の1GBメモリでも動くと思うが、
2GBメモリでもモタつく時があったので止めた方が賢明だと思う。
- BGPフルルートを受信出来るコンフィグがわからない
根本的な話だがフルルートを受信するコンフィグを書いた事が無いので手探りだった。
ググればCiscoやJuniperのBGPサンプルは出てくるが、FRRoutingの様にLinuxルータの物は皆無となる。
という事で、筆者が実際に使ったFRRoutingでBGPフルルートを受信するサンプルコンフィグを載せておく。
AS20473# show running-config
Building configuration...
Current configuration:
!
frr version 7.0
frr defaults traditional
hostname AS20473
log file /var/log/frr/frr.log
service integrated-vtysh-config
!
ip route 169.254.169.254/32 207.148.XXX.ZZZ
ipv6 route 2001:19f0:ffff::1/128 fe80::fc00:XXX:ZZZ:1
!
interface eth0
ip address 207.148.XXX.YYY/23
ipv6 address 2001:19f0:7001:5aa7:WWW:XXX:YYY:ZZZ/64
!
router bgp 4288000AAA
bgp router-id 207.148.XXX.YYY
neighbor 169.254.169.254 remote-as 64AAA
neighbor 169.254.169.254 password BGPPASSWORDXXXXX
neighbor 169.254.169.254 ebgp-multihop 2
neighbor 169.254.169.254 disable-connected-check
neighbor 169.254.169.254 update-source 207.148.XXX.YYY
neighbor 2001:19f0:ffff::1 remote-as 64AAA
neighbor 2001:19f0:ffff::1 password BGPPASSWORDXXXXX
neighbor 2001:19f0:ffff::1 ebgp-multihop 2
neighbor 2001:19f0:ffff::1 disable-connected-check
neighbor 2001:19f0:ffff::1 update-source 2001:19f0:7001:5aa7:WWW:XXX:YYY:ZZZ
!
address-family ipv4 unicast
neighbor 169.254.169.254 soft-reconfiguration inbound
no neighbor 2001:19f0:ffff::1 activate
exit-address-family
!
address-family ipv6 unicast
neighbor 2001:19f0:ffff::1 activate
neighbor 2001:19f0:ffff::1 soft-reconfiguration inbound
exit-address-family
!
line vty
!
end
|
ひとまず動けばOKのコンセプトで書いたのでセキュリティ設定などは追加で入れる必要がある。
ハマりポイントとしては、BGPピアと接続出来る様にスタティックルートを書いておかないと、
BGPセッションを張れてもフルルートがルーティングテーブルに載らなくなる。
OSに細工をするとスタティックルートを書かなくてもフルルートがルーティングに載るのだが、
今回の構成で手っ取り早く確実にルーティングを載せる方法はスタティックルートの設定だった。
………
Vultrは日本であまり聞かない事や管理画面が英語なので敬遠しがちだが、
AWSや国産VPSで無い面白い機能も実装されているのでエンジニアなら1回は触ると良いと思う。
筆者も初めてVultrを触ってみたが遊び程度なら意外と使い物になる事がわかったので、
作って壊す用途でまた契約するかも知れない。
という事でフルルートを受信する事が出来たので、これからインスタンスを削除してこねば。