BGP協議簡介,利用BGP實現跨AS通信需求(實驗驗證)

BGP協議理論

BGP概述

BGP是一種運行在AS與AS之間的動態路由協議,主要作用是在AS之間自動交換無環路由信息
以此來構建AS的拓撲圖,從而消除路由環路並實施用戶配置的路由策略。
目前公網網絡條目衆多,IGP協議無法承載,而BGP可以輕鬆應對,通常BGP協議用於ISP和ISP之間或跨域地域總、分公司之間的路由信息交換
自制系統編號
自治系統(AS)是由一個技術管理機構管理,使用統一選路策略的一組路由器集合
自治系統編號範圍:1-65535,其中1-64511是互聯網上註冊公有AS號,類似公網IP地址。
64512-65535是私有AS號,類似私網IP地址
www.inna.org,註冊網址(個人無法註冊)

動態路由的分類

按自治系統分類

IGP
自治系統內部路由協議,主要:RIP1/RIP2、OSPF、ISIS、EIGRP(思科私有協議)
IGP是運行在AS內部的路由協議,主要解決AS內部的選路問題,發現、計算路由
EGP
自治系統之間的路由協議,通常:BGP
EGP是運行在AS與AS之間的路由協議,他解決AS之間選路問題。

按協議類型分類

距離矢量路由協議
rip1/2、BGP(路徑矢量協議)、EIGRP(高級距離矢量協議)
鏈路狀態路由協議
OSPF、ISIS:使用SPF最短路徑算法

BGP的特點

●傳輸協議:TCP,端口號179
●BGP是外部路由協議,用來在AS之間傳遞路由信息
●是一種增強的路徑矢量路由協議
●擁有可靠的路由更新機制
●具備豐富的Metric度量方法
●無環路協議設計
●爲路由條目附帶多種屬性信息
●支持CIDR(無類別域間選路)
●豐富的路由過濾和路由策略
●無需週期性更新
●路由更新時只發送增量路由
●週期性發送KeepAlive報文以保持 TCP連通性

BGP的工作原理

BGP報文

Open報文
OPen報文是TCP建立後發送的第一個報文,用於建立BGP對等體之間的連接關係,主要包含BGP版本號、本地AS編號、Holdtime等信息
UPdate報文
Update報文用來在BGP之間更新路由信息,Updata報文可以通告多條屬性相同的可達路由信息,也可以撤銷多條路由不可達的路由信息
Notification報文
報文的作用是當BGP檢測到錯誤狀態時候,立即向對等體發送NOtification報文,之後BGP就會中斷只要收到Notification報文就會返回idle狀態
Route-Refresh報文
用來告知對等體所支持路由的刷新能力,BGP的入口策略路由發生變化,本地的BGP路由會向對等體發送Route-Refresh報文,收到信息後,對等體將其路由信息重新發送給本地BGP路由器
KeepAlive報文
該報文在對等體之間週期的發送報文,用以保持連接的有效性並維護其連接,KeepAlive報文只有一個BGP報文頭,默認KeepAlive報文發送週期爲60S,保持時間180S,這個類似於OSPF中的Hello報文

BGP數據庫

IP路由表:全局路由信息庫,包括最優的IP路由信息
BGP路由表:BGP路由信息庫,包括本地BGPSpeak通告的路由信息,將其最優的添加到路由表中
鄰居表:對等體鄰居清單表,包括對等體兩端的鄰居信息及鄰居列表
Adi-RIB-In:對等體宣告給本地的Speak的未處理的路由信息庫
Adjust-RIB-OUT:本地Speak宣告給指定的對等體路由信息庫

BGP的類型

兩種鄰居:IBGP和EBGP
IBGP:同一個AS內部BGP鄰居關係,IBGP鄰居是指運行BGP協議的對等體兩端在同一個AS域內,屬於BGP AS內部
EBGP:AS之間的BGP鄰居關係,EBGP通常指運行BGP協議的對等體兩端在不同AS內部

BGP跨AS路由實驗配置

實驗環境

eNSP軟件
4臺路由器(R1,R2,R3,R5)
R1,R2,R5處於OSPF的area 0,也處於AS100中
R3處於AS200中

實驗目的

通過相應配置,實現路由全收斂,達到全網通信目的

實驗拓撲圖

在這裏插入圖片描述

具體配置參數

R1配置

[R1]dis cu '//查看R1的所有配置'
#
sysname R1	'//修改名稱'
#
router id 1.1.1.1	'//宣告router id'
#

#
interface GigabitEthernet0/0/0	'//配置接口地址'
 ip address 12.0.0.1 255.255.255.252
#
interface GigabitEthernet0/0/1	'//配置接口地址'
 ip address 15.0.0.1 255.255.255.252
#

#
interface LoopBack0	'//配置接口地址'
 ip address 1.1.1.1 255.255.255.255
#
bgp 100	'//啓動bgp,100爲進程號'
 peer 2.2.2.2 as-number 100	'//和router id 爲2.2.2.2且as區域爲100的路由建立鄰居關係的第一步,指定對方'
 peer 2.2.2.2 connect-interface LoopBack0	'//和router id 爲2.2.2.2的路由建立鄰居關係的第二步,用loo 0接口連接對方'
 peer 5.5.5.5 as-number 100	'//和router id 爲5.5.5.5且as區域爲100的路由建立鄰居關係的第一步,指定對方'
 peer 5.5.5.5 connect-interface LoopBack0	'//和router id 爲5.5.5.5的路由建立鄰居關係的第二步,用loo 0接口連接對方'
 #
network 1.1.1.1 255.255.255.255	'//宣告網段'
#
ospf 1	'//啓動ospf進程爲1'
 area 0.0.0.0	'//宣告ospf區域'
  network 1.1.1.1 0.0.0.0	'//以下都爲宣告網段'
  network 12.0.0.0 0.0.0.3
  network 15.0.0.0 0.0.0.3
#

R2配置

'//步驟意思和R1相同,不在贅述,但其中和bgp200建立鄰居關係屬於跨區域建立,需要注意使用物理地址建立連接,不可以使用虛擬接口'
[R2]dis cu
#
sysname R2
#
router id 2.2.2.2
#

#
interface GigabitEthernet0/0/0
 ip address 12.0.0.2 255.255.255.252
#
interface GigabitEthernet0/0/1
 ip address 23.0.0.1 255.255.255.252
#

#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
#
bgp 100
 peer 1.1.1.1 as-number 100
 peer 1.1.1.1 connect-interface LoopBack0
 peer 5.5.5.5 as-number 100
 peer 5.5.5.5 connect-interface LoopBack0
 peer 23.0.0.2 as-number 200	'//直接使用23.0.0.2的物理地址和bgp200區域的路由器建立連接,不可以使用虛擬接口地址'
 #
  network 2.2.2.2 255.255.255.255	'//宣告網段'
  import-route ospf 1	'//注入ospf 1 的路由條目,否則R3學習不到bgp100中的其他路由條目,除了R2在BGP中宣告的2.2.2.2,其他的都會學習不到,所以需要注入ospf 1 的路由條目'
#
ospf 1
 area 0.0.0.0
  network 2.2.2.2 0.0.0.0
  network 12.0.0.0 0.0.0.3
  network 23.0.0.0 0.0.0.3
#

R3配置

'//基本都是相同步驟,此處不再贅述步驟含義'
[R3]dis cu
#
sysname R3
#
router id 3.3.3.3
#

#
interface GigabitEthernet0/0/1
 ip address 23.0.0.2 255.255.255.252
#

#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
#
bgp 200
 peer 23.0.0.1 as-number 100	'//使用物理地址23.0.0.1和bgp100的路由器建立鄰居關係'
 #
network 3.3.3.3 255.255.255.255
#

R5配置

'//基本都是相同步驟,此處不再贅述步驟含義'
[R5]dis cu
#
sysname R5
#
router id 5.5.5.5
#

#
interface GigabitEthernet0/0/1
 ip address 15.0.0.2 255.255.255.252
#

#
interface LoopBack0
 ip address 5.5.5.5 255.255.255.255
#
interface LoopBack1
 ip address 202.0.0.1 255.255.255.0
#
interface LoopBack2
 ip address 202.0.1.1 255.255.255.0
#
bgp 100
 peer 1.1.1.1 as-number 100
 peer 1.1.1.1 connect-interface LoopBack0
 peer 2.2.2.2 as-number 100
 peer 2.2.2.2 connect-interface LoopBack0
 #
network 5.5.5.5 255.255.255.255
#
ospf 1
 area 0.0.0.0
  network 5.5.5.5 0.0.0.0
  network 15.0.0.0 0.0.0.3
  network 202.0.0.0 0.0.0.255
  network 202.0.1.0 0.0.0.255
#

此時我們使用dis ip routing-table即可發現已經相互學習到了所有的路由條目

驗證

成功全網互通,用相同方法測試其他幾臺路由器即可
在這裏插入圖片描述

小結

跨自治域建立鄰居關係需要使用物理地址,否則學習不到對方的路由條目
跨自治域建立鄰居關係的兩個路由器,想要學習對方區域的所有路由條目,需要對方將ospf或者IS-IS的路由條目注入進來
跨自治域建立鄰居關係如果要使用虛擬迴環地址,需要添加靜態路由,並指向下一條爲兩跳

'//靜態路由的添加不在贅述'
##R2##
[R2] router id 2.2.2.2
[R2] bgp 100
[R2-bgp] peer 3.3.3.3 as-number 200
[R2-bgp] peer 3.3.3.3 connect-interface LoopBack 0
[R2-bgp] peer 3.3.3.3 ebgp-max-hop 2

##R3##
[R3] router id 3.3.3.3
[R3] bgp 200
[R3-bgp] peer 2.2.2.2 as-number 100
[R3-bgp] peer 2.2.2.2 connect-interface LoopBack 0
[R3-bgp] peer 2.2.2.2 ebgp-max-hop 2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章