BGP原理以及配置

前言:本章主要介绍BGP原理以及BGP的配置

AS的概念:自治系统(Autonomous System ,AS),指是在同一个组织管理下,使用相同策略的设备的集合
不同AS通过AS号区分,AS号取值范围1-65535,其中64512-65535是私有AS号

BGP路由协议的特点:

  • BGP能够承载大批量的路由信息,能够支撑大规模网络。
  • BGP使用TCP作为其传输层协议(监听端口号为179),提高了协议的可靠性
  • BGP是外部路由协议,用来在AS之间传递数据,对稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的可靠性
  • BGP的对等体之间必须逻辑上连通,并进行TCP连接,目的端口号为179,本地端口号任意。
  • BGP对等体和IGP对等体不同,BGP对等体(peer)是指使用TCP建立连接的两端,而非与IGP同概念的直连邻居
  • BGP本身只负责控制路由,数据转发依然靠静态或IGP路由
  • BGP支持无类别域间路由CIDR.
  • 路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet 上传播大量的路由信息。
  • BGP是一种增强的距离矢量路由协议,从设计上避免了环路的发生
  • AS之间:BGP通过携带AS_Path信息标记途径的 AS,带有本地AS路由将被丢弃,从而避免了AS内产生环路。
  • BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择
  • BGP提供了防止路由震荡的机制(路由衰减),有效的提高了Internet网络的稳定性。
  • BGP易于扩展,能够适应网络新的发展(ipv4单/组播,vpv4单/组播)主要通过LTV进行扩展。

BGP分类:

BGP按照允许方式分为EBGP(External / Exterior BGP)和IBGP(Internal / Interior BGP)

  • EBGP: 运行于不同AS之间的BGP称为EBGP.为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。

  • IBGP: 运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不讲从IBGP对等体学到的路由通告给其他IBGP对等体,并于所有IBGP对等体建立全连接

BGP的路由器号(Router-id)

BGP的router-id是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。对等体之间建立BGP会话时,每个BGP设备都必须有唯一的router id,否则对等体之间不能建立BGP连接

BGP的Router-ID在BGP网络中必须是唯一的,可以采用手工配置,也可以让设备自动选取。


BGP工作原理
BGP对等体的建立,更新和删除等交互过程主要有5种报文,6种状态机和9个原则。

  • BGP的报文:
    BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送

open报文:用于协商BGP对等体的各项参数,主要包括BGP版本(V4),As号等信息,建立BGP对等体连接。open是TCP连接建立后发送的第一个报文

Update报文:用于在对等体之间交换路由信息
连接建立后,有路由需要发送或者路由变化时,发送Update通告对端可达或者撤销路由信息以及路劲属性

Notification报文:用于终端BGP连接
当BGP在运行中发现错误时,发送Notification报文通告BGP对端,随后与之相关的邻居关系将被关闭

keepalive报文:用于保持BGP连接
定时发送keepalive报文以保持BGP对等体关系的有效性,会发送和响应收到正确的open报文

Route-refresh报文:用于改变路由策略后软复位BGP路由表请求对等体重新发送路由信息


BGP的建立过程

  1. 首先在ldle状态下会拒绝邻居发送的连接协议
  2. 接收start后才开始建立连接,进入到Connect状态下
  3. 进入到Connect状态下后,建立TCP连接,之后会发送open报文 进入到OpenSent状态
  4. 进入到OpenSent状态,接收到对方发来正确的open报文后,进入到OpenConfirm
  5. 进入到OpenConfirm后 接收到Keepalive报文,进入Established

出现TCP断连的情况

在任何状态下出现TCP断连,接收到OPEN报文有误,都会返回到Idle状态
如果在Connect状态下出现TCP断连,就会进入到Active状态,并继续尝试TCP连接,如果连接成功就会进入到OpenSent状态,如果在Active状态,连接超时 就会返回Connect状态
在这里插入图片描述

配置实例:传输AS内所有路由器均运行BGP,实现BGP对等体关系的全网互联

网络拓扑如下:这里跳过接口配置和OSPF区域配置信息
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

BGP路径优选

BGP的路径属性:
1.定义
路径属性:path attributes,作用类似于metric,用于度量BGP的路由优劣(用来进行选路)

2.分类

  • 公认必遵属性:所有的BGP的update消息都要包含属性 所有BGP设备发送的update报文都要携带且能够识别的
  • AS路径(as-path)
  • 下一跳(next-hope)
  • 起源(Origin)
  • 公认自觉属性:该属性是可选可不选的,但是所有的BGP进程都能识别
  • 可传递属性:即使BGP进程不能识别该属性,也会继续传递下去
  • 可选非传递属性:如果BGP进程不能识别该属性,可以忽略这条update ,并且不传递下去

BGP选路原则

  1. 如果此路由的下一跳不可达,忽略此路由
  2. Preferred-Value 值数值越高越优先,华为私有属性,仅本地有意义
  3. Local-Preference值最高的路由优先
  4. 聚合路由优先于非聚合路由
  5. 本地手动聚合路由的优先级高于本地自动聚合的路由
  6. 本地通过Network命令引入的路由的优先级高于本地通过import-route 命令引入的路由
  7. AS-path的长度最短的路径优先
  8. 比较Origin属性,IGP优于Incomplete
  9. 选择MRD较小的路由
  10. EBGP路由优于IBGP路由
  11. BGP优先选择到BGP下一跳的IGP度量值最低的路劲
  12. 比较Cluster_list长度,短者优先
  13. 比较Originator_Id(如果没有Originator_id,则用Router_id比较),选择数值较小的路径。
  14. 比较对等体的IP地址,选择IP地址数值最小的路径。

BGP属性选路配置(共12种方法,这里介绍3种常用方法)
1.根据local-prefernce控制选路(越打越优)
为公认自觉属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径
Local_Preferences属性只能在IBGP对等体之间传递(除非做了策略否则Local_Preference值在IBGP对等体间传递过程中不会丢失),而不能在EBGP对等体间传递,如果在EBGP对等体间收到的路由的路径属性中携带了Local_Preference则会护法Notifacation报文造成通话中断

但是可以在AS边界路由器上使用Import方向的策略来修改Locao_preference属性值

おすすめ

転載: blog.csdn.net/weixin_54059979/article/details/120998912