BGP ECMP环境中community属性是如何传递的

需求:
R1发布环回口地址1.1.1.1给R2携带团体属性1111:1111,R3发布环回口地址1.1.1.1给R2携带团体属性1111:1111,R4发布1.1.1.1给R2不携带团体属性,测试在R2发送给R5的BGP路由表象中1.1.1.1是否携带团体属性值1111:1111?

AS规划:
R1 AS 100
R2 AS 200
R3 AS 300
R4 AS 400
R5 AS 500

拓扑环境:

R1配置:

<R1>dis ip int b
*down: administratively down
(s): spoofing  (l): loopback
Interface                Physical Protocol IP Address      Description
GE0/0                    up       up       12.1.1.1        --
GE0/1                    down     down     --              --
GE0/2                    down     down     --              --
GE5/0                    down     down     --              --
GE5/1                    down     down     --              --
GE6/0                    down     down     --              --
GE6/1                    down     down     --              --
Loop0                    up       up(s)    1.1.1.1         --
Ser1/0                   down     down     --              --
Ser2/0                   down     down     --              --
Ser3/0                   down     down     --              --
Ser4/0                   down     down     --              --
<R1>dis cu conf bgp
#
bgp 100
 peer 12.1.1.2 as-number 200
 #
 address-family ipv4 unicast
  network 1.1.1.1 255.255.255.255 route-policy com
  peer 12.1.1.2 enable
  peer 12.1.1.2 advertise-community
#
<R1>dis cu conf route-policy
#
route-policy com permit node 10
 apply community 1111:1111
#
return

R2配置:

<R2>dis ip int b
*down: administratively down
(s): spoofing  (l): loopback
Interface                Physical Protocol IP Address      Description
GE0/0                    up       up       12.1.1.2        --
GE0/1                    up       up       23.1.1.2        --
GE0/2                    up       up       24.1.1.2        --
GE5/0                    up       up       25.1.1.2        --
GE5/1                    down     down     --              --
GE6/0                    down     down     --              --
GE6/1                    down     down     --              --
Ser1/0                   down     down     --              --
Ser2/0                   down     down     --              --
Ser3/0                   down     down     --              --
Ser4/0                   down     down     --              --
<R2>
<R2>dis cu conf bgp
#
bgp 200
 peer 12.1.1.1 as-number 100
 peer 23.1.1.3 as-number 300
 peer 24.1.1.4 as-number 400
 peer 25.1.1.5 as-number 500
 #
 address-family ipv4 unicast
  balance 32                            //负载均衡配置
  balance as-path-relax                 //忽略比较AS内容
  peer 12.1.1.1 enable
  peer 23.1.1.3 enable
  peer 24.1.1.4 enable
  peer 25.1.1.5 enable
  peer 25.1.1.5 advertise-community
#

R3配置:

<R3>dis ip int b
*down: administratively down
(s): spoofing  (l): loopback
Interface                Physical Protocol IP Address      Description
GE0/0                    down     down     --              --
GE0/1                    up       up       23.1.1.3        --
GE0/2                    down     down     --              --
GE5/0                    down     down     --              --
GE5/1                    down     down     --              --
GE6/0                    down     down     --              --
GE6/1                    down     down     --              --
Loop0                    up       up(s)    1.1.1.1         --
Ser1/0                   down     down     --              --
Ser2/0                   down     down     --              --
Ser3/0                   down     down     --              --
Ser4/0                   down     down     --              --
<R3>
<R3>dis cu conf bgp
#
bgp 300
 peer 23.1.1.2 as-number 200
 #
 address-family ipv4 unicast
  network 1.1.1.1 255.255.255.255 route-policy com
  peer 23.1.1.2 enable
  peer 23.1.1.2 advertise-community
#
return
<R3>
<R3>dis cu conf route-po
<R3>dis cu conf route-policy
#
route-policy com permit node 10
 apply community 1111:1111
#

R4配置:

<R4>dis ip int b
*down: administratively down
(s): spoofing  (l): loopback
Interface                Physical Protocol IP Address      Description
GE0/0                    down     down     --              --
GE0/1                    down     down     --              --
GE0/2                    up       up       24.1.1.4        --
GE5/0                    down     down     --              --
GE5/1                    down     down     --              --
GE6/0                    down     down     --              --
GE6/1                    down     down     --              --
Loop0                    up       up(s)    1.1.1.1         --
Ser1/0                   down     down     --              --
Ser2/0                   down     down     --              --
Ser3/0                   down     down     --              --
Ser4/0                   down     down     --              --
<R4>
<R4>dis cu conf bgp
#
bgp 400
 peer 24.1.1.2 as-number 200
 #
 address-family ipv4 unicast
  network 1.1.1.1 255.255.255.255
  peer 24.1.1.2 enable
#
return

R5配置:

<R5>dis ip int b
*down: administratively down
(s): spoofing  (l): loopback
Interface                Physical Protocol IP Address      Description
GE0/0                    down     down     --              --
GE0/1                    down     down     --              --
GE0/2                    down     down     --              --
GE5/0                    up       up       25.1.1.5        --
GE5/1                    down     down     --              --
GE6/0                    down     down     --              --
GE6/1                    down     down     --              --
Ser1/0                   down     down     --              --
Ser2/0                   down     down     --              --
Ser3/0                   down     down     --              --
Ser4/0                   down     down     --              --
<R5>dis cu conf bgp
#
bgp 500
 peer 25.1.1.2 as-number 200
 #
 address-family ipv4 unicast
  peer 25.1.1.2 enable
#
return

测试:
在R2上查看BGP ECMP负载情况:

<R2>dis bgp peer ipv4

 BGP local router ID: 25.1.1.2
 Local AS number: 200
 Total number of peers: 4                 Peers in established state: 4

  * - Dynamically created peer
  Peer                    AS  MsgRcvd  MsgSent OutQ PrefRcv Up/Down  State

  12.1.1.1               100       22       20    0       1 00:13:08 Established
  23.1.1.3               300       23       21    0       1 00:13:08 Established
  24.1.1.4               400       20       19    0       1 00:13:08 Established
  25.1.1.5               500        3        4    0       0 00:00:25 Established
<R2>dis bgp routing-table ipv4              //通过在R2上查看路由,确认是负载均衡状态

 Total number of routes: 3

 BGP local router ID is 25.1.1.2
 Status codes: * - valid, > - best, d - dampened, h - history
               s - suppressed, S - stale, i - internal, e - external
               a - additional-path
       Origin: i - IGP, e - EGP, ? - incomplete

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >e 1.1.1.1/32         12.1.1.1        0                     0       100i
* >e                    23.1.1.3        0                     0       300i
* >e                    24.1.1.4        0                     0       400i
<R2>

<R2>dis ip routing-table 

Destinations : 25       Routes : 27

Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
1.1.1.1/32         BGP     255 0           12.1.1.1        GE0/0
                                                 23.1.1.3        GE0/1
                                             24.1.1.4        GE0/2
12.1.1.0/24        Direct  0   0           12.1.1.2        GE0/0

R5上查看收到的1.1.1.1的路由条目属性值,发现携带了1111:1111的团体属性值

<R5>dis bgp routing-table ipv4 1.1.1.1

 BGP local router ID: 25.1.1.5
 Local AS number: 500

 Paths:   1 available, 1 best

 BGP routing table information of 1.1.1.1/32:
 From            : 25.1.1.2 (25.1.1.2)
 Rely nexthop    : 25.1.1.2
 Original nexthop: 25.1.1.2
 OutLabel        : NULL
 Community       : <1111:1111>
 RxPathID        : 0x0
 TxPathID        : 0x0
 AS-path         : 200 100
 Origin          : igp
 Attribute value : pref-val 0
 State           : valid, external, best
 IP precedence   : N/A
 QoS local ID    : N/A
 Traffic index   : N/A

开启R5侧debug,确认R5侧收到BGP update更新报文是否携带团体属性值-------答案是携带团体属性1111:1111

<R5>t m
The current terminal is enabled to display logs.
<R5>t d
The current terminal is enabled to display debugging logs.
<R5>deb
<R5>debugging bgp u
<R5>debugging bgp update
<R5>reset bgp all
Reset BGP sessions? [Y/N]:y
<R5>%Jan  4 01:51:15:752 2020 R5 BGP/5/BGP_STATE_CHANGED:
 BGP default.: 25.1.1.2 state has changed from ESTABLISHED to IDLE for administrative reset.
<R5>%Jan  4 01:51:18:002 2020 R5 BGP/5/BGP_STATE_CHANGED:
 BGP default.: 25.1.1.2 State is changed from OPENCONFIRM to ESTABLISHED.
<R5>
<R5>*Jan  4 01:51:18:228 2020 R5 BGP/7/DEBUG:
        BGP.: Recv UPDATE from peer 25.1.1.2 with following destinations:
        Update message length : 59
        Origin       : IGP
        AS path      : 200 100
        Next hop     : 25.1.1.2
        Community    : <1111:1111>
        1.1.1.1/32 PathID 0 ,

结论:在EBGP ECMP负载均衡环境中,当不同的EBGP 宣告者分别发布既带有团体属性的community属性值和不带团体属性的community属性的业务网段时,最终EBGP 用户侧设备会收到一条带有团体community属性的路由,而不带community属性值得路由条目会被忽略掉

原文地址:https://blog.51cto.com/14648383/2464307

时间: 2024-10-27 03:54:19

BGP ECMP环境中community属性是如何传递的的相关文章

BGP中COMMUNITY属性

COMMUNITY--可选传递属性 一种标记,用于简化路由策略的执行 可以将某些路由分配一个特定的community属性,之后就可以基于该community值而不是每条路由进行BGP属性设置 community属性就可以理解成在IGP内打TAG的意思,只不过在BGP中是community值 community值会一直传递下去,如果不做策略,永远不会丢失. community属性在cisco路由器有两种表现形式: Cisco路由器默认表现形式是十进制的形式,例如图片中:796432 RFC格式:A

Hibernate 中配置属性详解(hibernate.properties)

Hibernate能在各种不同环境下工作而设计的, 因此存在着大量的配置参数.多数配置参数都 有比较直观的默认值, 并有随 Hibernate一同分发的配置样例hibernate.properties 来展示各种配置选项. 所需做的仅仅是将这个样例文件复制到类路径 (classpath)下并做一些自定义的修改. 属性1.Hibernate JDBC属性 属性名 用途 hibernate.connection.driver_class jdbc驱动类 hibernate.connection.ur

理解Docker(6):若干企业生产环境中的容器网络方案

本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 (6)若干企业生产环境中的容器网络方案 Docker 在早期只有单机上的网络解决方案,在 1.19 版本引入了原生的 overlay 网络解决方案,但是它的性能损耗较大,可能无法适应一些生产环

在VS2103环境中集成Doxygen工具

自己已将学习了两三次了吧,差不多这次该总结一下: Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C.C++.Java.Objective-C和IDL语言,部分支持PHP.C#.注释的语法与Qt-Doc.KDoc和JavaDoc兼容.Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX.RTF参考手册. Doxygen 是一个程序的文件产生工具,可将程序中的特定批注转换成为说明文件.通常我们在写程序时,或多或少都会写上批注,但

[原]Unity3D深入浅出 - 认识开发环境中的Project面板

前面几个是用来创建脚步的,从Prefab说起: Prefab:预设物体,若一个Object在Scene中多处用到,即可选择为改对象创建一个Prefab.创建一个Prefab后,将源Object拖拽置新建的Prefab下,即可在场景中多处使用,且在修改任意一处,Apply后即可修改所有的形态. Material:材质,可自己设定贴图等. Animation:可新建一个动画剪辑 Cubemap:立方体贴图 Lens Flare:可用来模拟太阳光晕效果,可拖置光源的Flare属性下. Custom F

将CKEditor集成到Java开发环境中

本文主要介绍如何将CKEditor集成到Java开发环境中,CKEditor是FCKEditor的升级版,使用很方便.下面是基本使用方法: 第一步:下载必要的库 1.到CKEditor官网http://www.fckeditor.net/download/下载Ckeditor4.0.2,这是目前最新的版本,4.1马上就出来了. 2.找到CKEditor 3.6.4 for Java,download.jar按钮,下载ckeditor-java-core-3.5.3.zip,这是java集成的ja

[转] JavaScript中的属性:如何遍历属性

在JavaScript中,遍历一个对象的属性往往没有在其他语言中遍历一个哈希(有些语言称为字典)的键那么简单.这主要有两个方面的原因:一个是,JavaScript中的对象通常都处在某个原型链中,它会从一个或多个的上层原型上继承一些属性.第二个原因是,JavaScript中的属性不光有值,它还有一些除了值以外的其他特性,其中一个影响属性遍历的特性就是[[Enumerable]],如果该值为true,则称这个属性是可枚举的,否则反之. 知道了这些,我们就可以把属性的遍历分为四种情况. 注:示例代码中

PVS更新Vdisk大型环境中提升为测试版

小环境和测试环境中pvs每次更新Vdisk镜像时完毕都都是提示为"生产版本",大型环境和一些特定的环境中,虽然VM启动的"版本"可以恢复,但是用户的很多数据是不可以逆转的,所以必须要求提示一个测试版本,长期测试后没有问题才可以投入到生产中使用. PVS-Server  首先更新完Vdisk后,提示版本选择"测试版",然后在"设备集合"中选择属性为"测试". Citrix Studio-Server-在对应的

集群环境中使用 EhCache 缓存系统

EhCache 缓存系统 : 本章节将要介绍EhCache及EhCache实现分布式的一些解决方案.并针对于这些解决性方案做一个实现,后续将出一个提供项目模块化.服务化.插件化的VieMall快速开发平台,同时集成Dubbo服务化.Zookeeper(分布式调度/分布式配置管理服务).Redis分布式缓存技术及Memcache/Ehcache 二级缓存切换.FastDFS分布式文件系统.ActiveMQ异步消息中间件.Solr搜索.Nginx负载均衡等分布式及读写分离.如果有时间可以深入分表分库