BGP路由技术

BGP路由技术

一、BGP概述

1、自治系统(AS)

  • 是由一个技术管理机构管理,使用统一选路策略的一组路由器集合
  • 自治系统编号范围:1~65535,其中 1~64511 是互联网上注册公有AS号,类似公网 IP地址,其中64512~65535私有AS号,类似私网 IP地址

2、动态路由分类

1)按自治系统分类

  • IGP:自治系统内部路由协议,主要RIP 1/RIP2,OSPF,ISIS,EIGRP(Cisco 私有协议)
  • BGP:自治系统之间的路由协议,通常:BGP

                 BGP是运行在 AS内部的路由协议,它解决AS 之间选路问题

2)按协议 类型分类

  • 距离矢量路由协议:RIP 1/2 ,BGP(路径矢量协议),EIGRP(高级矢量协议)
  • 链路状态路由协议:OSPF、ISIS      SPF(最短路径算法,通告的是链路状态)

3、BGP的概念

  • BGP是一种运行在AS与AS之间的动态路由协议,主要作用是在AS 之间自动交换无环路由信息,以此来构建AS的拓扑图,从而消除路由环路

并实施用户配置的路由策略,目前公网网络条目总舵,IGP协议无法承载,而BGP可以轻松应对,通常 BGP协议用于 ISP(服务器)和ISP 之间

或跨域地域总、分公司之间的路由信息交换

4、BGP的特征

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

二、BGP 工作原理

1、BGP邻居关系

(1)BGP报文

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

(2)BGP状态机

idle状态-空闲
connece状态-连接
active状态-活动
opensent状态-开启发送
openconfirm状态-开启确认
established状态-建立

(3)BGP数据库

IP路由表:全局路由信息库,包括最优的IP路由信息
BGP路由表:BGP路由信息库,包括本地 BGPSpeak通告的路由信息,将其最优的添加到路由表中
邻居表:对等体邻居清单表,包括对等体两端的邻居信息及邻居列表
Adi-RIB-In:对等体宣告给本地的Speak 的未处理的路由信息库
Adjust-RIB-OUT:本地Speak宣告给指定的对等体路由信息库

(4)BGP的邻居关系类型

两种邻居:IBGP和EBGP
IBGP:同一个AS内部BGP邻居关系,IBGP邻居是指允许BGP协议的对等体两端在同一个AS域内,属于BGP AS内部
EBGP:AS之间的BGP邻居关系,EBGP通常指允许BGP协议的对等体两端在不同AS内部

2、通告BGP路由的方法

(1)netwrok方式

[R1-bgp] network 1.1.1.1 32
[R1-bgp] network 2.2.2.2 32

(2)import方式

[R1-bgp] import-route ospf 110 ###注入ospf中的路由
[R1-bgp] import-route static ###注入静态路由
[R1-bgp] import-route direct ###注入直连路由

三、BGP的配置

1、BGP配置思路

  • 启用BGP,后面跟AS系统号
  • 宣告route-id,建立邻居关系用
  • 宣告和谁建立邻居关系
  • 通告BGP路由(network、import)

2、BGP对等体配置

 

如R1与R2建立邻居对等,as系统号为100,R1 router-id为1.1.1.1,R2 router-id为2.2.2.2
R1
[R1]Router id 1.1.1.1      # 宣告 router id
[R1]bgp 100                   # 写自己的AS
[R1-bgp]peer 7.7.7.7 as-number 100   # 环回口键邻居,100为根据对方AS的域名
[R1-bgp]peer 7.7.7.7 connect-interface loopback 0 #用环回口键邻居
[R1-bgp]network 1.1.1.1 32    # 宣告所属网段路

R2:
[R2] router-id 2.2.2.2
[R2] bgp 100
[R2-bgp] peer 1.1.1.1 as-number 100
[R2-bgp] peer 1.1.1.1 connect-interface LoopBack 0

配置EBGP命令
[R-bgp]peer 7.7.7.7 ebqp-max-hop 2   #到达目的环回口需要 2跳,EBGP 外部邻接关系之间建立静态路由,点到点之间传输
[R1]display bgp peer   # 查看BGP邻居
[R1]dis routing-table  # 查看BGP路由
[R1]import-route ospf 110 # 注入ospf 中路由

 

3、保证IBGP下一跳可达

  • 在EBGP之间建立对等邻居时,由于它们之间数据传输需经2跳,因此需做如下设置
[R2-bgp] peer 3.3.3.3 ebgp-max-hop 2

4、BGP属性

  • 路由器发送关于目标网络的BGP更新消息,更新的度量值被称为路径属性。属性可以是公认的或可选的、强制的或自由决定的、传递的或非传递的。属性也可以是部分的。并非组织的和有组合的都是合法的,路径属性分为4类:公认必遵、公认自决、可选过渡、可选非过渡。

(1)公认属性

  • 是公认所有BGP实现都必须识别的属性,这些属性被传递给BGP邻居。
  • 公认强制属性必须出现在路由描述中,公认自由决定属性可以不出现在路由描述中。

(2)可选属性

  • 非公认属性被称为可选的,可选属性可以是传递的或非传递的。
  • 可选属性不要求所有的BGP实现都支持。
  • 对于不支持的可选传递属性,路由器将其原封不动的传递给其他BGP路由器,在这种情况下,属性被标记为部分的。
  • 对于可选非传递属性,路由器必须将其删除,而不将其传递给其他BGP路由器。

5、BGP选路原则

优选具有最大Weight值的路由
优选具有最大Local_Preference值的路由
优选起源于本地的路由(如本地network、aggregate或redistribute的)即下一跳是0.0.0.0(在BGP表中,本路由器通告的路由的下一跳为0.0.0.0)
优选AS-Path最短的路由
Origin(IGP>EGP>incomplete)
优选MED最小的路由,默认情况下仅有当所有备选路由来自同一AS才会比较MED
优选EBGP邻居发来的路由(相对于IBGP邻居学过来的),在联邦EBGP和IBGP中首选联邦EBGP路由
优选到BGP next_hop 最近的邻居
执行等价负载均衡(如果有多条来自相同相邻AS的路由并通过Maximum-paths 使多条路径可用,则将所有开销相同的路由放入本地路由表)
优选最老的EBGP路由,EBGP路由接收的顺序(此条主要对EBGP路由起效,基本不用,不好确定)
BGP邻居的RID越小越优先
优选cluster_list最短的路由
选择邻居IP地址(BGP的neighbor配置中的那个地址)最小的路由

 

 

posted @ 2021-06-16 11:59  YhtWeirdo  阅读(311)  评论(0编辑  收藏  举报