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协议相关话题: 组播 ...
随机推荐
- P3313-[SDOI2014]旅行【树链剖分,线段树】
正题 题目链接:https://www.luogu.com.cn/problem/P3313 题目大意 \(n\)个点的一棵树,每个点有一个颜色和权值,有操作 修改一个点的权值 修改一个点的颜色 询问 ...
- T-SQL——关于SQL打开Excel文件
目录 0. 背景说明 1. 安装Access Database Engine 1. SQL脚本 3. .net项目中通过Micsoft.ACE.oledb读取Excel文件 志铭-2021年10月1日 ...
- 【vue】使用 Video.js 播放视频
目录 安装 引入 使用 参考文档 环境: vue 2.0+ element ui (这里的代码用了elmentui的按钮样式,可以不用elment ui的样式) 安装 在项目中安装 video.js. ...
- 实验1:SDN拓扑实践
作业链接:实验1:SDN拓扑实践 一.实验目的 能够使用源码安装Mininet: 能够使用Mininet的可视化工具生成拓扑: 能够使用Mininet的命令行生成特定拓扑: 能够使用Mininet交互 ...
- 阿里限流神器Sentinel夺命连环 17 问?
1.前言 这是<spring Cloud 进阶>专栏的第五篇文章,这篇文章介绍一下阿里开源的流量防卫兵Sentinel,一款非常优秀的开源项目,经过近10年的双十一的考验,非常成熟的一款产 ...
- 1.JDBC编程六步走以及实现案例
1.注册驱动:通知Java程序我们要连接的是哪个品牌的数据库 2.获取数据库连接:Java进程和Mysql进程之间的通道开启了 3.获取数据库操作对象:这个对象是用来执行sql语句的 4.执行SQL语 ...
- Idea进行java应用的远程调试Remote debugging
本文可以解决如下两个问题: 1.如何处理和调试那些只发生在生产环境(或其他远程环境)而本地开发环境可能没办法重现的"问题". 2.只有一个可以部署的war/jar包,只有class ...
- 洛谷2543AHOI2005]航线规划 (树剖+线段树+割边思路)
这个题的思路还是比较巧妙的. 首先,我们发现操作只有删除和询问两种,而删除并不好维护连通性和割边之类的信息. 所以我们不妨像WC2006水管局长那样,将询问离线,然后把操作转化成加边和询问. 然后,我 ...
- PG集群(PostgreSql环境)搭建
centos PG集群搭建 一.安装PG 1.安装之前首先查看软件是否已经安装 rpm -qa | grep postgresql #若存在,需要卸载使用 yum remove postgresql ...
- Golang通脉之数组
数组是同一种数据类型元素的集合.数组在内存中都是连续存放的. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化. 基本语法: // 定义一个长度为3元素类型为int的数组 ...