はじめに
こんにちは、エンジニアの わた です。
最近クラウド環境構築案件が多くBGPを使用する機会が増えてきました。
先日、BGPでなかなか経路情報が送られてこないことがあったので、
改めてBGPにおけるシーケンスについてまとめてみました。
BGP自体についてはまた別の記事でまとめます。
そもそもBGPとは
BGPとは「Border Gateway Protocol」の略で、異なるネットワーク間での経路情報を「動的」に交換するプロトコルです。
それぞのれネットワークのことをAS(自律システム)と呼び、同じAS内をiBGP、異なるASをeBGPと呼びます。
スタティックルートしかやってなかった自分からすると、いい感じにルーティングしてくれる!めっちゃ便利じゃん!ってなりました。
BGPのシーケンス
さて、ここから本題となります。
BGPの開始、終了シーケンスおよび、各種メッセージについてまとめます。
BGPの開始シーケンス

出典:SEの道標
BGPの終了シーケンス

出典:SEの道標
BGPメッセージの種類
| メッセージ | 内容 |
|---|---|
| Open | BGP開始 |
| Update | ルート情報交換 |
| Notificate | エラーや警告を通知 |
| KeepAlive | Openの返事、BGPネイバー同士の死活監視 |
| Route-Refresh | ルート情報の一括削除を相手に通知 |
Openメッセージ
BGP開始のメッセージ、以下の情報を送付。
・AS番号
・ホールドタイム
・BGPルータID(相手はこのIDでルータを識別する)
Updateメッセージ
到達性がなくなったルート情報、到達性があるルート情報を通知。
通知のタイミングは以下の4つ。
①Open→KeepAliveの直後
②トポロジ変更による情報更新(リンクダウンに伴う経路変更発生時など)
③network等コマンド設定直後
④Route-Refresh設定直後
route map 等のコマンドで属性変更した場合はUpdateによるルート情報の更新は行われない。
詳細は後述するRoute-Refreshメッセージを参照。
Notificationメッセージ
エラー通知などを行いBGPセッションを終了する。
エラーコードについてはRFC 4271 の Section 4.5を参照。
KeepAliveメッセージ
BGPネイバーに自分が生きていると伝え続けるメッセージ。Openの返事としてもつかわれる。
Route-Refreshメッセージ
clear ip bgp * soft コマンドなどでルート情報を一括削除した際に相手へルート情報を一括削除したことを通知し、相手からUpdate通知を送ってもらうよう促す。
自身のルータでprefix-listの変更を行っても自動で相手側に経路の再配送依頼は行われないため、上記の対応を行う。
「clear ip bgp * soft」コマンドはよく使うことがあるので覚えておきましょう。
まとめ
今回はBGPのシーケンスについてまとめました。
やっぱりシーケンスがわかると通信のイメージがしやすいですね。
参考サイト
SEの道標
【図解】BGPの広報シーケンスとメッセージ種類/フォーマット,UPDATEのタイミング
https://milestone-of-se.nesuke.com/nw-advanced/bgp/bgp-sequence-message-format/