计算机网络-BGP路由优选原则概述

2024-06-04 16:28

本文主要是介绍计算机网络-BGP路由优选原则概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前面我们已经学习了BGP的基础概念、对等体建立、报文类型等,也通过实践完成了IBGP和EBGP的实验配置,其实这些路由协议都是理论比较复杂,但是配置其实比较简单的,今天我们来学习BGP的路由优选原则。

一、IGP路由优选

前面我们学习了IGP的OSPF、IS-IS、RIP等路由,IGP路由一般情况下是通过路由优先级和Cost进行优选的。路由器根据IP数据包的目的地址进行查找路由表,路由表选举最优路由放到本地核心路由表项,然后下发到FIB转发表项,实际是依据转发表进行数据转发。

那比如OSPF间怎么比较哪个最优呢,因为协议优先级都是10,因此通过Cost值来比较谁最优选,在OSPF中通过修改接口的Cost值来实现选路。其它路由协议也是类似。那不同协议怎么比较呢,从OSPF、IS-IS、RIP同时学习到一条路由呢?这就需要通过路由优先级来判断。在华为设备中优先级一般如下:

路由协议优先级
Direct0
OSPF10
IS-IS15
Static60
OSPF ASE150
OSPF NSSA150
IBGP255
EBGP255

也是就是对于相同的路由条目优先比较路由协议优先级,优先级相同比较Cost值。

路由表查看
路由表查看

二、BGP路由属性

BGP定义了多种路径属性,并且拥有丰富的路由策略工具,这使得BGP在路由操控和路径决策上变得非常灵活,针对BGP路由的各种属性的操作都可能影响路由的优选,从而对网络的流量产生影响。

也就是说BGP的路由属性中可以设置为条件的字段比IGP路由多。

BGP路由属性1
BGP路由属性1
BGP路由属性2
BGP路由属性2

三、BGP路由优选原则概览

当到达同一个目的网段存在多条路由时,BGP通过如下的次序进行路由优选:(前提:丢弃下一跳不可达的路由。)

  • 1、优选Preferred-Value属性值最大的路由。(↑ 取值越大越优)
  • 2、优选Local_Preference属性值最大的路由。(↑ 取值越大越优)
  • 3、本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的。(↓ 取值越小越优,后面几条规则是越小越优)
  • 4、优选AS_Path属性值最短的路由。
  • 5、优选Origin属性最优的路由。Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete。
  • 6、优选MED属性值最小的路由。
  • 7、优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。
  • 8、优选到Next_Hop的IGP度量值最小的路由。(当前8条属性全部相同时可以形成路由负载分担)
  • 9、优选Cluster_List最短的路由。
  • 10、优选Router ID(Orginator_ID)最小的设备通告的路由。
  • 11、优选具有最小IP地址的对等体通告的路由。

总结:复习了一下IGP路由优选的大概步骤,根据路由协议优先级和Cost值进行选路。BGP有很多字段用于进行路由优选,如Preferred-Value、Local_Preference、AS_Path、MED等等,通过修改这些属性可以实现复杂的选路,如果前8条选路原则一致可以实现路由负载分担。

如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子 不喜欢热闹的孩子

本文由 mdnice 多平台发布

这篇关于计算机网络-BGP路由优选原则概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1030524

相关文章

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与