作って学ぶルーティングプロトコル RustでBGPを実装
読んだ本
作って学ぶルーティングプロトコル RustでBGPを実装 (技術の泉シリーズ(NextPublishing)) | 三好 陵太 | 工学 | Kindleストア | Amazon
メモ
BGPプロトコルをRFCに倣ってRustで実装していく本。基本は写経していく感じで進めるだけ。
実装していくステートマシンの図。実装中は下図のどこをやってるのか意識しながら進める
https://scrapbox.io/files/63aef84809126e001e7bc6ce.png
IdleからOpenSentまでは基本的にイベント発生->ステート変更->イベント発生->ステート変更->....の処理を各種処理を構造体にして実装
OpenConfirmからEstablisedまではメッセージの作成と送信、メッセージの受信とイベント発行を繰り返すだけ
Update Message
新たなEvent
Loc-RIB
ただのルーティングテーブルなのですべての Peer で共有される。
Adj-RIB-In BGP
ネイバーから受信したルーティング情報。Peer ごとに生成する。
Adj-RIB-Out
BGPのネイバーに送信する / したルーティング情報。Peer ごとに生成する。
個々の経路更新の実装ややこしい...
その他
Miyoshi-Ryota/mrbgpdv2: Mini Rust BGP Daemon version 2 / Implementation BGP in Rust
元リポジトリ
YuheiNakasaka/how-to-create-bgp
写経したリポジトリ
読書メモ