BGP ルーティング ブラックホール問題を解決するにはどうすればよいですか? MPLSは鋭い剣です!

実験的なトポロジ

実験要件

1. デバイスの相互接続アドレスは図に示すとおりです。すべてのデバイスには Loopback0 ポートがあり、このインターフェイスの IP アドレスは xxxx/32 (x はデバイス番号) です。Loopback0 の IP アドレスは、OSPF ルーター ID、LSR ID、LDP トランジット アドレスとして使用されます。

2. R1、R2、R3、および R4 は OSPF を実行し、直接接続されたインターフェイスと Loopback0 をアドバタイズします。R1 は OSPF で 192.168.1.0/24 ルートをアドバタイズできず、R4 は OSPF で 192.168.2.0/24 ルートをアドバタイズできないことに注意してください。

3. R1 と R4 は、Loopback0 インターフェイスに基づいて iBGP ネイバー関係を確立します。R1 は直接ルート 192.168.1.0/24 を BGP にアドバタイズし、R4 は直接ルート 192.168.2.0/24 を BGP にアドバタイズし、R2 と R3 は BGP を実行しません。 。

4. MPLS を展開することにより、PC1 と PC2 は相互に通信できるようになります。

実験手順と構成

1. デバイス インターフェイス、OSPF、および BGP の構成を完了します。

R1 の構成は次のとおりです。

インターフェイスの IP アドレス構成を完了します。

[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] ip address 12.1.1.1 24
[R1] interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1] ip address 192.168.1.254 24
[R1] interface loopback0
[R1-Loopback0] ip address 1.1.1.1 32

OSPF を構成します。

[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-0.0.0.0] network 12.1.1.0 0.0.0.255
[R1-ospf-1-0.0.0.0] network 1.1.1.1 0.0.0.0

BGP を構成します。

[R1] bgp 100
[R1-bgp] peer 4.4.4.4 as-number 100
[R1-bgp] peer 4.4.4.4 connect-interface Loopback0
[R1-bgp] network 192.168.1.0 24

R2の構成は以下の通りです。

インターフェイスの IP アドレス構成を完了します。

[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] ip address 12.1.1.2 24
[R2] interface GigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1] ip address 23.1.1.2 24
[R2] interface loopback0
[R2-Loopback0] ip address 2.2.2.2 32

OSPF を構成します。

[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-0.0.0.0] network 12.1.1.0 0.0.0.255
[R2-ospf-1-0.0.0.0] network 23.1.1.0 0.0.0.255
[R2-ospf-1-0.0.0.0] network 2.2.2.2 0.0.0.0

R3の構成は以下の通りです。

インターフェイスの IP アドレス構成を完了します。

[R3] interface GigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0] ip address 23.1.1.3 24
[R3] interface GigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1] ip address 34.1.1.3 24
[R3] interface loopback0
[R3-Loopback0] ip address 3.3.3.3 32

OSPF を構成します。

[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-0.0.0.0] network 23.1.1.0 0.0.0.255
[R3-ospf-1-0.0.0.0] network 34.1.1.0 0.0.0.255
[R3-ospf-1-0.0.0.0] network 1.1.1.1 0.0.0.0

R4の構成は以下の通りです。

インターフェイスの IP アドレス構成を完了します。

[R4] interface GigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0] ip address 34.1.1.4 24
[R4] interface GigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1] ip address 192.168.2.254 24
[R4] interface loopback0
[R4-Loopback0] ip address 4.4.4.4 32

OSPF を構成します。

[R4] ospf 1 router-id 4.4.4.4
[R4-ospf-1] area 0
[R4-ospf-1-0.0.0.0] network 34.1.1.0 0.0.0.255
[R4-ospf-1-0.0.0.0] network 4.4.4.4 0.0.0.0

BGP の構成

[R1] bgp 100
[R1-bgp] peer 1.1.1.1 as-number 100
[R1-bgp] peer 1.1.1.1 connect-interface Loopback0
[R1-bgp] network 192.168.2.0 24

上記の設定を完了した後、PC1 が PC2 に ping を実行すると、確実に ping に失敗し、パケット転送プロセスは次のようになります。

R1 は BGP を通じて R4 から 192.168.2.0/24 の経路を学習していますが、PC1 から PC2 へのデータ パケットは R1 によって R2 に転送されますが、R2 は BGP を実行していないため、192.168.2.0/24 に関する情報がありません。 OSPF ドメインでは したがって、R2 でパケットが失われます。これは、典型的な BGP ルーティング ブラック ホールの問題です。実際、BGP が R2 および R3 で実行されていない理由は、BGP によって伝送されるルーティング プレフィックスの数が非常に多いことが多いためです。これにより、R2 および R3 デバイスのリソース消費を大幅に削減できますが、ルーティング ブラック ホールも引き起こされます。

MPLS を使用すると、上記の問題を解決できるため、R1、R2、R3、および R4 で MPLS とLDP をアクティブにします。

これにより、MPLS ネットワークが構築されます。

R1 の構成は次のように増加します。

[R1] mpls lsr-id 1.1.1.1  #配置MPLS LSR ID
[R1] mpls  #全局激活MPLS
[R1-mpls] quit
[R1] mpls ldp #全局激活LDP
[R1-mpls-ldp] quit
[R1] Interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] mpls #在接口上激活MPLS
[R1-GigabitEthernet0/0/0] mpls ldp #在接口上激活LDP

R2 の構成は次のように増加します。

[R2] mpls lsr-id 2.2.2.2
[R2] mpls
[R2-mpls] quit
[R2] mpls ldp
[R2-mpls-ldp] quit
[R2] Interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] mpls
[R2-GigabitEthernet0/0/0] mpls ldp
[R2] Interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] mpls
[R2-GigabitEthernet0/0/1] mpls ldp

R3 の構成は次のように増加します。

[R3] mpls lsr-id 3.3.3.3
[R3] mpls
[R3-mpls] quit
[R3] mpls ldp
[R3-mpls-ldp] quit
[R3] Interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] mpls
[R3-GigabitEthernet0/0/0] mpls ldp
[R3] Interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1] mpls
[R3-GigabitEthernet0/0/1] mpls ldp

R4 の構成は次のように増加します。

[R4] mpls lsr-id 4.4.4.4 
[R4] mpls 
[R4-mpls] quit
[R4] mpls ldp
[R4-mpls-ldp] quit
[R4] Interface GigabitEthernet 0/0/0
[R4-GigabitEthernet0/0/0] mpls
[R4-GigabitEthernet0/0/0] mpls ldp

ここで発生する問題は、R2 と R3 が BGP を実行していないため、BGP ルート 192.168.1.0/24 および 192.168.2.0/24 を学習できず、ルーティング ブラック ホールが発生することです。ここで、ラベルスタックを利用することで、192.168.1.0/24と192.168.2.0/24のネットワーク通信の問題を解決することができます。PC1 が PC2 にアクセスすると、IP データ パケットが最初に R1 に送信されます。この IP データ パケットが R1 によって MPLS ラベルの層に押し込まれ、このラベルがたまたま R2 によって理解されて処理される場合、この問題は解決されませんか? では、プッシュされたタグの値は何でしょうか? 実際には、4.4.4.4 LSP が使用できるため、ラベル値には 4.4.4.4 FEC ラベルが使用されます。

実際、R1 上の BGP ルート 192.168.2.0/24 を確認すると、このルートのネクスト ホップが 4.4.4.4 であることがわかります。また、この時点で 4.4.4.4 はすでに LFIB テーブルにエントリを持っているため、192.168.2.0/24 宛ての IP データ パケットは 4.4.4.4 の LSP を使用して送信できます。

PC1 がホスト 192.168.2.1 にアクセスすると、IP パケットが最初に R1 に送信され、R1 はルーティング テーブルをチェックしてネクスト ホップが 4.4.4.4 であることを発見し、データ パケットを 4.4.4.4 に対応するラベル値 1026 にプッシュします。 、データを送信します。パケットは R2 に送信されます。R2 はラベル 1026 を 1028 に置き換えてデータ パケットを R3 に送信し、R3 はラベルをポップして IP パケットを R4 に転送します。ここで注意すべき詳細があります。つまり、Huawei 機器では、デフォルトで、R1 が 192.168.2.0/24 へのルートをチェックすると、ネクスト ホップが 4.4.4.4 であり、4.4.4.4 が直接接続されていないことがわかります。 、さらにネクスト ホップを再帰して 10.1.12.2 を取得し、ラベルを圧縮せずに IP データ パケットを R2 に転送します。R1 が LSP に再帰できるようにするには、このスイッチを有効にするコマンド、route recursive-lookup トンネルを設定します。

このようにして、PC1 は PC2 に ping を送信できます。

おすすめ

転載: blog.csdn.net/weixin_43025343/article/details/132290757