前文我们了解了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团体属性和团体属性过滤器的更多相关文章

  1. HCNP Routing&Switching之BGP路由属性和优选规则

    前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...

  2. HCNP Routing&Switching之BGP基础

    前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...

  3. HCNP Routing&Switching之BGP路由控制

    前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...

  4. HCNP Routing&Switching之BGP路由过滤和AS-Path-Filter

    前文我们聊了下通过修改BGP路由属性来影响路由,从而达到控制BGP路由的目的:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15495585.html:今天我们 ...

  5. HCNP Routing&Switching之BGP报文结构、类型和状态

    前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...

  6. HCNP Routing&Switching之BGP防环机制和路由聚合

    前文我们了解了BGP路由宣告相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15440860.html:今天我们来聊一聊BGP防环机制和路由聚合相关话题 ...

  7. HCNP Routing&Switching之BGP邻居建立条件、优化和认证

    前文我们了解了BGP相关概念.AS相关概念以及BGP邻居类型.基础配置等,相关回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15370838.html:今天我们 ...

  8. HCNP Routing&Switching之BGP路由宣告

    前文我们了解了BGP报文结构.类型以及邻居状态相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15422924.html:今天我们来聊一聊BGP路由宣告 ...

  9. HCNP Routing&Switching之组播技术-组播协议IGMP

    前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...

随机推荐

  1. 牛客挑战赛48E-速度即转发【带修莫队,分块】

    正题 题目链接:https://ac.nowcoder.com/acm/contest/11161/E 题目大意 给出\(n\)个数字的一个序列,\(m\)个操作. 给出\(l,r,k\),求一个最大 ...

  2. YbtOJ#493-最大分数【斜率优化dp,分治】

    正题 题目链接:http://www.ybtoj.com.cn/contest/117/problem/1 题目大意 \(n\)个数的一个序列,给其中的一些数打上标记. 一个标记方案的贡献为\(s_1 ...

  3. element-ui上传多个文件时会发送多个请求

    1. element-ui的默认 默认是异步多次请求上传单个文件 如果业务就是单纯的上传文件,那么这个样子是没有问题的 前端代码参考 https://element-plus.gitee.io/#/z ...

  4. Digital Image Processing

    20190919 Review CCD:高端天文学,敏感度高,速度慢,成本高: CMOS:普遍使用,嵌入手机,速度快,有模式噪声(Pattern Noise,现在可以解决): 空间分辨率和时间分辨率: ...

  5. Sentry 监控 - 全栈开发人员的分布式跟踪 101 系列教程(第一部分)

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  6. Linux7安装redis6

    首先下载软件包并解压 cd /opt wget https://download.redis.io/releases/redis-6.2.5.tar.gz tar -zxvf redis-6.2.5. ...

  7. Unity——资源文件夹介绍

    Unity资源文件夹介绍 1.编辑时 在Asset文件下存在Resources和SteamingAsset文件夹: Resources 只读不可修改,打包时直接写死,没有办法通过热更新替换资源: 可以 ...

  8. TypeScript中将函数中的局部变量“导出”的方法

    首先是在模块a.js中声明一个可导出(export)的数据结构,例如: export class ModelInfo{ id: string; name:string; } 其次是在模块b中声明可导出 ...

  9. 按键检测GPIO输入

    1. 项目 通过按键控制开关LED灯,按下按键灯亮,再按一下灯灭. 2. 代码 mian.c #include "stm32f10x.h" //相当于51单片机中的 #includ ...

  10. python3去除行号

    问题:在复制一些代码时会同时复制每行的行号,删除比较麻烦,所以利用python3本身的代码进行一键删除. # 导入re 模块来使用正则表达式 import re """去 ...