じゃあ、おうちで学べる

本能を呼び覚ますこのコードに、君は抗えるか

BGP<BGPネイバーの状態>

BGPネイバーを確立して、ルート情報を交換することができるようになるまで次の6つの状態を遷移します。

 

・Idle

BGPプロセスの初期状態、ネイバーとのTCP接続のプロセスを開始してConnect状態へ移行する

 

・Connect

ネイバーとのTCP接続が完了するのを待っている状態。

TCP接続を正常に確立できれば、

BGP OPENメッセージを送信してOpenSent状態に移行する。

もし、TCP接続を確立できなければActive状態に移行する

 

・Active

ネイバーとのTCPプロセスを開始している状態。

TCP接続が正常に確立されればOPENメッセージを送信してOpenSent状態に移行する。

TCP接続が確立できなければ再びConnect状態に戻る。

ネイバーから予期しないIPアドレスTCP接続が行われるとActiveの状態のままとなる。

※Active状態にとどまってしまう場合は、設定ミスがほとんどなのでネイバーの設定を確認する。

 

・OpenSent

OPENメッセージをネイバーに送信しネイバーからのOPENメッセージを待っている状態。

OPENメッセージを受け取ると中身をチェックする。

エラーがあればNOTIFICATIONメッセージを送信しIdle状態に移行する。

エラーがなければKEEPALIVEメッセージを送信してホールドタイムをネゴシエーションする。

また、ネイバーのAS番号からIBGPネイバーかEBGPネイバーを決定し、OpenConfirm状態に移行する。

 

・OpenConfirm

KEEPALIVEもしくはNOTIFICATIONを待っている状態。

KEEPALIVEメッセージを受け取ればEstablished状態に移行する。

NOTIFICATIONメッセージを受け取ればIdle 状態に移行する。

 

・Established

BGPネイバーが完全に確立している状態。

Established状態でUPDATEメッセージを交換することができます。

KEEPALIVEもしくはUPDATEを受信するごとにホールドタイムをリセット。

NOTIFICATIONメッセージを受信するとIdle状態に移行。

 

 

おおまかな流れを図に描いてみました ↓↓↓

 

 

f:id:asojuku-abcc-cn:20160220144748p:plain