高端路由协议BGP,理解到爆炸

一.BGP概述

1.什么是BGP

 

  • BGP,Border Gateway Protocol,边界网关协议。
  • 运行在AS与AS之间的动态路由协议。
  • 主要作用是在AS之间自动交换无环路由信息,消除路由环路。
  • 以此构建AS拓扑图,可以实施用户配置的路由策略

2.自治系统——AS

  自治系统AS是有一个技术管理机构管理,使用统一选路策略的一组路由器集合

  自治系统编号范围:1——65535 ,其中1——64511 是互联网上注册公有AS号,类似于公网IP

  申请AS编号地址:http://www.iana.org/

 

3.BGP特征

  • 传输协议使用TCP协议,端口号为179
  • BGP是动态外部路由协议,用来在AS之间传递路由信息
  • 是一种增强的路径矢量路由协议
  • 拥有可靠的路由更新机制
  • 具备丰富的Metric度量方法
  • 无环路协议设计
  • 为路由条目附带多种属性信息
  • 支持CIDR(无类别域间选路)
  • 丰富的路由过滤和路由策略
  • 无需周期性更新
  • 路由更新时只发送增量路由
  • 周期性发送KeepAlive 报文以保持TCP连接畅通

4.动态路由分类

(1)按照自治系统分类

  IGP:自治系统内部路由协议,主要有:RIP,OSPF,ISIS,EIGRP(思科私有)

                 IGP是运行在AS内部的路由协议,主要哦解决AS内部的选路问题,发现和计算路由

  EGP:自治系统之间的路由协议,BGP

      EGP是运行在AS与AS之间的路由协议,它解决AS之间的选路问题

 

(2)按照协议类型分类

  距离矢量路由协议:RIP,BGP(路径矢量),EIGRP(高级路径矢量)  

  链路状态路由协议:OSPF,ISIS             ###使用最短路径树算法SPF

 

二.BGP的工作原理

1.BGP报文

  • Open报文:TCP建立后发送的第一个报文,用于建立BGP对等体之间的连接关系,主要包含BGP版本号,本地AS编号,Holdtime等信息
  • Update报文:用来在BGP之间更新路由信息。可以通告多条属性相同的可达路由信息
  • Notification 报文:当BGP检测到错误状态时,立即向对等体发送该报文,之后BGP就会中断。只要收到Notification报文就会返回idle状态
  • Route-refresh :用来告知对等体所支持的路由的刷新能力,BGP的入口策略路由发生变化,本地的BGP路由会向对等体发送Router-Refresh报文。收到信息后,对等体将其路由信息发给本地BGP路由器
  • KeepAlive:在对等体之间周期发送的报文,用以保持连接的有效性并维护其连接,KeepAlive报文只有一个BGP报文头,默认KeepAlive报文发送周期为60s,保持时间为180s。

OPEN报文

 

 

 UPDATE报文

 

KEEPALIVE报文

 

 

 2.BGP状态机

BGP对等体的建立过程中存在6种状态机,

空闲(Idle)、连接(Connect)、活跃(Active)、Open报文已发送(OpenSent)、Open报文已确认(OpenConfirm)和连接已建立(Established)。
在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Active和Established。

 

 3.BGP的数据库

  • IP路由表(IP-RIB):全局路由信息库,包括最优的IP路由信息
  • BGP路由表(Loc-RIB):BGP路由信息库,包括本地BGPDpeak通告的路由信息,将其最优的添加到路由表中
  • 邻居表:对等体邻居信息库,包括对等体两端的邻居信息及信息库
  • ADi-RIB-In:对等体宣告给本地Speak的未处理的路由信息库。
  • ADjust-RIB-OUT:本地Speak宣告给指定的对等体的信息库

注:路由器通过ADi-RIB-In跟新路由信息。

本地路由信息跟新数据写入ADjust-RIB-OUT

 

4.BGP邻居类型

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

 

 

三.配置BGP

1.配置思路

  • 启用BGP,后面跟本机AS系统号
  • 宣告Router-id,建立邻居关系用
  • 宣告和谁建立邻居关系
  • 通告BGP路由(可以使用Network方式逐条引入,也可以使用import 按照协议类型引入)

 2.实验拓扑:

  • R1 , R2, R5 先使用ospf 建立连接
  • R1,R2,R5 三个路由器,配置bgp时需要互相建立对等体关系
  • R1,R2,R5为 IBGP。R3与R2为EBGP 。
  • R3与R2使用静态路由建立连接
  • 使用回环口配置EBGP时,跳数是两跳。ebgp-max-hop 2

 

 配置R1

 1 [R1]router id 1.1.1.1                                          ###配置router id (全局)
 2 [R1]ospf 1
 3 [R1-ospf-1]area 0
 4 [R1-ospf-1-area-0.0.0.0]network  1.1.1.1 0.0.0.0
 5 [R1-ospf-1-area-0.0.0.0]network  15.0.0.0 0.0.0.3
 6 [R1-ospf-1-area-0.0.0.0]network  12.0.0.0 0.0.0.3             ###配置ospf ,宣告网络
 7 
 8 [R1]bgp 100                                                   ###进入编号100的AS域(本地)
 9 [R1-bgp]peer 2.2.2.2 as-number 100                            ###和AS编号100的域里 router id 为2.2.2.2 的路由建立对等体关系
10 [R1-bgp]peer 2.2.2.2 connect-interface  LoopBack  0           ###用本机的回环地址loopback 0 接口 和对方建立关系(用虚拟接口建立,不会物理断开)
11 [R1-bgp]peer 5.5.5.5 as-number  100                           ###和AS编号100的域里 router id 为5.5.5.5 的路由建立对等体关系
12 [R1-bgp]peer 5.5.5.5 connect-interface  LoopBack  0           ###用本机的回环地址loopback 0 接口 和对方建立关系

 

配置 R2

 1 [R2]router id 2.2.2.2                                         ###全局 router id 2.2.2.2[R20ospf-1] area 0[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0 
 2 [R2-ospf-1-area-0.0.0.0]network  12.0.0.0 0.0.0.3             ###配置OSPF,宣告网络(23.0.0.1/30 不用宣告,这是EBGP)
 4 [R2]ip route-static  3.3.3.3 32 23.0.0.2                      ###配置静态路由到达R3的回环口,将R2和R3连接,建立控制层数据流量通道
 6 [R2]bgp 100                                                   ###进入编号为100 的AS域(本地)
 7 [R2-bgp]peer 1.1.1.1 as-number  100                           ###和 100 域里的 router id1.1.1.1 的路由建立对等体关系
 8 [R2-bgp]peer 1.1.1.1 connect-interface  LoopBack 0            ###用本地的回环口 loopback 0 和对方建立关系
10 [R2-bgp]peer 5.5.5.5 as-number 100
11 [R2-bgp]peer 5.5.5.5 connect-interface  LoopBack  0
13 [R2-bgp]peer 3.3.3.3 as-number  200                           ###3.3.3.3 和 本机属于两个域。和 域 200里的router ID为 3.3.3.3的路由建立对等体关系[R2-bgp]peer  3.3.3.3 connect-interface  LoopBack 0           ###使用loopback 0 接口建立关系        
14 [R2-bgp]peer  3.3.3.3 ebgp-max-hop  2                         ###设置bgp的 dbpg-max-hop属性,下一跳步数为2 (从3.3.3.3 到2.2.2.2 需要2 跳)
15 [R2-bgp]network 23.0.0.0 30
16
[R2-bgp]import-route static

 

 配置R3

1 [R3]router id 3.3.3.3                                        ###配置全局router id [R3]ip route-static  2.2.2.2 32  23.0.0.1                    ###R3配置到达R2的2.2.2.2 的静态路由
2 [R3]bgp 200                                                  ###进入AS域 200
3 [R3-bgp]peer 2.2.2.2 as-number  100                          ###和100域里router id 为2.2.2.2 的路由器建立对等体关系
4 [R3-bgp]peer 2.2.2.2 connect-interface  LoopBack  0          ###用回环口 loopback0 建立关系
5 [R3-bgp]peer 2.2.2.2 ebgp-max-hop 2                          ###设置下一跳属性为2

 

配置R5

 1 [R5]router id 5.5.5.5                                      ###设置全局router id 5.5.5.5
 2 [R5]ospf 1
 3 [R5-ospf-1]area 0
 4 [R5-ospf-1-area-0.0.0.0]network  5.5.5.5 0.0.0.0
 5 [R5-ospf-1-area-0.0.0.0]network  15.0.0.0 0.0.0.3
 6 [R5-ospf-1-area-0.0.0.0]network  202.0.0.0  0.0.0.255      ###配置OSPF,及宣告网路。(将业务网段202.0.0.0/24 宣告在ospf中,是为了等会使用import 注入)
 7 
 8 [R5]bgp 100                                                ###进入域100 (本地)
 9 [R5-bgp]peer 1.1.1.1 as-number 100                         ###和100 域里 router id1.1.1.1 的路由建立对等体关系
10 [R5-bgp]peer 1.1.1.1 connect-interface  LoopBack 0         ### 用回环口loopback 0 建立关系
11 [R5-bgp]peer  2.2.2.2 as-number  100                       ###和 200 域里 router id 为2.2.2.2 的路由建立对等体关系
12 [R5-bgp]peer 2.2.2.2 connect-interface  LoopBack  0        ###用回环口loopback 0 建立关系
13 
14 [R5-bgp]network 202.0.1.0 24                               ###宣告业务网段
16 
17 [R5-bgp]import-route  ospf  1                              ###将ospf 1 的网段注入###bgp宣告网段,可以是精确指定,network 宣告。这种宣告优先级最高。 也可以是import 注入,注入各种协议,如ospf,rip,直连,静态 等等

 

 ping测试

 

 

 

posted @ 2021-06-05 20:46  十一没有撤退可言!  阅读(536)  评论(0编辑  收藏  举报