Huawei社のルータのルーティング技術--BGP説明

BGP(ボーダーゲートウェイプロトコル)は、パスベクトルルーティングプロトコル、およびAS(自律システム)プロトコルに基づいて異なる次のホップに基づく従来のIGPプロトコルです。BGPは、インターネットユーザーに適している、正確には、このため、AS間のルーティング問題に対処する外部ゲートウェイルーティングプロトコル、です。キーは、学習BGP BGPパケット、確立隣人、BGPルーティング属性、ルーティングの原則を理解することです。次の詳細--BGPルーティングプロトコルが来ます。

ボーエン概要:
まず、BGPの概要については、
第二に、BGPがどのように動作するかの把握;
第三に、テストケース;
IV概要BGPの設定;

、BGPの概要

RIPとは異なり、OSPFルーティングプロトコルのように、BGPルーティングプロトコルは、自律システム間で学習とルーティングです。例えば:自律システムとして都市、RIP、OSPFルーティングプロトコルは、都市バスのようなものである、BGPは、都市から実行する列車の間に、高速鉄道に相当します。より良いBGPの概念を理解する前に、我々は最初の自律システムの概念を導入します。

1. AS

自律システム(AS)は、(ダイナミックルーティングプロトコルを実行する)の組み合わせを使用して、同じ技術管理機関、統一ルーティング戦略によって管理されているルータのセットです。65,535の範囲1において自律システム番号。インターネット上で登録された1〜64511のパブリックネットワークアドレスに似た番号は、グローバルに一意であるし、再利用することができないなどの公共のです。64512〜65535は、プライベートIPアドレスに似たプライベートAS番号は、再利用することができますが、インターネットではありません目に見えます。

2.ダイナミックルーティング分類

分類による自律システムは、プロトコルタイプによる分類がより一般的である多くの動的ルーティングプロトコルの分類方法があります。

自律システムにより、1)分類

IGP:つまり、自律システムルーティングプロトコルの内側に、主のRIPv1 / V2、OSPF、IS-IS、含ま EIGRP(シスコ独自のプロトコル)。IGPルーティングプロトコルがあるAS内で実行されているAS内部のルーティングの問題を解決するために主に。その主な役割は、ルート計算を発見されました

EGP:自律システム間のルーティングプロトコルは、一般にBGPを指します。ASとASとの間で実行されているEGPルーティングプロトコル、AS間のルーティング問題を解決するために主にあります。主な役割は、BGPルート伝搬と最適経路の選択を制御することです

典型的には、最初のルートを計算し、IGPを使用して、AS内のエントリを見つけ、IGP経路は、次に、BGPを介して他の自律システムを生成するために通過します。

2)プロトコルタイプ分類によって

距離ベクトルルーティングプロトコル:のRIPv1 / V2、BGP(パスベクトルプロトコル)、EIGRP(高度距離ベクトルプロトコル)
リンクステートルーティングプロトコル: OSPF、ISIS。

3.BGPコンセプト

BGPは、図ASのトポロジーを構築するため、ルーティングループにおいて、主な役割は、自動的にループフリー情報によってASとの間で交換されてASとASとの間の動的ルーティングプロトコルであり、これによりユーザ設定の実施形態を排除しますルーティングポリシー。公衆ネットワークエントリの現在の数では、IGPプロトコルが運ぶことはできませんが、BGPのために容易に対処することができます。比較IGPとBGP属性は、大規模ネットワークにおける複数のルーティング戦略を使いやすく、より多くの機能、ISPおよびISPまたは全体ブランチ間のクロス地域ルーティング情報交換の間に使用されるBGPプロトコルを有しています。

BGPルーティングソリューションは、自律システム間の問題を研究することです。今日インターネットは中国では、インターネット事業者は、テレコムとチャイナユニコムを持って、世界的なインターネットです。各企業は、独自の自律システム、およびIGPの内部動作を持っています。あなたは聯通のオンラインチャット、その上のメッセージとを送信することができテレコムとチャイナユニコム、テレコムのユーザーの間とユーザー間のBGPルートによって学ぶことができるので、しかし、インターネットはまた、インターネットを要求しました。図:
Huawei社のルータのルーティング技術--BGP説明

特性4.BGP

:BGPは、以下の特性を有している
(1)トランスポートプロトコル:TCP、ポート番号179と、
(2)AS間のルーティング情報を通過させるための外部のBGPルーティングプロトコルであり;
(3)拡張パスベクトルルーティングプロトコルです
( 4)信頼性の高いルーティング更新メカニズムを有する;
(5)メトリック測定方法の富を有する;
(6)ループフリープロトコルの設計;
(7)ルーティングエントリのための多くの属性情報を含む;
(8)CIDR(クラスレスドメイン間をサポートルーティング);
(9);リッチ経路フィルタリングおよびルーティングポリシー
、定期的な更新せず(10)
だけ増分経路(11)ルート更新を送信するステップ
(12)は、定期的に接続性を維持するために、TCPキープアライブメッセージを送信します。

二、BGP作品

BGPは、自律システム間で、あなたは自律システム間のルートを学ぶことができ、公衆ネットワークを介してルーティングプロトコルです。BGPダイナミックルーティング研究は隣人、のみ通常の隣接関係に基づいており、BGPは、正常に動作することができます。

1.BGPのネイバー関係

BGPルータは、多くの場合、互いの間スピーカー(ピア)との間と呼ばれるピア相互転送パケット、BGPSpeaker(スピーカ)と呼ばれます。作成、更新、およびBGPネイバー関係を完了するために、ピア間のパケットの5種類、ステートマシンの6種類と5つの表やその他の情報の相互作用を介して行われ、削除、そして最終的には唯一の隣人することができます。

(1)BGPパケット

BGPパケットヘッダタイプBGPメッセージタイプを定義します。BGPピアとの間の相互作用を介して情報をルーティングするパケットの5種類。次の詳細は、メッセージの5種類の詳細。

1)メッセージを開き

オープン(オープン)メッセージは、ピア接続はBGPとの間の接続を確立するために使用される、TCPを確立した後に送信される最初のメッセージであるBGPバージョン番号、Hoidtime(時間の節約)やその他の情報などの主要なローカルが含まれています。ピア・パケットはピアオープンし、成功した交渉を介して受信した後、それを特定し、接続性を維持するためにキープアライブパケットを送信します。BGPピア関係の後、それらはルーティング情報をピア交換との間の残りのパケットを送ることができる前にそう確認します。

2)更新メッセージ

アップデート(更新)メッセージはBGPピア間のルーティング情報を更新するために使用されます。

同じシステム上で実行可能な経路の複数のプロパティを介してパケットを更新するだけでなく、複数不可能ルートを引き出します。

  • ネットワーク到達可能性情報(NLRI):このフィールドを介して同じ属性を複数有する到達可能なルートをアドバタイズし、ルーティング属性の同じセットを共有することができるルーティング情報は、このフィールドは、到達可能な宛先IPアドレスプレフィックスとマスク組成物から成ります。
  • 複数の到達不能ルートを撤回:ルーティング情報は、フィールドを通じて、障害または到達不能によって解放されなければなりません。このフィールドには到達できない送信先IPアドレスとマスク組成物です。

更新メッセージは取り下げルートは、属性またはNLRIパスを含む必要がない場合にのみ、ルートだけを引き出す使用することができます。同じことがこの時点で取り出したルーティング情報を搬送する必要がない、のみ到達可能なルートをアドバタイズするために使用することができます。

3)通知メッセージ

通知(通知)メッセージBGPは、エラーメッセージを検出し、BGP接続が直ちに閉じられた直後に、ピアに通知メッセージを送信する役割。かかわらず、BGPの現在の状態のように長いメッセージがアイドル状態に戻ります通知を受信するように、どのような状態だったことに注意してください。換言すれば、BGPは、ルーティングプロトコルがルーティング方針の誤差を許容しない、より良好なパスがしばしば最長関係隣接ピアである、長年の経験に両端を反映するためにピア時間は、エラーは発生していませんし、他のルーティングプロトコルは、より新しい方が良いの前に学びました。

4)ルート更新

ボディは、ローカルピアルートリフレッシュ機能がサポートされ知らせるために使用されます。ピアは、すべてのBGPルータでルートリフレッシュ(ルーティング更新)ケースの能力を有する場合、エントリBGPルーティングポリシーの変更、ローカルBGPルータは経験のメッセージを受信し、ピアにルート更新メッセージを送信します。バックローカルBGPルータへのルーティング情報。このように、動的に更新され、新しいルーティングポリシーBGP接続BGPルーティングテーブルを中断することなく。

5)キープアライブ

ピア間の定期的なパケットの送信が、有効に接続され、接続を維持したまま、キープアライブ(保持)のみBGPパケットヘッダ。デフォルトのキープアライブ(維持)メッセージの送信周期は180秒のための60年代、ホールドタイム(メッセージを保存)です。タイマーがホールドタイムまだ受け取っていないキープアライブパケットがピアと見なされ満了した場合に受信ピアが私にキープアライブパケットを送信し、OSPF Helloパケットのプロトコルに類似キープアライブメッセージは、ホールドタイムタイマーを更新します失敗。

(2)BGPステートマシン

BGPステートマシンは、BGPネイバーを確立するプロセスを説明し、これらの異なる状態の研究を通じて、より多くのBGPがどのように動作するかの深い理解だけでなく、トラブルシューティングのアイデアすることができます。BGPステートマシン公共6つの状態は、図示のように:
Huawei社のルータのルーティング技術--BGP説明
BGP 6つの状態の以下の詳細な説明:

1)ldle状態

ldle(アイドル)状態、BGPは、任意の着信接続要求を拒否し、IdIe状態はBGPの初期状態です。ldle状態では、BGPは隣人によって送られた接続要求を拒否します。(例えば実行BGPなど)Startイベント、BGP後にこの機器を受け取った後、その他のBGPピアのTCP接続を試みると、Commect状態を行くようになっただけです。どんな状態のメッセージまたはエラーイベント通知解体チェーンTCP通知を受け取った後、BGP状態は行くことがldleです。

2)接続状態

接続(接続)状態、BGPは、完了判定以降の動作後にTCP接続の確立を待ちます。接続状態では、BGP接続のTCP接続が完了するのを待ち、(タイマーは一般的に30代である)再送タイマーを起動します。TCP接続が成功した場合、ピアBGPオープンパケットに送られ、そしてOpenSent(オープン)状態を行く、TCP接続が失敗した場合、BGPはアクティブ(能動的)状態を行く;接続再送タイマが満了した場合、BGPをまだ応答は、BGPピアを受けていない、その後、他のBGP BGPピアTCP接続は、接続状態のまましようとし続けています。

3)アクティブ状態

Active(活跃)状态下,BGP将尝试进行TCP连接的建立,是BGP的中间状态。在Active状态下,BGP总是在试图建立TCP连接,如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态;如果TCP连接失败,那么BGP停留在Active状态;如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。

4)OpenSent状态

在OpenSent(开放集)状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、Holdtime等进行检查。如果收到的Open安博文正确,那么BGP发送KeepAlive报文,并转至OpenConfirm(打开确认)状态;如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至IdIe状态。

5)OpenConfirm状态

OpenConfirm(打开确认)状态下,BGP等待KeepAlive或Notification报文。如果收到KeepAlive报文,则转至Established(确认)状态;如果收到Notification报文,则转至ldle状态。

6)Established状态

在Established(确认)状态下,BGP可以在对等体之间交换Update、KeepAlive、Route-refresh报文和Notification报文。如果收到正确的Update或KeepAlive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接;如果收到错误的Update或KeepAlive报文,那么BGP发送Notification报文通知对端,并转至ldle状态。

注意:Route-refresh报文不会改变BGP状态。如果收到Notification报文,那么BGP转至ldle状态。如果收到TCP拆链通知(FIN),那么BGP断开连接,转至ldle状态。

在BGP对等体建立的过程中,通常可见的三种状态是ldle、Active、Established。BGP对等体双方的状态必须都为Established,BGP邻居关系才能成立,双方通过Update报文交换路由信息。

(3)BGP数据库

BGP数据库是BGP正常工作所需要的存储空间,基于保存的内容不同,可分为如下几种:

1)IP路由表(IP-RIB)

全局路由信息库,包括所有最优的IP路由信息。

2)BGP路由表(Loc-RIB)

BGP路由信息看,包括本地BGP Speaker通告的路由信息,将其中最优路由添加到IP路由表中。
注意:先要关注BGP路由表,若BGP路由表中不是最优路由,则无法在IP路由表中可见。

3)邻居表

对等体邻居清单列表,包括对等体两端的邻居信息及邻居列表。

4)Adi-RIB-In

对等体宣告给本地Speaker的未处理的路由信息库。

5)Adj-RIB-Out

本地Speaker宣告给指定对等体的路由信息库。

(4)BGP邻居关系类型

在BGP中大致可分为两种邻居关系:

  • IBGP:同一个AS内部的BGP邻居关系,IBGP邻居通常是指运行BGP协议的对等体两端均在同一个AS域内,属于同一个BGP AS内部;
  • EBGP:AS之间的BGP邻居关系,EBGP邻居通常是指运行BGP协议的对等体两端分别在不同的AS内;

注意:IGP协议建立邻居一般要求三层直连,并且通过广播或组播建立邻居。而BGP的邻居关系是基于TCP的,也就是说只要TCP/IP可达,无论是否直连,BGP对等体彼此之间就可以建立邻居关系。所以BGP建立邻居之前首先要考虑的就是对等体之间的路径可达(是否存在路由)。务必要通过IGP或者静态路由使对等体两端互通。

Huawei社のルータのルーティング技術--BGP説明
如图:根据邻居之间是否属于同一个自治系统可以判断,R1和R2是EBGP邻居关系,R2和R4是IBGP邻居关系。如果AS300中有路由要传播到AS100,那么BGP的传播路径为R5→R4→R2→R1。需要注意的是,在AS200内部,除了R2和R4是IBGP邻居关系外,R2和R3、R3和R4都可以配置为IBGP邻居关系,完全取决于网络工程师的规划。

可以使用以下命令建立IBGP邻居和EBGP邻居,其中as-number后面跟邻居所在的AS好,邻居的AS号和本端的AS号相同就成为IBGP邻居,不同就为EBGP邻居。

R2的配置如下:

[R2]bgp 200                                                                                     //进入bgp视图,其中本端AS号为200
[R2-bgp]router-id 2.2.2.2                                                                 //配置BGP的router-id            
[R2-bgp]peer 12.1.1.1 as-number 100                                            //和12.1.1.1建立EBGP邻居关系
[R2-bgp]peer 34.1.1.4 as-number 200                                           //和34.1.1.4建立IBGP邻居关系

上面配置为R2设备通过有两个对等体邻居,R1:12.1.1.1为EBGP邻居,R4:34.1.1.4为IBGP邻居。需要注意的是R2和R4可达。

R5的配置如下:

[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 45.1.1.4 as-number 200

上面配置为R5设备通告有一个对等体邻居,R4:45.1.1.4为EBGP邻居。
需要注意的是,对等体两端若是非直连关系,需要先用IGP或者静态路由连通BGP对等体两端。

[R5]display bgp peer 
//查询BGP邻居信息;
//在结果中重点查看state一列,Established表示已经建立连接;
//BGP对等体两端同步路由信息的前提是BGP邻居关系为Established;

2.通告BGP路由的方法

BGP路由是通过BGP命令通告而成的,而通告BGP路由的方法有两种:Network方式和Import方式。

(1)Network方式

使用Network方式可以将当前设备路由表中的路由(非BGP)发布到BGP路由表并通告给邻居,需要注意的是,network的对象是路由条目而不是接口。

Huawei社のルータのルーティング技術--BGP説明
如图:R1和R2位于AS100内,并且R1和R2是IBGP邻居关系,R2和R3是EBGP邻居关系。R1上有两个环回接口,所以在R1的路由表中就会有两个环回接口的直连路由。要求实现通过R1上宣告1.1.1.0/32和2.2.2.0/32路由,最终R3可以通过BGP学习到。配置命令如下:

[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 12.0.0.2 as-number 100
[R1-bgp]network 1.1.1.1 32
[R1-bgp]network 2.2.2.2 32
//R1将自身的1.1.1.1/32和2.2.2.2/32通过Network的方式发布到BGP中

BGP通过路由和IGP不同,在IGP中,通告的是接口,以OSPF为例,假如路由器有两个接口,地址分别为192.168.1.1/24和192.168.2.1/24,那么运行IGP时,可以通告汇总地址,以使这两个接口运行OSPF协议,命令为network 192.168.0.0 0.0.255.255 area 0 。但是BGP不同,BGP通过的不是接口,而是路由,假如路由表中的实际路由为1.1.1.0/24,那么就不能执行命令network 1.0.0.0 8以8为通过,必须以实际的路由通告。

(2)Import方式

使用Import命令可以将锁学习到的路由信息重分发到BGP路由表中,是BGP宣告路由的一种方式,可以引入BGP的路由包括直连路由、静态路由即动态路由协议学习的路由。和Network方式的区别是,Import的对象是某种动态路由协议,而不是路由条目。

Huawei社のルータのルーティング技術--BGP説明
R2和R3是EBGP邻居关系。在AS100中运行OSPF动态路由协议,R1通过OSPF宣告了物理接口及两个环回接口,并且R2已经通过OSPF学习到1.1.1.1/32和2.2.2.2/32两条路由,这些学习的路由可以在R2上通过Import方式引入BGP协议中。配置命令如下:

[R2-bgp]import-route ospf 110
//110为运行OSPF的进程号

通过display bgp routing-table命令可以查看BGP的路由表,在输出的BGP路由中,“*” 表示有效的路由,“>”表示最优的路由,只有最优的路由才会最终放入路由表中。

如果某个BGP路由条目不优,那么原因可能有:

  • 在同步打开的情况下,从IBGP邻居学习到的路由不会通过给其他BGP邻居,也不会使用该路由哦,直到通过IGP也学习到该路由或有静态路由可以关闭同步来解决(路由进程下执行 undo synchronization);
  • BGP 路由条目的下一跳不可达;

3.BGP的配置

(1)BGP对等体的配置

BGP设备会将最优路由加入到BGP路由表,形成BGP路由。BGP设备与对等体建立邻居关系后,采取以下交互原则:
(1)从IBGP对等体获得的BGP路由,BGP设备只传递给它的EBGP对等体;
(2)从EBGP对等体获得的BGP路由,BGP设备传递给它的所有EBGP和IBGP对等体(对等体是IBGP只能传递一跳,对等体是EBGP则不限制);
(3)当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体;
(4)路由更新时,BGP设备只发送更新的BGP路由;
(5)所有对等体发送的路由,BGP设备都会接收;
(6)所有EBGP对等体在传递过程中下一跳改变;
(7)所有IBGP对等体在传递过程中下一跳不变;
(8)默认EBGP传递时,TTL值为1;
(9)默认IBGP传递时。TTL值为255;

1)EBGP多跳

由于默认BGP中EBGP邻居之间的TTL值为1,若EBGP对等体非直连,在传递时,TTL跳数限制会使非直连的EBGP对等体无法正常建立邻居关系,所以需要用EBGP多跳的命令来解决非直连 的邻居关系。
Huawei社のルータのルーティング技術--BGP説明
配置命令如下:

[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 12.0.0.1 as-number 100
//保证12.0.0.1可达
[R3-bgp]peer 12.0.0.1 ebgp-max-hop 2
//设置TTL值为2,使其可达

2)更新源建立邻居关系

连接公网环境设备的地址很容易出现各种各样的问题,为了避免因为接口不稳定或DOWN而导致的BGP状态的改变。通常会在同一个AS内使用冗余链路来确保BGP的稳定性,这样即使某一链路故障,也不影响BGP的邻居关系,所以经常会使用LoopBack接口IP地址和对端建立BGP邻居,因为环回接口永远是UP,所以只要至少有一条链路可达,BGP的邻居关系就不会因链路而发生改变,这种使用环回接口建立BGP邻居的方法称为更新源建立邻居。
Huawei社のルータのルーティング技術--BGP説明
R1的配置如下:

[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 3.3.3.3 as-number 100
[R1-bgp]peer 3.3.3.3 connect-interface LoopBack0

R3的配置如下:

[R3]bgp 100
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 1.1.1.1 as-number 100
[R3-bgp]peer 1.1.1.1 connect-interface LoopBack0
//本地LoopBack接口先要让对等体可达;
//需要手动添加对等体环路接口的路由条目或者IGP自动学习对方环回接口路由

(2)保证IBGP下一跳可达

在AS边缘的BGP设备,会接收到它的BGP对等体邻居传递过来的BGP路由信息。如果是下面这种情况:
Huawei社のルータのルーティング技術--BGP説明
假如R1通告一条路由,经过EBGP邻居传播到AS200后,R2看到的路由下一跳为12.0.0.1,继续经过EBGP传播到R3之后,R3看到的路由下一跳是23.0.0.2。R3传播给IBGP邻居R4后,R4看到的路由下一跳依然为23.0.0.2,因为通过IBGP邻居接收的BGP路由下一跳不变。又因为R4没有下一跳地址23.0.0.2的路由,所以R1传播过来的信息无效,不能传播给其他BGP邻居,更不能放入路由表。

解决的方法:在R3上宣称下一跳为R3自己,那么R4看到的下一跳就变成了34.1.1.3,而34.1.1.3可以通过IGP学习到(因为是直连网络),从而解决了路由无效的问题。R3执行如下命令可以实现:

[R3]bgp 300
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 23.0.0.2 as-number 200
[R3-bgp]peer 34.1.1.4 as-number 300
[R3-bgp]peer 34.1.1.4 next-hop-local

(3)BGP的属性

区别于传统的协议,BGP协议包含很多路由属性,这些属性可以非常灵活的控制BGP的选路。

1)BGP属性的分类

BGP的属性共分为公有必遵、公认任意、可选过渡、可选非过渡。如图:
Huawei社のルータのルーティング技術--BGP説明

  • 公有必遵:所有BGP路由器都可以识别,且必须存在于Update报文中;
  • 公认任意:所有BGP路由器都可以识别,但不要求必须存在于Update报文中,可以根据具体情况来决定是否添加到Update报文中;
  • 可选过渡:BGP路由器可以选择是否在Update消息中携带这种属性。接收的路由器如果不识别这种属性,可以转发给邻居路由器(这就是过渡的含义),邻居路由器可能会识别并使用到这种属性;
  • 可选非过渡:BGP路由器可以选择是否在Update消息中携带这种属性。在整个路由发布的路径上,如果部分路由器不能识别这种属性,可能会导致该属性无法发挥作用。因为接收的路由器如果不识别这种属性,将丢弃这种属性,而且不再转发给邻居路由器;

2)BGP属性的介绍

BGP的常用属性有Origin、AS-PATH、Next-Hop、Local-Pref和MED等。

1.Origin(起源)属性

Origin属性属于公有必遵,用阿里定义路径信息的来源,其作用是标记一条路由是怎么成为BGP路由的。

Origin包含以下三种类型:

  • IGP(i):优先级最高。通过Network命令注入BGP路由表的路由,其Origin属性为IGP;
  • EGP(e):优先级次之。通过EGP得到的路由信息,通过使用Import-route命令注入的路由,其Origin属性为EGP;
  • Incomplete(?):优先级最低。通过其他方式学习到的路由信息;
2.AS-PATH(AS路径)属性

AS-PATH属性按矢量顺序记录了某条路由从本地到目的地址所要经过的所有的AS编号。在接收路由时,设备如果发现AS-PATH列表中有本AS号,则不接收该路由,从而避免了AS间的路由环路。

AS路径列表记录了所经过的AS号,各AS号之间以逗号分隔,且离本设备最近的AS号在最前面。

当BGP Speaker发布始发于本自治系统的路由时,遵循以下原则:
(1)当BGP Speaker将这条路由通告到EBGP对等体时,便会在Update报文中创建一个携带本地AS好的AS-PATH列表;
(2)当BGP Speaker将这条路由通告给IBGP对等体是,便会在Update报文中创建一个空的AS-PATH列表;
当BGP Speaker抓饭来自于其他自治系统的路由时,遵循以下原则:
(1)当BGP Speaker将这条路由通告给EBGP对等体时,便会把本地AS编号添加到AS-PATH列表的最前面。收到此路由的BGP设备根据AS-PATH属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排序;
(2)当BGP对等体将这条路由发布给IBGP对等体时,不会改变这条路由相关的AS-PATH属性;

Huawei社のルータのルーティング技術--BGP説明
如图:AS200中的路由器RTA通告了一条路由18.0.0.0/8。该路由分别通过(200→300→400→100)和(200→500→100)传递到AS100中。AS100在收到的路由中会携带该路由传播路径中的所有AS列表,其中最近的放在前面。

3.Next-Hop(下一跳)属性

Next-Hop属性记录了路由的下一跳信息。BGP的下一跳属性和IGP的有所不同,IGP中的下一跳描述的是下一个路由器,而BGP中的下一跳描述的是下一个AS,所以大部分情况下不是直连设备的IP地址。

通常情况下,Next-Hop属性遵循以下原则:
(1)BGP Speaker在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址;
(2)BGP Speaker将本地始发路由发布给IBGP对等体时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口;
(3)BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变路由信息的下一跳属性;

Huawei社のルータのルーティング技術--BGP説明
图中A~J对应每个路由器的接口的IP地址。R1通过一条BGP路由1.1.1.0,首先R2收到,因为R1和R2是邻居,而且该路由器始发于本自治系统(AS100),所以在通告给R2时下一跳为A。R2继续通告给R3,因为R2和R3是EBGP邻居,所以通告给R3时下一跳为C。R3继续通告给R4,因为R3和R4是IBGP邻居,而且该路由不是始发于本自治系统(AS200),而是由其他自治系统学习而来的,所以R3通告给R4时,下一跳不变,依然为C,同理,R5和R6的下一跳为G。

4.Local-Pref(本地优先)属性

Local-Pref属性标识BGP路由的优先级,用于判断流量离开AS时的最佳路由。当BGP的设备通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先级选择Local-Pref属性值最高的路由。Local-Pref属性仅在IBGP对等体之间有效,不通告给其他AS。本地优先级在AS内部传递,优先级越高越优先。

Local-Pref属性可以手动设置,如果路由器没有配置Local-Pref属性,BGP选路是将该路由的Local-Pref值按默认值100来处理。

Huawei社のルータのルーティング技術--BGP説明
图中,互联网路由210.52.83.0/24和210.52.82.0/24分别通过ISP1和ISP2两个自治系统传到ISP0自治系统。配置RT4中210.52.83.0/24路由的Local-Pref属性为一个更高的值200,同理配置RT3中210.52.82.0/24路由的Local-Pref属性为一个更高的值200.如此一来,ISP0中的设备去往210.52.83.0/24将会走ISP1,去往210.52.82.0/24将会走ISP2。

在RT4上,控制210.52.83.0的Local-Pref属性为200,而210.52.82.0的Local-Pref属性为100的配置如下:

[RT4]acl number 2000
[RT4-acl-basic-2000]rule 5 permit source 210.52.83.0 0.0.0.255
[RT4]route-policy test permit node 10
[RT4-route-policy]if-match acl 2000                  //满足匹配ACL的条件
[RT4-route-policy]apply local-preference 200              //修改Local-Pref为200
[RT4]route-policy test permit node 20
[RT4-route-policy]peer 1.1.1.1 route-policy test import
//和邻居1.1.1.1 入方向应用策略
5.MED属性

MED属性用于判断流量进入邻居AS是的最佳路由,当一个运行BGP的设备通过不同的EBGP 对等体得到目的地址相同但下一跳不同的多条路由时,在其他条件相同的情况下,将优先选择MED值较小者作为最佳路由,用来改变下游的选路。

MED属性仅在相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给其他任何第三方AS。MED属性可以手动配置,如果路由没有配置MED属性,BGP选路时将该路由的MED值按默认值0来处理。

Huawei社のルータのルーティング技術--BGP説明
如图:AS200中将两条路由(210.52.83.0和210.52.82.0 )通告给AS100.其中RT1在通告是将210.52.83.0设置一个比较小的MED属性(50),RT2在通告时将210.52.82.0设置一个比较小的MED属性(50)。AS100收到这些通告后,会认为到达210.52.82.0通告RT2的路径是最优的,而到达210.52.83.0通告RT1的路径是最优的。

在RT3上,而骗子会发送给EBGP邻居RT1的路由条目中匹配210.52.82.0/24,将MED属性设置为100,其他的设置为50的命令如下:

[RT3]acl number 2000
[RT3-acl-basic-2000]rule 5 permit source 210.52.82.0 0.0.0.255
[RT3]route-policy test1 permit node 10
[RT3-route-policy]if-match acl 2000                                   //满足配置ACL的条件
[RT3-route-policy]apply cost 100                                       //修改MED属性为100
[RT3-route-policy]route-policy test permit node 20
[RT3]route-policy test permit node 20
[RT3-route-policy]apply cost 50                //没有配置条件代表匹配一切条件,修改MED值为50
[RT3]peer 1.1.1.1 route-policy test1 export

(4)BGP的选路原则

众所周知,BGP是被广泛应用于互联网ISP与ISP之间的路由协议,而BGP之所以能被众多ISP所信任,主要是因为其路径选择过程非常严格。

BGP的选路原则如下:
(1)若去往目的网络的路由下一跳不可达,则可以忽略此路由;
(2)Preferred-Value优先级以数值高的路由优先;
(3)Local-Preference优先级以数值高的路由优先;
(4)聚合路由优先级高于非聚合路由;
(5)本地手动聚合路由的优先级高于本地自动聚合的路由;
(6)本地通过Network命令引入的路由的优先级高于本地通过Import-route命令引入的路由;
(7)AS路径长度最短(最少个数)的路径优先级高;
(8)比较Origin属性,IGP优先级高于EGP,EGP优先级高于Incomplete;
(9)选择MED优先级较小的路由;
(10)EBGP路由优先级高于IBGP路由;
(11)BGP优先选择到BGP下一跳的IGP度量低的路径;
当以上全部相同,则为等价路由,可以负载分担(注:AS-PATH必须一致),当负载分担时,以下3条原则无效
(1)比较Cluster-List长度,短者优先;
(2)比较Originator_ID(如果没有Originator_ID,则用Router ID比较),选择数值较小的路径;
(3)比较对等体的IP地址,选择IP地址数值最小的路径;

三、实验案例

(1)案例环境如下:

Huawei社のルータのルーティング技術--BGP説明

(2)案例需求:

(1)要求实现两个AS之间的互相通信;
(2)通过修改BGP属性使实现业务需求的路径从R2切换到R3;

(3)案例实施

1)BGP基础配置

1.配置所有设备IP地址及AS200内部的OSPF协议

仅配置通告AS内部的直连路由,配置过程略!

2.建立邻居关系

在R1和R2、R1和R3配置EBGP邻居关系,使R1、R2和R3之间可以通过EBGP相互传递路由。在R2、R3和R4上配置IBGP邻居关系,使R2、R3和R4之间通过IBGP互相传递路由。

R1的配置如下:

[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 10.0.12.2 as-number 200
[R1-bgp]peer 10.0.13.3 as-number 200
[R1-bgp]network 1.1.1.1 32                    //通告网络1.1.1.1/32

R2的配置如下:

[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 10.0.12.1 as-number 100
[R2-bgp]peer 10.0.24.4 as-number 200
[R2-bgp]peer 10.0.24.4 next-hop-local

R3的配置如下:

[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 10.0.13.1 as-number 100
[R3-bgp]peer 10.0.34.4 as-number 200
[R3-bgp]peer 10.0.34.4 next-hop-local

R4的配置如下:

[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 10.0.24.2 as-number 200
[R4-bgp]peer 10.0.34.3 as-number 200
[R4-bgp]network 4.4.4.4 32

3.查看路由表

R1的路由表:

[R1]dis bgp routing-table 
//查看通过BGP学到的路由表
 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.1/32         0.0.0.0         0                     0      i
 *>   4.4.4.4/32         10.0.12.2                             0      200i
 *                       10.0.13.3                             0      200i

R4的路由表:

[R4]dis bgp routing-table 

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.1/32         10.0.24.2       0          100        0      100i
 * i                     10.0.34.3       0          100        0      100i
 *>   4.4.4.4/32         0.0.0.0         0                     0      i

此时BGP已经配置完成,会发现R4去往R1的1.1.1.1优先走R2,而R1去往R4的4.4.4.4优先走R2。接下来改变选路问题。

2)选路配置

根据要求,从R4去往R1的路由从R2改走R3。下面几种方法均可实现!

1.根据本地优先级控制选路

在R3上修改本地优先级属性并传出给R4。

[R3]route-policy lop permit node 10                    //创建名为lop的路由策略
Info: New Sequence of this List.
[R3-route-policy]apply local-preference 222            //设置本地优先级为222
[R3-route-policy]quit
[R3]bgp 200
[R3-bgp]peer 10.0.34.4 route-policy lop export              //应用策略
[R3-bgp]quit
[R3]quit
<R3>reset bgp all                    //刷新路由属性

刷新之后,在R4上查看路由表:

[R4]dis bgp routing-table 

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.1/32         10.0.34.3       0          222        0      100i
 * i                     10.0.24.2       0          100        0      100i
 *>   4.4.4.4/32         0.0.0.0         0                     0      i

通过路由表可以看出此时R4去往R1的路由已经改走R3了!

2.使用AS-PATH属性控制选路

为了还原最初走R2的效果,请使用以下命令清除调用策略的语句:

[R3]bgp 200
[R3-bgp]undo peer 10.0.34.4 route-policy lop export

在R2上修改AS-PATH属性并传给R4:

[R2]route-policy as permit node 10
Info: New Sequence of this List.
[R2-route-policy]apply as-path 123 123 123 additive                  
//表示在原有的路径上行额外添加( 123、123、123)路径
[R2-route-policy]quit
[R2]bgp 200
[R2-bgp]peer 10.0.24.4 route-policy as export
[R2-bgp]quit
[R2]quit
<R2>reset bgp all

查看R4BGP路由效果:

[R4]dis bgp routing-table 

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.1/32         10.0.34.3       0          100        0      100i
 * i                     10.0.24.2       0          100        0      123 123 12
3 100i
 *>   4.4.4.4/32         0.0.0.0         0                     0      i

通过路由表可以看出此时R4去往R1的路由已经改走R3了!

3.通过MED属性控制选路

如果希望R1去往R4的路由该走R3,可以使用MED属性控制R1的路由选路,使R1去往R4从R2该走R3。查看之前的配置会发现从R1去往R4走R2。,通过以下配置可以实现:

R2的配置如下:

[R2]route-policy med permit node 10
Info: New Sequence of this List.
[R2-route-policy]apply cost + 50
[R2-route-policy]quit
[R2]bgp 200
[R2-bgp]peer 10.0.12.1 route-policy med export
[R2-bgp]quit
[R2]quit
<R2>reset bgp all

查看R1的BGP路由表:

[R1]dis bgp routing-table 

 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.1/32         0.0.0.0         0                     0      i
 *>   4.4.4.4/32         10.0.13.3                             0      200i
 *                       10.0.12.2       50                    0      200i

实验完成!

通过实验不难发现:BGP控制选路主要是通过BGP属性值的调整完成的。BGP包含大量的属性,而这些属性直接影响选路,所以BGP相对于ICP来说具有更强大控制能力。需要注意的是:BGP选路的方法有很多种,要确保选用正确的方法,同时需要注意不通属性键的优先级问题。

四、配置总结:

設定中に、エラーを回避するために、次の点に注意してください
(1)ルータの指定されたアドレスの終了前に隣接関係を確立し、あなたがピアルータにpingを実行できることを確認してください。
(2)最高の、互いのループバックアドレスを指定したが、ソースを更新することを忘れないでくださいコマンド、AS内部BGPネイバー関係の確立:「[R3-BGP]ピア 4.4.4.4接続インターフェイスループバック0を」。
内部ASのためにBGPプロトコルを実行しているAS内の複数のルータがある場合(3)、これはまた、IBGPプロトコルであり、前述の「確保IBGPホップである、ネクストホップのプロパティを変更することを忘れないでください[R4-BGP「2.2.2.2ネクストホップローカルピアを使用する:「コマンドリファレンス」とは、最大
(4。)は、2つのルータがある場合でも、2つの異なる領域ASルータの隣接関係あれば、前述しました直接接続だけでなく、TTLの値を変更し、目的は、ルータが直接接続されているようにパケットがあるため、異なっているが、廃棄される前に、ルータ間の隣接関係は、いくつかのルータを介してより多くすることができる確立できるようにすることで、だけでは、ネットワークのループバックアドレスを認識し、直接セグメントを接続するルータが同じネットワークセグメントではないホップすることができるが、ループバックアドレスのためにリモートルータで指定され、ルータはパケットを別として考え受信しますルータ上のアドレス、そのように2つのネイバー間の関係の確立、ホップ数を変更してください、変更しないTTL値の間のIBGPネイバー関係を確立し、IBGP、デフォルトのパケットのTTL値のため、255。TTL値変更コマンド:「[R1-BGP】ピア 34.1.1.4 EBGP-MAXホップ2」 このコマンドは、ライン上のいくつかの値に設定され、いくつかのホップを置く必要がある、以上のホップの実際の数よりも大きくはなくてもよいです小さなホップの実際の数。

--------この記事の最後に、これまで、読んでくれてありがとう--------

おすすめ

転載: blog.51cto.com/14157628/2443977