BGPでジェンガしてみる2(最小設定編)

## 概要
BGPの最小設定の検証です。

前回の構築編では、基本的な設定を投入してBGP接続が確立できることを確認しました。
今回の最小設定編では、デフォルトと重複している設定や構成上の不要な設定を削除していきます。

https://qiita.com/k_kuri/items/ab156938fc26d171c6f6

**設定コマンドと用途**

|コマンド|用途| 
|-------|----|
|router bgp|ルータプロセスと、ルータが属するAS番号を定義する|
|remote-as|BGPネイバを形成する|
|ebgp-multihop|直接接続されていない2つのネットワークを接続する|
|update-source|BGP接続の送信元を指定する|
|next-hop-self|ネクストホップを自身のアドレスに設定する|

**確認コマンドと用途**
|コマンド|用途| 
|-------|----|
|#show ip bgp all summary|BGP接続の確認　State/PfxRcd が数字であればOK|
|#show tcp|TCP接続の確認　TTLが表示される|
|#show ip bgp|BGPテーブルの確認　ネクストホップが表示される|


**参考にしたサイト**
こちらを確認しながら設定を変更していきます。

https://www.cisco.com/c/ja_jp/support/docs/ip/border-gateway-protocol-bgp/26634-bgp-toc.html

## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/e0eb541e-58d8-88a5-08ee-a499adccdf2e.png)


**各区間の設定**
省略していますが、IBGP区間はフルメッシュで接続しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/570bc3a4-649f-9d2c-08dd-cebeb9f01e08.png)

##
**では、不要な設定を削除していきます。**

::: note info 
router bgpとremote-asは今回は残します。
:::



## ebgp-multihop
|コマンド|用途| 
|-------|----|
|ebgp-multihop|直接接続されていない2つのネットワークを接続する|

ebgp-multihopはTTLの設定を変更することで直接接続されていない2つのネットワークを接続します。
multihopの後の値はTTLで、EBGPのデフォルトの値は1、IBGPは255です。
つまり
・直接接続されていないLoopback IFのため、TTLが2以上必要　かつ
・EBGPの場合
このコマンドが必要です。

**物理IFで直接接続されているR4とR2の設定を削除します。**
表の灰色が削除する設定です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/c8c06efe-7f23-a40d-d611-335d8d93e7f3.png)

**IBGP区間も削除します。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/f83c44d8-9529-ac5f-f2f8-1340d40c7e7e.png)


削除後の **#show tcp**です。
R4とR1のTTLがデフォルトに戻っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/d144177f-59ec-0a85-1f05-4df9c2818b17.png)


なんで2なの？と思っていましたが、2-255であれば問題ないようです。
値を指定しない場合は255になりました。

## update-source
|コマンド|用途| 
|-------|----|
|update-source|BGP接続の送信元を指定する|

デフォルトを確認します。
こちらにそれらしい記載がありました。

https://www.cisco.com/c/ja_jp/support/docs/ip/border-gateway-protocol-bgp/13751-23.html

>デフォルトでは、ピア関係はピアルータに最も近いインターフェイスのIPアドレスで確立されます。

デフォルトは一番近い物理IFのようです。

**物理IFを指定しているR4とR2の設定を削除します。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/ecc5bc98-87f8-617d-9e0f-1622c49ddde6.png)

**#show ip bgp all summary**を確認します。
削除後もBGP接続できています！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/978b49ee-94a9-51e9-f459-295d2693cdcf.png)



## next-hop-self
|コマンド|用途| 
|-------|----|
|next-hop-self|ネクストホップを自身のアドレスに設定する|

**追加設定**
R4-R5区間でpingが成功するように設定を追加します。
今回は**network**コマンドで各ルータのLoopback0,Loopback1アドレスをアドバタイズします。

**追加コマンド**
例:R4
network 4.4.4.4 mask 255.255.255.255
network 40.0.0.0 mask 255.255.255.0

例:R5
network 5.5.5.5 mask 255.255.255.255
network 50.0.0.0 mask 255.255.255.0

R1,2,3も同様に設定します。

**R4-R5でpingが成功することを確認します。**
送信元はアドバタイズ済みのLoopback IFを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/a74c3b8d-4daa-b50a-6176-958f24b2acb1.png)
##

**設定を削除するIFを考えます。**

前提として、IBGP内にEBGP内のネットワークはアドバタイズされません。
外部ネットワークであるEBGPは信用できないためです。
**next-hop-self**コマンドを設定することで、「このネットワークは大丈夫ですよ」とIBGP内に伝えます。
(個人的な解釈です、違っていたらすみません)

なので、next-hop-selfを設定するIFは
・外部と接続している境界ルータ
・IBGP内向けIF
ということになります。

**外部と接続していないR1のIFの設定を削除します。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/179c3154-ef2e-2341-2edc-b6e7805ca25c.png)


**EBGP向けであるR4, R2の設定を削除します。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/9412c8bc-1e95-ce5c-6b22-ba5f8fc8a9e2.png)

イメージ的に
R1にとってR4とR5は知らない人だけど、R2とR3がnext-hop-selfで通知することで友達の友達になる感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/86252b0a-4a61-dbe6-94dc-d1202fc5cc76.png)

R4のLoopbackである4.4.4.4を例にネクストホップを確認します。
R1の **#show ip bgp**です。設定を削除してもネクストホップはR2のままです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/5134f543-64f9-108d-6fe1-74da372d709c.png)

R2の **#show ip bgp**です。削除前も後も変わらず、接続先R4のGi0/2アドレスがネクストホップでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/99fc8044-b932-6378-7c56-f9e8ebe7d6fa.png)

**削除後は、R4-R5区間でpingが成功することを確認します。**

## まとめ
**今回の構成ではこれが最小かなと思います。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/a712e7bb-69ae-f06f-4b8e-882f1f34a300.png)


まとめると
設定が必要な個所は
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/391be574-8fc5-58cb-bfba-fe93d5f4ab7c.png)

必要なパターンは
|コマンド|必要なパターン| 
|-------|----|
|ebgp-multihop|EBGPかつLoopback接続の場合|
|update-source|Loopback接続の場合すべて|
|next-hop-self|IBGPかつ外部とも接続している場合|



次回はこの状態を崩して動作を確認していきます！

https://qiita.com/k_kuri/items/061c5b3260fa3fcdf89d