动态路由协议BGP

目录:

  一:BGP概述

    1,什么是BGP  

    2,自治系统——AS

    3,BGP特征

    4,动态路由分类

  二:BGP的工作原理

    1,BGP报文

    2,BGP状态机

    3,BGP数据库

    4,BGP邻居类型

  三:配置BGP

    1,配置思路

    2,实验拓扑

    3,配置R1

    4,配置R2 

    5,配置R3

    6,配置R5

    7,查看路由及ping测试

 

 

一: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

 

 

3,配置R1

[R1]router id 1.1.1.1                                          ###配置router id (全局)
[R1]ospf 1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network  1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network  15.0.0.0 0.0.0.3
[R1-ospf-1-area-0.0.0.0]network  12.0.0.0 0.0.0.3             ###配置ospf ,宣告网络

[R1]bgp 100                                                   ###进入编号100的AS域(本地)
[R1-bgp]peer 2.2.2.2 as-number 100                            ###和AS编号100的域里 router id 为2.2.2.2 的路由建立对等体关系
[R1-bgp]peer 2.2.2.2 connect-interface  LoopBack  0           ###用本机的回环地址loopback 0 接口 和对方建立关系(用虚拟接口建立,不会物理断开)
[R1-bgp]peer 5.5.5.5 as-number  100                           ###和AS编号100的域里 router id 为5.5.5.5 的路由建立对等体关系
[R1-bgp]peer 5.5.5.5 connect-interface  LoopBack  0           ###用本机的回环地址loopback 0 接口 和对方建立关系

 

 

4,配置R2          

[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 [R2-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.3 ###配置OSPF,宣告网络(23.0.0.1/30 不用宣告,这是EBGP) [R2]ip route-static 3.3.3.3 32 23.0.0.2 ###配置静态路由到达R3的回环口,将R2和R3连接,建立控制层数据流量通道 [R2]bgp 100 ###进入编号为100 的AS域(本地) [R2-bgp]peer 1.1.1.1 as-number 100 ###和 100 域里的 router id 为 1.1.1.1 的路由建立对等体关系 [R2-bgp]peer 1.1.1.1 connect-interface LoopBack 0 ###用本地的回环口 loopback 0 和对方建立关系 [R2-bgp]peer 5.5.5.5 as-number 100 [R2-bgp]peer 5.5.5.5 connect-interface LoopBack 0 [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 接口建立关系 [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 跳) [R2-bgp]network 23.0.0.0 30
[R2-bgp]import-route static
###R2与R3的回环口3.3.3.3 是使用静态路由相连,在R2上注入静态路由,可以使得R1和R5 学习到到达3.3.3.3 的路由
                                ###不管是注入到BGP还是注入到OSPF都是可以

 

 

 5,配置R3

[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 的静态路由 [R3]bgp 200 ###进入AS域 200 [R3-bgp]peer 2.2.2.2 as-number 100 ###和100域里router id 为2.2.2.2 的路由器建立对等体关系 [R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0 ###用回环口 loopback0 建立关系 [R3-bgp]peer 2.2.2.2 ebgp-max-hop 2
###设置下一跳属性为2

 

 

6,配置R5

[R5]router id 5.5.5.5                                      ###设置全局router id 5.5.5.5
[R5]ospf 1
[R5-ospf-1]area 0
[R5-ospf-1-area-0.0.0.0]network  5.5.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.0]network  15.0.0.0 0.0.0.3
[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 注入)

[R5]bgp 100                                                ###进入域100 (本地)
[R5-bgp]peer 1.1.1.1 as-number 100                         ###和100 域里 router id 为 1.1.1.1 的路由建立对等体关系
[R5-bgp]peer 1.1.1.1 connect-interface  LoopBack 0         ### 用回环口loopback 0 建立关系
[R5-bgp]peer  2.2.2.2 as-number  100                       ###和 200 域里 router id 为2.2.2.2 的路由建立对等体关系
[R5-bgp]peer 2.2.2.2 connect-interface  LoopBack  0        ###用回环口loopback 0 建立关系

[R5-bgp]network 202.0.1.0 24                               
                            ###宣告业务网段

[R5-bgp]import-route  ospf  1                              ###将ospf 1 的网段注入

###bgp宣告网段,可以是精确指定,network 宣告。这种宣告优先级最高。 也可以是import 注入,注入各种协议,如ospf,rip,直连,静态 等等

 

 

7,查看路由及测试

dis ip routing-table protocol bgp     ###查看通过bgp学到的路由

 

 ####可以看到,R3通过EBGP学到了 AS100 里的路由

ping测试

 

posted @ 2021-06-05 09:43  知己一语  阅读(776)  评论(0编辑  收藏  举报