文章目錄
前言
一:BGP協議理論
1.1:概述
1.2:動態路由的分類
1.2.1:按自治系統分類
1.2.2:按協議類型分類
1.3:BGP的特色
1.4:BGP的工做原理
1.4.1:BGP報文
1.4.2:BGP數據庫
1.4.3:BGP的類型
二:BGP協議實驗
2.1:實驗環境
2.2:實驗目的
2.3:實驗拓撲圖
2.4:實驗過程
2.4.1:命令講解
2.4.2:實操
2.5:實驗驗證
2.6:實驗總結
一:BGP協議理論
1.1:概述
BGP是一種運行在AS與AS之間的動態路由協議,主要做用是在AS之間自動交換無環路由信息
以此來構建AS的拓撲圖,從而消除路由環路並實施用戶配置的路由策略。
目前公網網絡條目衆多,IGP協議沒法承載,而BGP能夠輕鬆應對,一般BGP協議用於ISP和ISP之間或跨域地域總、分公司之間的路由信息交換
自制系統編號
自治系統(AS)是由一個技術管理機構管理,使用統一選路策略的一組路由器集合
自治系統編號範圍:1-65535,其中1-64511是互聯網上註冊公有AS號,相似公網IP地址。
64512-65535是私有AS號,相似私網IP地址
www.inna.org,註冊網址(我的沒法註冊)
1.2:動態路由的分類
1.2.1:按自治系統分類
IGP
自治系統內部路由協議,主要:RIP1/RIP二、OSPF、ISIS、EIGRP(思科私有協議)
IGP是運行在AS內部的路由協議,主要解決AS內部的選路問題,發現、計算路由
EGP
自治系統之間的路由協議,一般:BGP
EGP是運行在AS與AS之間的路由協議,他解決AS之間選路問題。
1.2.2:按協議類型分類
距離矢量路由協議
rip1/二、BGP(路徑矢量協議)、EIGRP(高級距離矢量協議)
鏈路狀態路由協議
OSPF、ISIS:使用SPF最短路徑算法
1.3:BGP的特色
傳輸協議:TCP,端口號179
BGP是外部路由協議,用來在AS之間傳遞路由信息
是一種加強的路徑矢量路由協議
擁有可靠的路由更新機制
具有豐富的Metric度量方法
無環路協議設計
爲路由條目附帶多種屬性信息
支持CIDR(無類別域間選路)
豐富的路由過濾和路由策略
無需週期性更新
路由更新時只發送增量路由
週期性發送KeepAlive報文以保持 TCP連通性
1.4:BGP的工做原理
1.4.1: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報文
1.4.2:BGP數據庫
IP路由表:全局路由信息庫,包括最優的IP路由信息
BGP路由表:BGP路由信息庫,包括本地BGPSpeak通告的路由信息,將其最優的添加到路由表中
鄰居表:對等體鄰居清單表,包括對等體兩端的鄰居信息及鄰居列表
Adi-RIB-In:對等體宣告給本地的Speak的未處理的路由信息庫
Adjust-RIB-OUT:本地Speak宣告給指定的對等體路由信息庫
1.4.3:BGP的類型
兩種鄰居:IBGP和EBGP
IBGP:同一個AS內部BGP鄰居關係,IBGP鄰居是指運行BGP協議的對等體兩端在同一個AS域內,屬於BGP AS內部
EBGP:AS之間的BGP鄰居關係,EBGP一般指運行BGP協議的對等體兩端在不一樣AS內部
二:BGP協議實驗
2.1:實驗環境
eNSP軟件
4臺路由器(R1,R2,R3,R5)
R1,R2,R4處於OSPF的area 0,也處於AS100中
R3處於AS200中
2.2:實驗目的
經過配置,實現全網互通
2.3:實驗拓撲圖
![華爲BGP動態路由協議理論+實驗](http://static.javashuo.com/static/loading.gif)
2.4:實驗過程
2.4.1:命令講解
BGP配置思路
一、啓用BGP,後面跟AS系統號
二、宣告Route-id,創建鄰居關係用,因爲此中含有OSPF協議,因此router-id能夠在啓動BGP前宣告,減小一個操做步驟
三、宣告和誰創建鄰居關係
四、通告BGP路由,(network、import)
命令展現
'//創建鄰居關係'
[R1]router-id 1.1.1.1 '//宣告router-id'
[R1]bgp 100 '//啓動bgp'
[R1-bgp]peer 7.7.7.7 as-number 100 '//創建鄰居關係第一步,宣告要創建的as區域'
[R1-bgp]peer 7.7.7.7 connect-interface loo 0 '//創建鄰居關係第二步,使用loo 0地址創建 鄰居關係'
[R1-bgp]network 1.1.1.1 32 '//宣告網段'
'//查看命令'
[R1] display bgp peer '//查看BGP鄰居'
[R1] display routing-table '//查看BGP路由表'
[R1-bgp] import-route ospf 1 '//注入ospf/ISIS中的路由'
'//只有創建鄰居關係,注入的路由信息才能被鄰居學習到'
2.4.2:實操
配置的命令我直接給出結果了,具體的你們應該都會,若是有疑問能夠私聊我或者評論交流
R1配置
sysname R1 //修更名稱
router id 1.1.1.1 //宣告router id
int g0/0/0 //配置接口地址
ip add 12.0.0.1 30
int g0/0/1 //配置接口地址
ip address 15.0.0.1 30
int loo 0 //配置接口地址
ip add 1.1.1.1 32
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 4.4.4.4 as-number 100 //和router id 爲4.4.4.4且as區域爲100的路由創建鄰居關係的第一步,指定對方
peer 4.4.4.4 connect-interface LoopBack0 //和router id 爲4.4.4.的路由創建鄰居關係的第二步,用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配置
sysname R2
router id 2.2.2.2
int g0/0/0
ip add 12.0.0.2 30
int g0/0/1
ip add 23.0.0.1 30
int loo 0
ip add 2.2.2.2 32
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 4.4.4.4 as-number 100
peer 4.4.4.4 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配置
sysname R3
router id 3.3.3.3
int g0/0/1
ip add 23.0.0.2 30
int loo 0
ip add 3.3.3.3 32
bgp 200
peer 23.0.0.1 as-number 100 //使用物理地址23.0.0.1和bgp100的路由器創建鄰居關係
network 3.3.3.3 255.255.255.255
R4配置
sysname R5
router id 4.4.4.4
int g0/0/1
ip add 15.0.0.2 30
int loo 0
ip add 4.4.4.4 32
int loo 1
ip add 202.0.0.1 24
int loo 2
ip add 202.0.1.1 24
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 4.4.4.4 255.255.255.255
ospf 1
area 0
network 4.4.4.4 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便可發現已經相互學習到了全部的路由條目
2.5:實驗驗證
成功全網互通,用相同方法測試其餘幾臺路由器便可
![華爲BGP動態路由協議理論+實驗](http://static.javashuo.com/static/loading.gif)
![華爲BGP動態路由協議理論+實驗](http://static.javashuo.com/static/loading.gif)
2.6:實驗總結
跨自治域創建鄰居關係須要使用物理地址,不然學習不到對方的路由條目
跨自治域創建鄰居關係的兩個路由器,想要學習對方區域的全部路由條目,須要對方將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