HCNP Routing&Switching之BGP团体属性和团体属性过滤器
前文我们了解了BGP的路由过滤已经as-path过滤器的使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15542559.html;今天我们来聊一聊BGP的团体属性和团体属性过滤器相关话题;
BGP团体属性(Community)
BGP团体属性是什么呢?简单讲BGP的团体属性是指标识具有相同特征的BGP路由;我们可以理解为具有相同标签的BGP路由;这个标签就是它的团体属性;只不过在BGP里不叫标签,而是叫团体属性;所以tag不是BGP属性,而团体属性(community)才是它的属性;团体属性主要作用是让BGP路由策略的应用更加灵活,降低维护管理的难度;不同的团体属性,它的作用各不相同;如下所示,BGP公认团体属性
提示:如果BGP的某些路由中带有internet的团体属性,这就意味着该路由可以向任何BGP邻居宣告,即收到带有该团体属性的路由的路由器,它会把该路由向任何邻居宣告,不管邻居是IBGP还是EBGP,它都会宣告该路由;如果是no_advertise的团体属性,就意味着该路由不能向任何BGP邻居宣告,即收到该路由的路由器不会再向其他BGP邻居宣告该网络(即便是IBGP也不会);如果团体属性是no_export,则意味着该路由不会向EBGP邻居宣告,但是可以向联盟内的EBGP邻居宣告(联盟就是一个大的AS里面有许多小AS,该团体属性就是指在一个大的AS内的小AS之间可以正常传递和宣告路,但不会流出大as);如果团体属性是no_export_dsubconfed,则该路由不但不会向任何EBGP邻居宣告,包括联盟内的EBGP邻居;
BGP路由默认是不允许宣告团体属性给邻居,就有点类似默认不宣告默认路由一样;在向邻居宣告带有团体属性的路由时,我们需要提前在本端路由器上开启允许向邻居宣告团体属性给邻居;团体属性是可选可过渡属性,即如果收到带有团体属性的路由的路由器,如果开启了允许向邻居发送团体属性给邻居,则该路由器会继承它收到的团体属性,如果没有开启,则对应路由的团体属性不会再传递给其他邻居;当然团体属性是可以继承,也可以修改和叠加;
BGP私有团体属性
当然团体属性除了有公认的团体属性,也有私有团体属性;私有团体属性就是自定义规则和应用方法;格式是AS(2字节):Number(2字节);一般私有团体属性结合路由策略来做;
实验:根据拓扑配置BGP
各路由器配置,请参考https://www.cnblogs.com/qiuhom-1874/p/15495585.html;
在R1上使用路由策略将发送个R2的1.1.1.1/32的路由打上internet的团体属性
提示:首先我们需要用匹配工具将对应需要打上团体属性的路由匹配出来,然后根据在根据路由策略将满足匹配工具匹配出来的路由做打上团体属性的操作;对于匹配工具默认没有匹配上的路由,默认是拒绝操作,但是我们在路由策略里允许所有,即放行没有被匹配工具匹配上的路由(对没有匹配上的路由不做任何操做);
验证:在R2上查看对应路由是否被打上团体属性?
提示:可以看到R2上并没有收到任何团体属性;这是因为团体属性默认是不允许发送的,要想发送团体属性,我们需要用命令明确开启允许发送团体属性给邻居;
在R1上开启允许团体属性发送给邻居
提示:以上命令就表示允许向12.0.0.2宣告团体属性;
验证:在R2上查看是否收到R1发送的团体属性呢?
提示:可以看到R2收到的路由中只有1.1.1.1/32的路由带有internet的属性;这个属性就是告诉R2该路由可以传给任何邻居;
验证:在R4上是否可以看到R1发送的团体属性呢?
提示:在R4上并没有看到任何团体属性,这是因为团体属性本身就是可选可传递;在R1开启允许发送团体属性给邻居以后,对应R2可以收到R1发送的团体属性,但是R2并没有明且允许发送团体属性给邻居,所以R2发送R4的路由中并不会携带团体属性;要想R4能够收到对应的团体属性,我们只需要在R2上开启允许团体属性传递给邻居即可;
在R2上开启允许团体属性发送给邻居
验证:在R4上查看团体属性,是否能够收到R2发送到团体属性呢?
提示:如果R2上只是开启了允许发送团体属性给邻居,并没有做团体属性的修改,则默认R2会将R1发送到团体属性继承发送给R4;
在R1上配置将7.7.7.7/32的路由发送给R3时打上no_advertise的团体属性
验证:在R3上查看R1发送到团体属性,看看对应团体属性是否收到?
提示:可以看到R3上能够正常收到7.7.7.7/32对应路由的团体属性为no-advertise;该属性表示7.7.7.7/32的路由不传递给其他任何邻居;
验证:在R4上查看是否能够学习到7.7.7.7/32的路由呢?
提示:此时在R4的路由表中,对应7.7.7.7/32的路由就只有一条了,对应下一跳为12.0.0.1,并非13.0.0.1;说明该路由是经过R2学习到的;其原因是对应R3并不会发送7.7.7.7/32的路由给R4,所以R4的BGP路由表中就只有一条从R2学习到的7.7.7.7/32的路由;
在R1上将8.8.8.8/32的路由发送给R2时打上no_export的团体属性
提示:对于同一邻居在同一方向只允许调用一条路由策略,所以此时我们看到对应1.1.1.1/32的路由策略就被8.8.8.8/32的路由策略覆盖;如果需要都生效,我们需要该之前里加上对8.8.8.8/32的处理即可(匹配工具可以重新写);
验证:在R2上查看是否收到R1发送的团体属性?
提示:该属性表示不将此路由发送给EBGP邻居,但可以向联盟内的EBGP邻居发送;此环境没有联盟,所以我们验证可以看对应R5是否能够收到R2这边发送的8.8.8.8/32的路由即可;
验证:在R5上查看对应8.8.8.8/32的路由是否能够学习到呢?
提示:可以看到R5上并没有学习到8.8.8.8/32的路由;这是因为R4上对应从R2学习过来的8.8.8.8/32的路由被打上了no-export的团体属性,在R2上有配置了允许发送团体属性给邻居,所以R2会将R1发送到团体属性继承发送给R4;恰好R4的BGP路由表中,对应从R2学习到的8.8.8.8/32的路由又是最优路由,所以R5并不会学习到8.8.8.8/32的路由(R4只会把最优路由发送给R5,恰好R4上8.8.8.8/32的最优路由被打上了no-export的团体属性,所以R5收不到8.8.8.8/32的路由);
在R1上将发送给R3的1.1.1.1/32的路由打上no-export-subconfed团体属性
验证:在R3上查看对应团体属性是否收到?
提示:该团体属性表示对应路由不发送给任何EBGP邻居,包括联盟内的EBGP邻居;我这里没有配置联盟,所以和上面的no-export效果一样;最终都不会发送给R5;但是此环境R3还是会将1.1.1.1/32的路由发送给R4,因为R3并没有开启允许团体属性发送给邻居,所以R3发送给R4的路由对应团体属性会丢失,即R4还是会将1.1.1.1/32的路由正常发送给R5(如果从R3这边学习到的1.1.1.1/32的路由是最优路由的话);
在R3上开启允许发送团体属性给邻居
验证:在R4上查看对应的团体属性
将R4的BGP路由表中从R3学习到的1.1.1.1/32的路由,本地优先级修改为101,让1.1.1.1/32 的路由,最优路由的下一跳为13.0.0.1
验证:查看R4的路由表,看看对应1.1.1.1/32的路由对应下一跳是否为13.0.0.1为最优路由呢?
验证:在R5上查看对应是否能够学习到1.1.1.1/32的路由呢?
提示:可以看到R5上对应1.1.1.1/32的路由并不会学习到,这是因为R4上1.1.1.1/32的路由最优路由被打上了no-export-subconfed的团体属性,该团体属性就是告诉R4不要将此路由发送给任何EBGP邻居;所以R5学习不到;
BGP团体属性过滤器
BGP团体属性过滤器是指通过团体属性来过滤路由,结合路由策略,将团体属性过滤器当作匹配条件,从而达到修改路由的某些属性等;BGP团体属性过滤器分基本团体属性过滤器和高级团体属性过滤器,两者最大的区别在于高级团体属性过滤器可以使用正则来匹配,比基本团体属性过滤器要更加灵活和强大;
BGP团体属性过滤器创建
在R2上创建团体属性过滤器
提示:团体属性过滤器和acl差不多,1-99的编号表示基本的团体属性过滤器,100-199是高级团体属性过滤器;后面接允许或拒绝模式,模式后面接团体属性,可以跟多个团体属性,多个团体属性之间是或关系,即表示满足其中一个即可;
团体属性过滤器调用
提示:团体属性过滤器可以通过路由策略来调用;上述命令表示匹配R1发送的团体属性no-export,将对应匹配的路由的团体属性修改为internet;然后在R2的入方向调用对应的路由策略;
验证:在R2上查看对应的团体属性
提示:可以看到对应的团体属性已经重写为internet;
私有团体属性
私有团体是属性的格式为数字(2字节):数字(2字节);这两数字本质没有什么贴吧的要求,只啊哟满足2字节即可;
示例:在R1上将1.1.1.1/32的路由打上私有团体属性1:2
在R3上查看团体属性
附加团体属性
在R3上附加团体属性8:8
验证:在R3上查看团体属性
提示:可以看到此时R3的1.1.1.1/32的路由就携带了两个团体属性1:2和8:8;后续R4可以根据这两个团体属性创建团体属性过滤器来修改路由属性等操作;
示例:在R4上创建团体属性过滤器,拒绝带有1:2的团体属性的路由
验证:在R4上查看bgp路由表,看看对应是否能够从R3上学习到1.1.1.1/32的路由呢?
提示:可以看到此时R4上就没有从R3发送携带1:2的团体属性的路由了;这里需要提示一下,团体属性过滤器和ip前缀列表匹配规则类似,默认规则是拒绝,所以在路由策略里需要加上空语句允许其他未被匹配到的路由;其实团体属性过滤器就是针对BGP路由的专有过滤器,用法和其他过滤器大同小异,都是用作路由策略的匹配条件来修改路由属性;
HCNP Routing&Switching之BGP团体属性和团体属性过滤器的更多相关文章
- HCNP Routing&Switching之BGP路由属性和优选规则
前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...
- HCNP Routing&Switching之BGP基础
前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...
- HCNP Routing&Switching之BGP路由控制
前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...
- HCNP Routing&Switching之BGP路由过滤和AS-Path-Filter
前文我们聊了下通过修改BGP路由属性来影响路由,从而达到控制BGP路由的目的:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15495585.html:今天我们 ...
- HCNP Routing&Switching之BGP报文结构、类型和状态
前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...
- HCNP Routing&Switching之BGP防环机制和路由聚合
前文我们了解了BGP路由宣告相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15440860.html:今天我们来聊一聊BGP防环机制和路由聚合相关话题 ...
- HCNP Routing&Switching之BGP邻居建立条件、优化和认证
前文我们了解了BGP相关概念.AS相关概念以及BGP邻居类型.基础配置等,相关回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15370838.html:今天我们 ...
- HCNP Routing&Switching之BGP路由宣告
前文我们了解了BGP报文结构.类型以及邻居状态相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15422924.html:今天我们来聊一聊BGP路由宣告 ...
- HCNP Routing&Switching之组播技术-组播协议IGMP
前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...
随机推荐
- "错误: 找不到或无法加载主类"解决办法
前言:记上次一个找了个把小时的问题(很烦这些配置) 原因: 从svn下checkOut的项目 在application的配置的输出class路径为main,而class文件路径是在项目名的根路径下,所 ...
- [洛谷日报#204] StackEdit——Markdown 编辑器的功能介绍
本文同时发表于洛谷日报,您也可以通过洛谷博客进行查看. 1.介绍与开始使用 1.1 这是什么? StackEdit是基于PageDown.Stack Overflow和其他堆栈交换站点使用的Markd ...
- 树莓派3B上手一二
树莓派3B上手一二 早些时间心血来潮买过一个树莓派,但是当时只是玩一玩,买来按照网上的教程摆弄了一下就闲置了.最近毕业设计,做时序数据分析的相关的工作,刚好想起能够用到树莓派+Node-RED来生成模 ...
- 双指针之滑动窗口(长度最小的子数组 和 和为s的连续正数序列)
双指针之滑动窗口 (长度最小的子数组:和为s的连续正数序列) 1, 什么时候使用? (与子数组/字符串 有关的题目)~如果给了某个具体值的target,即用滑动窗口 不然就双指针(一般做法,左边< ...
- ☕【Java技术指南】「编译器专题」深入分析探究“静态编译器”(JAVA\IDEA\ECJ编译器)是否可以实现代码优化?
技术分析 大家都知道Eclipse已经实现了自己的编译器,命名为 Eclipse编译器for Java (ECJ). ECJ 是 Eclipse Compiler for Java 的缩写,是 Jav ...
- 如何在前端通过JavaScript创建修改CAD图形
背景 在之前的博文CAD图DWG解析WebGIS可视化技术分析总结.CAD_DWG图Web可视化一站式解决方案-唯杰地图-vjmap中讲解了如何把CAD的DWG格式的图纸Web可视化的方案,那在Web ...
- 如何查找一个目录中所有c文件的总行数
如何查找一个目录中所有c文件的行数 面试题问到了一题,如何统计wc文件夹下所有文件的行数,包括了子目录. 最后在 https://blog.csdn.net/a_ran/article/details ...
- 【转载】如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习,来自STM32神舟系列开发板设计师的总结
[好文章值得分享,摘自作者:jesse] 来源:www.armjishu.com作者:jesse转载请注明出处 我的另一篇文章:<STM32嵌入式入门必看之文章-----介绍非常详细!(学STM ...
- Object.create 和 Object.assign
Object.assign(target, ...source) 1.Object.assign方法只会拷贝源对象自身(不包括原型)的并且可枚举的属性到目标对象,使用源对象的get和目标对象的set, ...
- eclipse javase版安装插件开发web项目
最近学习开发javaweb,但是安装的却是java se版的eclipse,但其无法新建web项目,即找不到Dynamic Web.所以需要下载相应插件.以下为操作过程. 1. 在联网的情况下,打开e ...