初识BGP外部网关协议(二)

  • 前言
  • 一、BGP路径属性
    • 1、BGP路径分类
    • 2、路径选择原则
  • 二、BGP选路及配置(比较多,12种,我选出常见的3种讲解)
    • 1、根据Local_preference控制选路(越大越优)
    • 2、使用As_path属性控制选路(越少越优)
    • 3、通过MED属性控制选路(越小越优)
    • 4、多网段情况下只匹配某一网段选路
  • 三、BGP反射器
  • 四、BGP路由聚合(汇总)
    • 方案(一):创建静态汇总路由
    • 方案(二):
  • 总结

前言

一、BGP路径属性

1、BGP路径分类

  1. 公认属性

    • 公认必遵
      所有BGP设备都可以识别此类属性,且必须存在于Update报文中。

    • 公认自觉
      所有BGP设备都可以识别此类属性,但不要求必须存在于Update报文中。

  2. 可选属性

    • 可选传递
      BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,但它仍然会接收这类属性,并通告给其他对等体。

    • 可选非传递
      BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,则会被忽略该属性,且不会通告给其他对等体。

  3. 属性

类型 属性名
公认必遵 Origin、AS_Path、Next_Hop
公认自觉 Local_Preference、ATOMIC_Aggregate
可选传递 community、Aggregator
可选非传递 Originator_ID、MED、Cluster_List、*pre_value

2、路径选择原则

  • 若此路由下一跳不可达,忽略此路由
  • Preferred_value值大的路由优选
  • Local_preference值高的路由优先
  • 聚合路由优先于非聚合路由
  • 本地手动聚合路由的优先级高于本地自动聚合的路由
  • 本地network命令引入的路由优先级高于本地通过import-route命令引入的路由
  • As_path的长度最短的路径优先
  • 比较origin属性,IGP优先于EGP,EGP优先于Incomplete
  • 选择MED较小的路由
  • EBGP路由优先与IBGP
  • BGP优先选择到BGP下一跳的IGP度量值最低的路径
  • 当以上全相同,则为等价路由,可负载分担(As_path必须一致,负载分担时,以下三条无效)
  • 比较Cluster_List长度,短者优先
  • 比较Originator_ID(如果没有,则比较Router-ID),选择小的路径
  • 比较对等体的IP,选择较小的路径

二、BGP选路及配置(比较多,12种,我选出常见的3种讲解)

1、根据Local_preference控制选路(越大越优)

  • 为公认自觉属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径
  • Local_preference属性只能在IBGP对等体间传递(除非做了策略,否则Local_preference值在IBGP对等体间传递过程中不会丢失),而不能再EBGP对等体间传递,若在EBGP对等体间收到的路由的路径属性中携带了Local_preference,则会触发Notification报文,造成会话中断
  • 但可在AS边界路由器上使用import方向的策略来修改Local_preference属性值。也就是收到路由之后,在本地为路由赋予Local_preference。

代码如下(示例):

[R3]route-policy lop permit node 10   ##创建名为lop的路由策略
Info: New Sequence of this List.
[R3-route-policy]apply local-preference  222  ##设置本地优先级
[R3-route-policy]q
[R3]bgp 200
[R3-bgp]peer 4.4.4.4 route-policy lop export
##在R3对R4执行出站export方向的路由策略,使其在收到对方通告后,在路由的local-preference的属性值改为222,使R4优先选R3通告的路由。若在R4配置此策略,则改为import入站
[R3-bgp]q
[R3]q
<R3>refresh bgp all export   ##刷新BGP

2、使用As_path属性控制选路(越少越优)

  • 为公认必遵属性,是可前往目标网络的路由经过的AS号列表
  • 作用:确保路由在EBGP对等体之间传递无环,另外也作为路由优选的衡量标准之一
  • 路由在被通告给EBGP对等体时,路由器会在该路由的 As_path中追加上本地的AS号。路由被通告给IBGP对等体时, As_path不会发生改变
  • 使用的route-policy修改BGP路由的As_path:
  • apply as-path xxx additive #在已有As_path基础上追加xxx
  • apply as-path xxx overwrite #将已有As_path值替换(覆盖)成xxx
  • apply as-path none overwrite #清空路由的As_path属性
  • 使用route-policy修改BGP路由的As_path时,可以在EBGP对等体之间改变EBGP路由的As_path属性,从而影响BGP路由的优选。在华为路由器上,zaiEBGP对等体之间,也可使用route-policy修改BGP路由的As_path。无论何种场景,改变BGP路由的As_path都必须十分谨慎,建议跟上一个经过的AS号保持一致。
  • Bestroute as-path-ignore命令
    用来配置BGP在选择最优路由时忽略AS路径属性。配置该命令后,BGP将不比较AS路径的长度,越小越优
    代码如下(示例):
[R2]route-policy as permit node 10
Info: New Sequence of this List.
[R2-route-policy]apply as-path 123 123 additive  ##在已有AS-path基础上追加
[R2-route-policy]q
[R2]bgp 200
[R2-bgp]peer 4.4.4.4 route-policy as export
[R2-bgp]q
[R2]q
<R2>refresh bgp all export

3、通过MED属性控制选路(越小越优)

  • 为可选非传递属性,是一种度量值
  • 一般情况下,BGP设备只比较来自同一AS(不同对等体)的路由的MED值。可以通过配置命令来允许BGP比较来自不同AS的路由的MED属性值
  • 执行compare-different-as-med命令后,系统将比较来自不同AS来自不同AS中的对等体的路由的MED值。
    代码如下(示例):
[R2]route-policy med permit node 10
Info: New Sequence of this List.
[R2-route-policy]apply cost + 500
[R2-route-policy]q
[R2]bgp 200
[R2-bgp]peer 1.1.1.1 route-policy med export
[R2-bgp]q
[R2]q
<R2>refresh bgp all export
<R2>sys
[R2]dis bgp routing-table  #查BGP路由表
[R2]dis bgp routing-table  目标网段  #查看详细信息

4、多网段情况下只匹配某一网段选路

  • Origin属于公有必遵,用来定义路径信息的来源,其作用是标记一条路由时如何成为BGP路由的,EBGP邻居之间起作用。
  • 它有三种属性:①IGP:优先级最高,②EBGP:优先级次之,③Incomplete:优先级最低

三、BGP反射器

为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假设在一个AS内部有n台设备,那么建立的IBGP连接数就为n(n-1)/2。当设备数目很多时,设备配置将十分复杂,而且配置后网络资源和CPU资源的消耗都很大。在IBGP对等体间使用路由反射器可以解决以上问题。

四、BGP路由聚合(汇总)

方案(一):创建静态汇总路由

[R2]ip route-static 192.168.0.0 255.255.252.0 null 0[R2-bgp]net 192.168.0.0 255.255.252.0

将聚合的路由通告出去,同为手动汇总的192.168.0.0是不存在的,要把它加入Null 0 里才能在BGP进程里用上面的network来通告这条路由。

方案(二):

[R2-bgp] aggregate 192.168.0.0 255.255.252.0 detail-supperessed as-set

手动路由聚合用aggregate,detail-supperessed是抑制明细路由的通告,增加as-set关键词后,该汇总路由将继承明细路由的路径属性,其中对明细路由As_path属性起汇总防环作用。

总结

边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。

初识BGP外部网关协议(二)相关推荐

  1. 初识BGP外部网关协议(一)

    初识BGP外部网关协议(一) 前言 一.自治系统 1.定义 2.AS号 二.BGP 1.BGP定义 2.BGP特点 3.BGP分类 4.BGP的路由器 三.BGP工作原理 1.5种报文 2.6种状态机 ...

  2. OSPF动态路由协议(了解ospf,RIP协议,外部网关协议内部网关协议,ospf工作过程,选举过程,ospf邻居关系7个状态)

    文章目录 OSPF动态路由协议 常见的路由协议 RIP距离矢量型路由协议 RIP的度量值与更新时间 RIP v1和RIP v2的区别 内部网关协议和外部网关协议 OSPF的基本概念和工作过程 AS(a ...

  3. ansible笔记(11):初识ansible playbook(二)

    ansible笔记(11):初识ansible playbook(二)有前文作为基础,如下示例是非常容易理解的:--- - hosts: test211remote_user: roottasks:- ...

  4. 初识多面体优化(二)

    初识多面体优化(二) 名词解释 调度树 一种树形的关于调度执行顺序的表示方法,由节点和边组成.它只包含 instances 的取值范围和执行顺序,而没有内存的读写信息. 多面体优化流程图 代码举例 f ...

  5. C语言系列之初识C语言(二)2021.10.19

    接着上期的内容,对C语言的重要知识做一个概述 目录 一.初识选择语句 二.初识循环语句 ​​ 三.函数 四.数组 五.操作符 六.关键字 一.初识选择语句 人生中会遇到很多选择,无论对应的结果是怎样, ...

  6. 初识大数据(二)医疗大数据

    此篇文章主要跟大家介绍一下大数据在医疗行业内的应用与和落地,给我们的日常生活带和医疗行业带来什么样的变化.适合初入者了解大数据在行业内的应用落地,增加大数据从业人员的业务能力 主要内容为大数据在医疗行 ...

  7. 初识EMC元器件(二)——TVS管选型及应用

    通过上一篇文章<TVS管参数解读>,已经对TVS管的参数有了初步的认识,那么本章将着手如何应用. 一.TVS管选型步骤 TVS管防护电路可以主要分为两大类:电源接口防护和信号接口防护. 电 ...

  8. 初识java-循环结构(二):6

    一,格式 for(赋值语句//为循环变量赋初值;条件语句//循环结构的循环条件;赋值语句//迭代,修改循环变量的值){ //循环体; } for(int i=m;i<=n;i++){ Syste ...

  9. 二维数组 类型_「初识C语言」二维数组

    一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量.在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量. ...

最新文章

  1. MVC Razor 语法(转)
  2. 中文 Python 开源资料合集!这应该是最全的了!
  3. 从Ant Build演进Gradle Build:导入Ant Build文件
  4. 蛇形数组打印(两种形式)
  5. JavaSE基础笔记十二
  6. 栈的典型应用 —— 逆序输出
  7. 的ppt_PPT丨清新淡雅年终总结PPT模板
  8. 西南交通大学计算机应用基础,西南交通大学计算机应用基础作业-客观部分
  9. U盘文件被隐藏是怎么回事?怎样恢复被隐藏文件?
  10. js html post提交表单,JS动态创建表单post提交
  11. 米尔MYD-JX8MPQ yocto 编译流程 (记录)
  12. 快速生成数据库文档--screw
  13. 安装CARLA Simulator错误 安装失败 0x80070005 - 访问被拒绝 Error Setup Failed 0x80070005 - Access is denied
  14. Excel导入导出功能
  15. 以javaweb项目为例,用户在搜索网页域名的过程到网页响应到底经过了什么?
  16. build-essential unmet dependencies 有未满足依赖 解决办法
  17. python 分布式框架_Python 并行分布式框架:Celery 超详细介绍
  18. 整体看看Android的多媒体系统(多图)
  19. 高德地图API POI分类编码表(mysql版)
  20. SM2签名方案的安全性

热门文章

  1. 去中心化的 RTC 通信平台架构设计
  2. 万字长文助你上手软件领域驱动设计 DDD
  3. 当 AI 足够聪明时,我们的验证码还有用吗?
  4. 理解RTMP、HttpFlv和HLS的正确姿势
  5. RabbitMQ服务客户端的的业务逻辑
  6. OpenStack网络模块核心OpenvSwitch的全面解读
  7. 基于DirectUI技术开发的发卡系统
  8. SparkShell中提交任务java.net.ConnectException: Call From henu4/192.168.248.244 to henu2:9000 failed on co
  9. 浅析请求转发和重定向
  10. leetcode 131. Palindrome Partitioning | 131. 分割回文串(递归解法)