初识BGP外部网关协议(二)
初识BGP外部网关协议(二)
- 前言
- 一、BGP路径属性
- 1、BGP路径分类
- 2、路径选择原则
- 二、BGP选路及配置(比较多,12种,我选出常见的3种讲解)
- 1、根据Local_preference控制选路(越大越优)
- 2、使用As_path属性控制选路(越少越优)
- 3、通过MED属性控制选路(越小越优)
- 4、多网段情况下只匹配某一网段选路
- 三、BGP反射器
- 四、BGP路由聚合(汇总)
- 方案(一):创建静态汇总路由
- 方案(二):
- 总结
前言
一、BGP路径属性
1、BGP路径分类
公认属性
公认必遵
所有BGP设备都可以识别此类属性,且必须存在于Update报文中。公认自觉
所有BGP设备都可以识别此类属性,但不要求必须存在于Update报文中。
可选属性
可选传递
BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,但它仍然会接收这类属性,并通告给其他对等体。可选非传递
BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,则会被忽略该属性,且不会通告给其他对等体。
属性
类型 | 属性名 |
---|---|
公认必遵 | 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外部网关协议(二)相关推荐
- 初识BGP外部网关协议(一)
初识BGP外部网关协议(一) 前言 一.自治系统 1.定义 2.AS号 二.BGP 1.BGP定义 2.BGP特点 3.BGP分类 4.BGP的路由器 三.BGP工作原理 1.5种报文 2.6种状态机 ...
- OSPF动态路由协议(了解ospf,RIP协议,外部网关协议内部网关协议,ospf工作过程,选举过程,ospf邻居关系7个状态)
文章目录 OSPF动态路由协议 常见的路由协议 RIP距离矢量型路由协议 RIP的度量值与更新时间 RIP v1和RIP v2的区别 内部网关协议和外部网关协议 OSPF的基本概念和工作过程 AS(a ...
- ansible笔记(11):初识ansible playbook(二)
ansible笔记(11):初识ansible playbook(二)有前文作为基础,如下示例是非常容易理解的:--- - hosts: test211remote_user: roottasks:- ...
- 初识多面体优化(二)
初识多面体优化(二) 名词解释 调度树 一种树形的关于调度执行顺序的表示方法,由节点和边组成.它只包含 instances 的取值范围和执行顺序,而没有内存的读写信息. 多面体优化流程图 代码举例 f ...
- C语言系列之初识C语言(二)2021.10.19
接着上期的内容,对C语言的重要知识做一个概述 目录 一.初识选择语句 二.初识循环语句 三.函数 四.数组 五.操作符 六.关键字 一.初识选择语句 人生中会遇到很多选择,无论对应的结果是怎样, ...
- 初识大数据(二)医疗大数据
此篇文章主要跟大家介绍一下大数据在医疗行业内的应用与和落地,给我们的日常生活带和医疗行业带来什么样的变化.适合初入者了解大数据在行业内的应用落地,增加大数据从业人员的业务能力 主要内容为大数据在医疗行 ...
- 初识EMC元器件(二)——TVS管选型及应用
通过上一篇文章<TVS管参数解读>,已经对TVS管的参数有了初步的认识,那么本章将着手如何应用. 一.TVS管选型步骤 TVS管防护电路可以主要分为两大类:电源接口防护和信号接口防护. 电 ...
- 初识java-循环结构(二):6
一,格式 for(赋值语句//为循环变量赋初值;条件语句//循环结构的循环条件;赋值语句//迭代,修改循环变量的值){ //循环体; } for(int i=m;i<=n;i++){ Syste ...
- 二维数组 类型_「初识C语言」二维数组
一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量.在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量. ...
最新文章
- MVC Razor 语法(转)
- 中文 Python 开源资料合集!这应该是最全的了!
- 从Ant Build演进Gradle Build:导入Ant Build文件
- 蛇形数组打印(两种形式)
- JavaSE基础笔记十二
- 栈的典型应用 —— 逆序输出
- 的ppt_PPT丨清新淡雅年终总结PPT模板
- 西南交通大学计算机应用基础,西南交通大学计算机应用基础作业-客观部分
- U盘文件被隐藏是怎么回事?怎样恢复被隐藏文件?
- js html post提交表单,JS动态创建表单post提交
- 米尔MYD-JX8MPQ yocto 编译流程 (记录)
- 快速生成数据库文档--screw
- 安装CARLA Simulator错误 安装失败 0x80070005 - 访问被拒绝 Error Setup Failed 0x80070005 - Access is denied
- Excel导入导出功能
- 以javaweb项目为例,用户在搜索网页域名的过程到网页响应到底经过了什么?
- build-essential unmet dependencies 有未满足依赖 解决办法
- python 分布式框架_Python 并行分布式框架:Celery 超详细介绍
- 整体看看Android的多媒体系统(多图)
- 高德地图API POI分类编码表(mysql版)
- SM2签名方案的安全性
热门文章
- 去中心化的 RTC 通信平台架构设计
- 万字长文助你上手软件领域驱动设计 DDD
- 当 AI 足够聪明时,我们的验证码还有用吗?
- 理解RTMP、HttpFlv和HLS的正确姿势
- RabbitMQ服务客户端的的业务逻辑
- OpenStack网络模块核心OpenvSwitch的全面解读
- 基于DirectUI技术开发的发卡系统
- SparkShell中提交任务java.net.ConnectException: Call From henu4/192.168.248.244 to henu2:9000 failed on co
- 浅析请求转发和重定向
- leetcode 131. Palindrome Partitioning | 131. 分割回文串(递归解法)