前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >就像BGP中的AS_PATH一样,无论路途多远,我愿意陪你一起走——基于华为ENSP的BGP的Community[社团属性]深入浅出

就像BGP中的AS_PATH一样,无论路途多远,我愿意陪你一起走——基于华为ENSP的BGP的Community[社团属性]深入浅出

作者头像
盛透侧视攻城狮
发布2025-02-06 08:40:36
发布2025-02-06 08:40:36
10500
代码可运行
举报
运行总次数:0
代码可运行

本篇技术博文摘要 🌟

1. BGP的社团属性(Community)

  • 定义:BGP中的Community属性用于对路由进行标记和分类,帮助控制路由的传播和策略实施。
  • 功能:通过不同的Community标签,可以实现流量的抓取、路由的过滤和精细化的策略控制。

2. 实战配置:BGP社团属性

  • 抓取流量:演示如何根据Community标签抓取特定流量。
  • 应用策略:在路由发布过程中应用预定义的路由策略。
  • 传播Community属性:确保BGP会传播Community属性,从而影响路由决策。

3. 实际应用场景演练

  • 通过一个业务场景,展示如何定义、应用和传播Community属性,确保网络流量和策略按需控制。

4. AS路径过滤器

  • AS路径过滤器:用于过滤路由中的AS路径,通常结合正则表达式使用,进行灵活的路由匹配和控制。
  • 实战配置:示例配置中,R3和R4分别抓取流量并应用策略,完成AS路径的过滤与策略执行。

1.BGP的社团属性——Community

追根溯源Community

  • AS100内有大量的路由被引入BGP,这些路由分别用于生产及办公网络。现在AS200的BGP路由器需要分别针对这些路由执行不同的策略,如果使用ACL、 IP Prefixlist这样的工具,效率就非常低下了。
  • 有了Community属性,我们可以为不同种类的路由打上不同的Community属性值,这些属性值会随着BGP路由更新给AS200,那么在AS200内的BGP路由器上,只需要根据Community属性值来执行差异化的策略即可,而不用去关心具体的路由前缀。

何为Community属性?

  • Community(团体)属性为可选过渡属性,是一种路由标记,用于简化路由策略的执行。
  • 可以将某些路由分配一个特定的Community属性值,之后就可以基于Community值而不是网络前缀/掩码信息来匹配路由并执行相应的策略了。
image-20221013160703549
image-20221013160703549

  • 类似于路由的“标记”,我们可以针对特定的路由设定特定的社团属性数值,而下游路由器在执行路由策略时,可以通过社团属性来匹配目标路由信息。
  • 在一条路由条目中,可以用多个团体属性进行标识
  • 社团属性是由32位二进制构成
  1. 十进制表示
  2. 十六位二进制

团体属性名进制功能详解表

名称

取值

功能

internet

0x00000000

代表所有路由信息

NO-advertise

0xFFFFFF02

不能被通告给任何BGP对等体

no-export

0xFFFFFF01

不能通告给EBGP对等体,但是可以通告给联邦的EBGP对等体

no-export-sub

0xFFFFFF03

不能通告给任何EBGP对等体

2.BGP的社团属性——Community实战配置示例

image-20240518154334406
image-20240518154334406

1、抓流量

代码语言:javascript
代码运行次数:0
复制
[r1]ip ip-prefix aa permit 1.1.1.1 32

2、做策略

代码语言:javascript
代码运行次数:0
复制
[r1]route-policy com permit node 10

[r1-route-policy]if-match ip-prefix aa

[r1-route-policy]apply community no-advertise​

3、调用

代码语言:javascript
代码运行次数:0
复制
r1-bgp]peer 12.0.0.2 route-policy com export 

  • 给路由打上社团属性标记
  • 目前大部分厂商默认在传递BGP路由信息时不传递社团属性,所以,需要传递社团属性,需要通过命令打开。
代码语言:javascript
代码运行次数:0
复制
[r1-bgp]peer 12.0.0.2 advertise-community

  • 开启社团属性的传播性

3.BGP社团属性结合实际应用场景实战演练

业务需求:

  • 对业务A的流量拒绝,对业务B的流量打上no-export属性。
  • A--->100:111 业务B--->100:222
image-20240518155512796
image-20240518155512796
S1:设定策略,定义社团属性标记
代码语言:javascript
代码运行次数:0
复制
[r1]route-policy com-1 permit node 10

[r1-route-policy]apply community 100:111

​[r1]route-policy com-2 permit node 10

[r1-route-policy]apply community 100:222
S2: 在发布路由时调用策略
代码语言:javascript
代码运行次数:0
复制
[r1-bgp]network 172.16.1.0 24 route-policy com-1

[r1-bgp]network 172.16.2.0 24 route-policy com-1

[r1-bgp]network 172.16.3.0 24 route-policy com-2

[r1-bgp]network 172.16.4.0 24 route-policy com-2
S3:开启社团属性的传播功能
代码语言:javascript
代码运行次数:0
复制
[r1-bgp]peer 10.1.12.2 advertise-community

[r2-bgp]peer 10.1.23.3 advertise-community
image-20240518155512796
image-20240518155512796
S4:在AS 200中抓取流量
  • 通过社团属性过滤器来抓取携带社团属性的路由信息
代码语言:javascript
代码运行次数:0
复制
[r2]ip community-filter 1 permit 100:111
[r2]ip community-filter 2 permit 100:222
S5:做策略
代码语言:javascript
代码运行次数:0
复制
[r2]route-policy com deny node 10

[r2-route-policy]if-match community-filter 1

[r2]route-policy com permit node 20

[r2-route-policy]if-match community-filter 2

[r2-route-policy]apply community no-export additive 

[r2]route-policy com permit node 30
注意:
  • 如果没有additive参数则代表直接覆盖
S6:调用策略
代码语言:javascript
代码运行次数:0
复制
[r2-bgp]peer 10.1.12.1 route-policy com import 

4.AS路径过滤器实战配置演练

4.1AS路径过滤器详解

image-20230407121219580
image-20230407121219580
  • AS路径过滤器末尾隐含拒绝所有条件
正则表达式
  • 目的:检查字符串中符合某个规则的特定子字符串,并且可以捕获这个字符串。
  1. 普通字符----所有的大写和小写字母、数字、标点符号
  2. 特殊字符----具备特殊含义
正则表达式功能匹配详解表[其实和Lin的正则一样]

特殊字符

功能

举例

^

行首

^10-->匹配10.10.10.1

$

行尾

1$

*

匹配子正则表达式0次或多次

10*

匹配子正则表达式1次或多次

10+

?

匹配子正则表达式0次或1次

10?

.

匹配任意单个字符

0.0

()

括号内看做一个整体

_下划线

匹配任意括号,逗号,空格

\

转义字符,将下一个字符转换为普通字符

\* 匹配*

X|Y

匹配X或者Y

[XYZ]

匹配包含的任意一个字符

[^XYZ]

匹配未包含的任意一个字符

[^123]匹配除了1、2、3以外的任意字符

  • 忘记的IKUN们可以补一补
示例:
image-20240518161338562
image-20240518161338562

4.2实战配置业务需求:

代码语言:javascript
代码运行次数:0
复制
1、禁止R3将始发于AS 100的路由传递给R5
代码语言:javascript
代码运行次数:0
复制
2、R4将始发于AS 200的路由传递给R5时,修改MED
1、R3抓取流量
代码语言:javascript
代码运行次数:0
复制
[r3]ip as-path-filter 1 deny _100$

[r3]ip as-path-filter 1 permit .*​
2、R3调用策略
代码语言:javascript
代码运行次数:0
复制
[r3-bgp]peer 10.1.35.5 as-path-filter 1 export 
3、R4抓取流量
代码语言:javascript
代码运行次数:0
复制
[r4]ip as-path-filter 1 permit ^200$
4、R4做策略
代码语言:javascript
代码运行次数:0
复制
[r4]route-policy aa permit node 10
[r4-route-policy]if-match as-path-filter 1
[r4-route-policy]apply cost 10000
[r4]route-policy aa permit node 20
end:R4上调用
代码语言:javascript
代码运行次数:0
复制
[r4-bgp]peer 10.1.45.5 route-policy aa export 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本篇技术博文摘要 🌟
  • 1.BGP的社团属性——Community
    • 追根溯源Community
    • 何为Community属性?
    • 团体属性名进制功能详解表
  • 2.BGP的社团属性——Community实战配置示例
    • 1、抓流量
    • 2、做策略
    • 3、调用
  • 3.BGP社团属性结合实际应用场景实战演练
    • 业务需求:
      • S1:设定策略,定义社团属性标记
      • S2: 在发布路由时调用策略
      • S3:开启社团属性的传播功能
      • S4:在AS 200中抓取流量
      • S5:做策略
      • S6:调用策略
  • 4.AS路径过滤器实战配置演练
    • 4.1AS路径过滤器详解
      • 正则表达式
      • 正则表达式功能匹配详解表[其实和Lin的正则一样]
    • 4.2实战配置业务需求:
      • 1、R3抓取流量
      • 2、R3调用策略
      • 3、R4抓取流量
      • 4、R4做策略
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档