筆記 BGP
IGP:以最快的速度,計算一個去往目標網絡的最短的、無環的轉發路徑
-DV
RIP
IGRP
EIGRP
-LS
ISIS
OSPF
EGP:在不同的企業之間,實現大量路由的穩定可靠的傳輸,並且可以實現路由
的靈活控制,並且保證無環;
-BGP:border gateway protocol ,邊界網關協議
用於連接不同的企業或者組織結構;
prefix/mask type priority cost next-hop , interface
數據庫中 ---(priority/cost)---> 路由表中 -match packet : 最長匹配原則
money money home
優先級:表示的路由的穩定性,值越小越好;0-255 ;
Metric(度量值):表示的是去往一個目標網絡的距離的遠近,越小越好;
OSPF:
1、鄰居表
2、數據庫
3、路由表
-hello:是非可靠傳輸方式;
-DBD:隱式確認,通過DBD報文中的序列號字段進行確認;
-LSU:顯式確認,每發送一個LSU,都會返回一個LSAck;
-LSR:顯式確認,每發送一個LSR,都會返回一個LSAck;
-LSAck:僅僅對其他報文實現確認作用,但是本身的傳輸是不可靠的;
L2+L3+OSPF
BGP:
L2+L3+TCP+BGP - tcp 179
L2+L3+UDP+RIP - udp 520
L2+L3+EIGRP - protocol-id:88
L2+ISIS
關於交換:
BCMSN chm/pdf
BGP工作原理:
1、鄰居表:display bgp peer
2、數據庫:display bgp routing-table
3、路由表
bgp {as} # as 分為公有和私有,[64512--65535]
peer {ip-address} as-number {對方設備的}
BGP鄰居建立:
-內部鄰居
R1;
bgp 64512 # 設備本地運行的 BGP AS 號;
peer 192.168.12.2 as-number 64512 #鄰居路由器屬於的 AS 號;
R2;
bgp 64512
router-id 2.2.2.2
peer 192.168.12.1 as-number 64512
display bgp peer # 查看設備上的 BGP 鄰居表;
local-as
local-router-id
number of peers
peer v as msgrcvd msgsent outq up/down state prefrvcd
R1:
bgp 64512
peer 10.10.2.2 as-number 64512
# R1 主動向 10.10.2.2 發起一個 TCP 179 的鏈接;
# 10.10.2.2 必須位於 AS 64512
or
10.10.2.2 的回復報文,必須是屬於as 64512 的;
# 對方回包時,所使用的源IP地址必須是 10.10.2.2 ,
否則不接受(這就是“更新源檢測機制”)
為了解決“非直連端口建立鄰居時”所面臨的“更新源檢測機制”,
所以我們在發送 BGP 鏈接請求時候,更改報文的源IP地址:
例如:
bgp 64512
peer 10.10.2.2 connect-interface loopback 0
強烈建議:
非直連端口建立BGP鄰居關系時,兩邊的Peer命令,都使用
該參數;
非直連IBGP鄰居關系建立:
1、配置IP
2、配置IGP
3、配置BGP
外部BGP鄰居建立時候需要考慮的機制:
1、更新源檢測機制 -- 與IBGP鄰居是相同的;
2、直連檢測機制
#在什麽時候才會檢查該機制
在建立EBGP時,並且發送的BGP報文的 TTL 為 1 時,才會檢查;
#該機制的定義是什麽
&去往鄰居地址時,使用的必須是“直連路由”,
如果不是,則表示不滿足“直連檢測機制”,從而無法建立EBGP鄰居
面對為了鏈路穩定為建立的“非直連的 EBGP 鄰居關系”,我們需要修改 EBGP
報文的 TTL 值不是“1”即可。因為,一旦不是1,就不會關心該機制了。
bgp 64513
peere 10.10.2.2 ebgp-max-hop [255]
============================================================
IBGP鄰居防環機制:
-IBGP水平分割
指的是從內部鄰居路由器收到的路由,不會再次發送給其他的內部鄰居;
解決方案:
-IBGP全互連
-BGP聯盟
大AS:在外部鄰居關系之間發送的報文中,使用的是大AS;
小AS: 在聯盟內部的“內部鄰居”之間肯定是用;
在聯盟內部的“聯盟成員AS”之間的特殊的外部鄰居之間也使用;
R1:
bgp 64512
confederation id 200 # BGP聯盟的號碼,表示的是 大AS
peer 10.10.2.2 as-number 64512
peer 10.10.2.2 connect-interface loopback 10
R2:
bgp 64512
confederation id 200
confederation peer-as 64513
peer 10.10.1.1 as-number 64512 #與R1為內部鄰居,所以使用小AS
peer 10.10.1.1 connect-interface loopback 0
peer 10.10.3.3 as-number 64513 #聯盟內部的特殊的外部鄰居,使用小AS
peer 10.10.3.3 connect-interface loopback 0
peer 10.10.3.3 ebgp-max-hop
peer 192.168.24.4 as-number 400 # 此時與R4建立鄰居使用的是大AS
R3:
bgp 64513
confederation id 200
confederation peer-as 64512
peer 10.10.2.2 as-number 64512
peer 10.10.2.2 connect-interface loopback 10
peer 10.10.2.2 ebgp-max-hop
BGP (二)
IGP
EGP
BGP
IBGP
-IBGP的水平分割
#IBGP全互聯
#聯盟(大AS和小AS)
#路由反射器(route-reflector)
-當我們將一個路由器配置為BGP的“路由反射器”之後,
該路由器就會不關心“IBGP水平分割”機制。
-路由反射器 + 路由反射器客戶端 = 路由反射 簇 (cluster)
R5;
bgp 64512
peer 10.10.4.4 reflect-client #將R4作為自己的客戶端;
從而自己成為了反射器;
EBGP
BGP路由在傳遞過程下一跳的變化:
1、在內部鄰居之間傳遞的時候,下一跳是不變化的;
2、在外部鄰居之間傳遞的時候,下一跳是會變化的;
在AS的邊界路由器上,對自己的內部鄰居配置“下一跳自我”:
R7:
bgp 64513
peer 10.10.6.6 next-hop-local
# R7發送給 R6 的所有的路由的下一跳為 10.10.7.7 ;
BGP在什麽情況下使用:
1、運營商之間使用 BGP ;
2、當企業具有多出口網絡設計的時候,可以使用 BGP ;
3、當想對路由選路進行靈活控制的時候,可以使用BGP;
BGP 13 條選路原則:
1、權重(prefered value | weight ) ,私有屬性,值越大越好;
2、local preference ,本地優先級,越大越好;
3、是否為本地起源
所謂本地起源,表示的是本地產生的BGP路由。
對於BGP路由器而言,BGP路由分為兩種:
自己本地產生的
從其他路由器學習的
本地產生的,要優於 “從其他路由器”學習的路由
4、as-path長度 ,越短越好(屬性as-path可以實現不同AS之間的路由轉發環路的防護)
as-path 表示的是 BGP 路由在傳遞過程中,前後依次經歷過的 AS 號的組成;
當BGP路由器發現收到的BGP路由的 AS-path 屬性中包含了自己的 AS號,
則表明該路由在傳遞過程中,曾經穿越過自己的 AS ,
那麽,就不接收該路由條目,以防止路由環路的發生;
as-path 的形成過程是:從右向左;
默認情況下,as-path在 外部鄰居之間發送路由的時候,才會變化;
5、origin code ,本地起源屬性( i > e > ? )
6、MED,值越小越好(只有當鄰居AS相同時,才會進行比較)
7、EBGP優先於IBGP
8、去往BGP路由的下一跳的 IGP Metric ,越小越好;
9、負載均衡
如果開啟的話,則將多個路由條目都放入到路由表中;
並且將 best 路由,發送給鄰居;
10、越老越好(僅僅對於EBGP)
11、RID(router-id),越小越好;
12、Cluster list 長度,越短越好;
13、peer address ,越小越好;
====================================================================
R1:更改 BGP 屬性 - local preference
1、匹配感興趣的路由;
acl 2000
rule 5 permit source 80.80.80.0 0.0.0.255
2、創建路由策略
route-policy CCNA permit node 10
if-match acl 2000
apply local-preference 333
3、調用路由策略
bgp 100
peer 10.10.3.3 route-policy CCNA import # 調用入向路由策略
4、驗證
display bgp routing-table #去往80 的路由,下一跳變成 R3;
display bgp routing-table peer 10.10.3.3 received-route
存在的問題:R1從R3收路由時,少了40和70的相關路由。
註意:
基本ACL在匹配路由條目時,只能匹配路由的前綴,不能匹配掩碼;
擴展ACL是可以的;
=================================================================
R2:更改 BGP 屬性 - as-path 屬性
1、創建ACL,匹配感興趣的路由(40.40.40.0/24)
acl 2004
rule 5 permit source 40.40.40.0 0.0.0.0
2、創建 route-plicy , 修改 as-path:添加一個 210,將as-path長度變為2;
route-policy R2-R4-IN permit node 10
if-match acl 2004
apply as-path 210 additive
route-policy R2-R4-IN permit node 100
3、調用路由策略
bgp 100
peer 192.168.24.4 route-policy R2-R4-IN import
4、驗證、測試、保存
R2:
display bgp routing-table as-path
*> 40.40.40.0/24 10.10.3.3 200
10.10.2.2 100 200
==================================================================
acl 2000
rule 5 permit source 80.80.80.0 0.0.0.0 # 此時ACL匹配的是 prefix
rule max deny source any
40.40.40.0
70.70.70.0
Route-policy : CCNA 【route-map】
permit : 10 (matched counts: 7)
Match clauses :
if-match acl 2000
Apply clauses :
apply local-preference 333
[註意:]
route-plicy 最後有一個隱含的 deny any ;
如果想表示 permit any ;
route-policy {name} permit {node-id}
if-match #不寫任何的匹配條件,則表示匹配所有;
apply {路由屬性} # 在不寫 if-math 的情況下,可以寫 apply ;
R1:
bgp 100
peer 10.10.3.3 route-policy CCNA import
display bgp routing-table
少了 40 , 70 ;
筆記 BGP