首頁歷史 > 正文

網路知識-23 BGP進階

2022-12-27由 網路白話 發表于 歷史

網路知識-23 BGP進階

R1:

bgp 200

peer 10。2。2。2 as-number 200

peer 10。2。2。2 connect-interface LoopBack0

peer 10。2。6。6 as-number 200

peer 10。2。6。6 connect-interface LoopBack0

R2:

bgp 200

peer 10。2。1。1 as-number 200

peer 10。2。1。1 connect-interface LoopBack0

peer 200。1。23。3 as-number 100

peer 200。1。25。5 as-number 100

R3:

bgp 100peer 10。1。4。4 as-number 100

peer 10。1。4。4 connect-interface LoopBack0

peer 200。1。23。2 as-number 200

peer 200。1。37。7 as-number 300

其他路由器配置略

BGP 通告原則:

① 僅將自己最優的路由釋出給鄰居 (> 最佳化)

② 透過EBGP鄰居獲得的最優路由可以釋出給所有的BGP鄰居

③ 透過IBGP鄰居獲得的路由不會發布給IBGP鄰居(防止IBGP路

由環路)

④ BGP和IGP同步(華為預設關閉該特性)

⑤ 預設從EBGP鄰居學到的BGP路由的下一跳是EBGP對等體的

IP地址,當該路由向AS內部傳遞至時,路由傳遞給IBGP鄰居時下

一跳地址(next-hop)不變(還是上一個AS的介面地址),此

時有可能會引發下一跳不可達

解決下一跳不可達:

a 將EBGP互聯地址(next-hop地址)宣告進IGP(注意配置靜

默介面,防止IGP路由傳至其他AS)

b 使用next-hop-local

next-hop-local 配置:

R3:

bgp 100peer 10。1。4。4 next-hop-local 給鄰居4。4 傳送bgp 更新時將

next-hop 改為自己(10。1。3。3)。

防止環路:

a 防止IBGP環路(AS內部環路):

IBGP水平分割

b 防止EBGP環路(不同AS之間的環路):AS-Path 屬性

解決IBGP水平分割帶來的路由不傳遞問題:

a 在AS內部IBGP鄰居建立全互聯結構(

full-mesh)

b 配置路由反射器RR

c BGP聯邦 (聯盟)

RR配置:

R1:

bgp 200

peer 10。2。6。6 reflect-client 將10。2。6。6 配置為R1的路由反射

客戶端。

refresh bgp all export 重新整理bgp 鄰居使其生效

BGP路由黑洞:可以學習到路由,但是資料不可達

解決BGP路由黑洞:

方案①:將BGP路由引入到IGP裡面(針對銀行、集團單位),

以實現BGP和IGP的同步。

方案②:所有路由器形成IBGP全互聯結構(Full-mesh)。開啟BGP 負載分擔:

bgp 200

maximum load-balancing 4

在bgp 路由表中無法看到現象,但是在IP 路由表中有體現!!

網路知識-23 BGP進階

bgp 路由表中 路由不被最佳化的原因:下一跳不可達

解決下一跳不可達:

a 將EBGP互聯地址(next-hop地址)宣告進IGP(注意配置靜

默介面,防止IGP路由傳至其他AS)

b 使用next-hop-local

BGP 屬性分類:

公認必遵:

origin(起源)

、AS-path、next-hop

對端必須能夠識別,且這些屬性必須包含在update更新報文中

公認任意:

Local_Pref (本地優先順序)、Atomic Aggregate 原

子聚合

對端必須能夠識別,但這些屬性不一定會攜帶在update報文中

可選過渡

:Aggregater 、community

bgp路由器不能識別該屬性,但可以接收並將其傳給鄰居

可選非過渡:

MED

BGP路由器可以忽略該屬性並不向他的鄰居釋出

網路知識-23 BGP進階

BGP 路由選路原則13條:

1 丟棄下一跳不可達的路由

**2 優選Preference_Value值(首選值)最高的路由(私有,本地有效)

**3 優選本地優先順序(Local_Pre)最高的路由

4 優選手動聚合>自動聚合>network>import>從對等體學到

**5 優選AS_Path短的路由

**6 起源型別Original :

I>E>?

**7 對於來自同一AS的路由,優選MED值小的。

8 優選從EBGP學來的路由(EBGP>IBGP)9 優選AS內部IGP的Metric最小的路由(到達下一跳的IGP 開銷)

——可以開啟負載分擔——(bgp路由表不體現 路由會顯示)

10 優選Cluster_List (RR反射器:RR的router id)最短的路由(經過RR的

數量少)

11 優選Orginator_ID (RR反射器:路由起源router id )最小的路由(路由

進入某AS時,起始路由器router id)

12 優選Router_ID最小的路由器釋出的路由

13 優選具有較小IP地址的鄰居學來的路由

網路知識-23 BGP進階

Preference_Value值(首選值):本地有效(不傳給鄰居),預設值0,越

大越優先

配置:

R2:

acl number 2070

rule 5 permit source 70。4。4。0 0。0。0。255

route-policy Pre_Val permit node 10 針對70。4路由修改首選值

if-match acl 2070

apply preferred-value 18

route-policy Pre_Val permit node 20 放過其他路由

bgp 200peer 200。1。25。5 route-policy Pre_Val import 針對鄰居25。5 入方向呼叫

路由策略

Local_preference 本地優先順序:預設值 100 ,越大越優先,

IBGP鄰居之間

有效,只能在本AS內傳播

R5: 針對70。2。2。0/24 修改本地優先順序 使得R4可以優選R5訪問70網段

R5:

acl number 2070

rule 5 permit source 70。2。2。0 0。0。0。255

route-policy Local_Pre permit node 10

if-match acl 2070

apply local-preference 122

route-policy Local_Pre permit node 20

bgp 100

peer 10。1。4。4 route-policy Local_Pre export

AS_Path :經過的AS越少越優先,可以用於IBGP和EBGP鄰居

配置:

R3: 透過修改AS_path 使得R2優先R5到達70。4網段

ip ip-prefix 70 index 10 permit 70。4。4。0 24 greater-equal 24 less-equal

24

route-policy AS_Path permit node 10

if-match ip-prefix 70

apply as-path 100 100 100 additive

route-policy AS_Path permit node 20bgp 100

peer 200。1。23。2 route-policy AS_Path export

起源型別Original :

I>E>? ,公認必遵屬性,該屬性可以跨AS傳遞

R3:

acl number 2704

rule 5 permit source 70。4。4。0 0。0。0。255

route-policy Ori permit node 10

if-match acl 2704

apply origin incomplete

route-policy Ori permit node 20

bgp 100

peer 200。1。23。2 route-policy Ori export

MED:Multi-Exit-Discriminator 預設值是0 越

越優先 類似IGP度量值 該

屬性僅在相鄰兩個AS直間傳遞 用於判斷流量進入AS時的最佳路由

注意:將igp引入bgp時 igp路由的開銷會自動移植到MED。

local_pre為空原因:(公認任意屬性),由於Local_Pre屬性僅在IBGP鄰居

之間有效,因此從EBGP鄰居收到的update報文不攜帶local_pre 值。因此從

ebgp鄰居收到的路由的local_pre 值是空。

MED值為空原因:(可選 非過渡屬性),在向EBGP鄰居傳送update更新時

預設不攜帶MED屬性,除非手動配置路由策略(route-policy)才會攜帶

注意:當屬性為空時可以看成該屬性所對應的預設值。

配置:R3:

ip ip-prefix 70 index 10 permit 70。4。4。0 24 greater-equal 24 less-equal

24

route-policy MED permit node 10

if-match ip-prefix 70

apply cost 8

#

route-policy MED permit node 20

bgp 100

peer 200。1。23。2 route-policy MED export

網路知識-23 BGP進階

39 BGP 路由聚合:

網路知識-23 BGP進階

① 靜態

R2:ip route-s 10。2。0。0 16 null 0

bgp 200

network 10。2。0。0 16

② 自動聚合

注意:只對引入的路由做聚合。彙總成主類網路。

R2:

bgp 200

summary automatic

③ 手動聚合 (重點)

bgp手動聚合放行明細路由原因:

原因A 放行明細並不是將所有的明細都放行 (只將bgp轉發表

裡面有的 或者 suppress-policy 未匹配的 放行)

原因B 部分明細路由放行是為了區分業務 方便對端AS部署路由

策略選路

例如:R2想將辦公A和業務A明細放行,方便對端AS配置策略

R2:

bgp 200

aggregate 10。2。0。0 255。255。0。0 (預設放行BGP 路由表裡面

存在的所有明細路由)或者aggregate 10。2。0。0 255。255。0。0 detail-suppressed 抑制

所有明細

或者aggregate 10。2。0。0 255。255。0。0 detail-suppressed

suppress-policy AA

ip ip-prefix BB permit 10。2。0。0 16 greater-equal 25 less

equal 32

route-policy AA permit node 10

if-match ip-prefix BB

將 /25 (互聯)到 /32 路由抑制 將其他明細路由(例如:

10。2。10。0/24 )傳遞過去

網路知識-23 BGP進階

注意:聚合路由會丟失部分屬性(例如:As-path、團體):因

為明細路由來自多個AS,且明細路由的屬性值不一致,將多條明

細路由彙總成一條時 容易丟失部分屬性。

網路知識-23 BGP進階

R4:首先在R4上面配置loopback介面 10。2。66。x 並引入bgp路

由表(可以透過network)

R5:然後在R5上做聚合,將聚合後的路由發給R7

bgp 100

aggregate 10。2。0。0 255。255。0。0 as-set detail-suppressed

R7:檢視結果

網路知識-23 BGP進階

注意:大括號裡面的AS是無序的即AS-set (AS集),大括號之

外的AS編號是有序的(AS_Sequence)普通常見的AS-path都

是有序的。

網路知識-23 BGP進階

原子聚合屬性:atomic-aggregate ,在聚合路由時 攜帶

details-suppress 引數(沒有攜帶suppress-policy),聚合後

的路由會攜帶該屬性,用於警告下游路由器出現資訊丟失(防

環)。

Aggregator 屬性:在聚合路由時,聚合後的路由會攜帶

aggregator屬性表明聚合發生的位置(防環),該屬性包含發起

聚合路由器的AS號和router id。

聚合路由時攜帶AS-path(as-set)的優缺點:

優點:避免環路風險

缺點:明細路由震盪,有可能會導致聚合路由的頻繁重新整理(例如

as-path頻繁重新整理),影響網路的穩定性。

團體屬性:community (輔助選路、過濾路由)

作用:標識具有相同特徵的bgp路由 類似tag功能(和字首列表

功能相似)

① 自定義團體屬性 (私有)例如:100:1

② 公共團體屬性 (公有)

NO_advertise 不傳遞給任何鄰居

NO_export 不傳遞給EBGP鄰居

網路知識-23 BGP進階

需求:對地市1的路由用團體屬性進行標識和區分然後再發向省級

互聯 200:1

業務A 200:2

辦公A 200:3

對於AS100 內去往200:3 (辦公網段)的路由優選二號專線

只將地市1 辦公A的路由傳遞到地市2

R2:

ip ip-prefix HuLian permit 10。2。0。0 16 greater-equal 25 less-equal 25

ip ip-prefix YeWuA permit 10。2。10。0 24 greater-equal 24 less-equal 24

ip ip-prefix BanGongA permit 10。2。60。0 24 greater-equal 24 less-equal 24

ip ip-prefix BanGongA permit 10。2。70。0 24 greater-equal 24 less-equal 24

route-policy COMM permit node 10

if-match ip-prefix HuLian

apply community 200:1 no-export

#

route-policy COMM permit node 20

if-match ip-prefix YeWuA

apply community 200:2 no-export

#

route-policy COMM permit node 30

if-match ip-prefix BanGongA

apply community 200:3

route-policy COMM permit node 500bgp 200

peer 200。1。23。3 route-policy COMM export

peer 200。1。23。3 advertise-community

peer 200。1。25。5 route-policy COMM export

peer 200。1。25。5 advertise-community

R3 R5:

(預設該屬性不傳遞)

bgp 100

peer 10。1。4。4 advertise-community 將團體屬性傳遞給鄰居R4

R4:

ip community-filter 1 permit 200:3

route-policy Pre_Val permit node 10

if-match community-filter 1

apply preferred-value 9

#

route-policy Pre_Val permit node 20

bgp 100

peer 10。1。5。5 route-policy Pre_Val import

網路知識-23 BGP進階

瞭解:去除某些comm 屬性:(並不是刪除路由)

ip community-filter 1 permit 200:1

route-policy AAA permit node 10apply comm-filter 1 delete 將路由中攜帶 community屬性200:1 的屬

性去掉(僅刪除屬性 不刪路由)

#

route-policy AAA permit node 20

網路知識-23 BGP進階

特性①:聚合路由團體屬性丟失,可以在聚合時追加團體屬性

R5:

acl number 2010

rule 5 permit source 10。2。0。0 0。0。255。255

route-policy CO permit node 10

if-match acl 2010

apply community 200:99

#

route-policy CO permit node 20

bgp 100

aggregate 10。2。0。0 255。255。0。0 as-set detail-suppressed attribute-policy CO

網路知識-23 BGP進階

特性②:向鄰居釋出預設路由

R5:

bgp 100

peer 200。1。57。7 default-route-advertise

網路知識-23 BGP進階

特性③:環回口建立EBGP鄰居

R3:

ip route-static 10。3。7。7 255。255。255。255 200。1。37。7

bgp 100

peer 10。3。7。7 as-number 300peer 10。3。7。7 ebgp-max-hop 2 (指定EBGP報文跳數為TTL=2,預設1)

peer 10。3。7。7 connect-interface LoopBack0

R7:

ip route-static 10。1。3。3 255。255。255。255 200。1。37。3

bgp 300

peer 10。1。3。3 as-number 100

peer 10。1。3。3 ebgp-max-hop 2

peer 10。1。3。3 connect-interface LoopBack0

頂部