基础
无类别路径矢量型EGP协议
IGP:内部网关协议
EGP:外部网关协议
自治系统之内运行IGP协议,自治系统之间运行EGP协议
IGP动态路由协议评判三标准:资源少、收敛快、选路佳
自治系统的编号: 标准编号为16位二进制,范围0-65535,公有编号范围1-64511公有。私有编号范围64512-65535 扩展编号:32位二进制
BGP协议本身不产生路由,转发本地路由表中来自其他协议生成的路由条目
BGP协议本质上是一个重发布协议,专为AS之间共享路由定制
BGP协议特点
- 无类别路径矢量,以一个AS为一条跳,AS内部不会更改路由条目的属性
- 增量更新:由于AS之间的更新量大,所以采用增量更新(完全删除了周期更新的触发更新,周期更新占用链路资源)
- 可靠性:增量更新需要确保可靠性,而且AS内部两个边界路由器之间往往间隔很远,可以非直连建立邻居,需要使用TCP单播实现
- 可控性:BGP协议主要负责搬运IGP协议产生的路由,类似多点双向重发布,对选路不做计算,BGP具有丰富的属性来取代IGP中的度量进行选路,需要管理员大量手工干涉选路
- 默认不被用于负载均衡—通过各种选路规则进产生一条最佳路径
- 支持认证和汇总
BGP数据包
包的种类
open | 仅负责邻居关系的建立,正常进收发一次即可,携带router-id |
---|---|
keepalive | 保活,周期1min查询邻居关系是否存在,实际保活TCP会话,hold time默认为3min |
update | 携带路由条目,目标网络号+各种属性 |
notification | 出现错误数据时收发 |
工作过程
在运行BGP协议的自治系统内部运行IGP协议,如OSPF等,确保自治系统内部全通,以便两个边界路由器之间建立BGP邻居
建邻配置完成后,两台待建邻居的路由器之间已经知道了对端的ip地址,然后二者之间基于TCP的179端口,通过TCP的三次握手建立TCP会话
TCP会话建立之后,所有的BGP数据包基于TCP会话进行传递
邻居之间正常收发一次open报文,交互RID,相互认识,建立邻居关系,生成邻居表
BGP的router-id只要相邻的两个邻居不一样即可,即BGP的router-id可以不是全网唯一的
邻居关系建立后,正常每一分钟发一次keepalive包周期保活TCP会话即可
之后管理员可以根据网络的实际需要,选择性将本地路由表中通过任何来源产生的路由条目宣告到BGP协议中,然后BGP协议使用update包将路由信息共享给所有BGP邻居
生成BGP表,装载本地发出及接收到的所有BGP路由,之后仅将本地BGP表中参数最好的路由条目(基于BGP选路规则,不一定为最佳路径)加载于本地路由表中,无周期更新,仅keepalive保活邻居关系
结构突变
- 新增:本地使用update向本地所有邻居告知,前提是该路由不被已经发出的聚合路由包含
- 断开:本地使用update向本地所有邻居告知,前提是该路由不被已经发出的聚合路由包含。只有到聚合条目中所有明细路由均在本地失效才会告知邻居删除聚合条目
- 无法沟通:hold time为3min,连续三次未收到邻居的keepalive,则断开邻居关系和tcp会话,删除从该邻居处学习到的所有路由
名词
EBGP邻居关系:外部BGP邻居关系,建邻的两台设备处于不同的AS中
IBGP邻居关系:内部的BGP邻居,建邻的两台设备处于相同的AS中
BGP路由黑洞
A将自己的环回通过EBGP共享给B,B通过IBGP将路由通过TCP单播的形式共享给E(路径计算由OSPF完成),然后E再通过EBGP将路由共享给F,当F ping A时,流量来到E上通过查表发现到A的下一跳是B,到B的下一跳通过OSPF得知下一跳是C和D,但是在C和D上没有到达A的路由,C和D丢包。即A将自己的环回路由共享到B上的时候,B单播给E,虽然底层经过了C和D但是由于C和D仅负责路由流量,所以C和D上没有到达A的路由条目
解决方案:
1、物理或逻辑全连
2、邻居关系全连—所有路由器均运行BGP
3、将BGP重发布到IGP(实验环境,BGP中路由条目数过大,IGP路由表所能承载的路由条目数是有上限的)
4、MPLS—多协议标签交换
5、MPLS VPN
BGP防环机制
EBGP水平分割:针对AS之间的环路,路由条目中携带众多参数,包括各种BGP属性,其中有一种叫做AS-PATH属性,该属性用于记录改了路由条目经过的所有AS编号;若BGP学习到一条路由,其属性中包含了本地的AS号,将拒绝接收
IBGP水平分割:本地从一个IBGP邻居处学习到的路由,无法传递给其他的IBGP邻居
由于BGP协议可以非直连建立邻居,故在一个AS内部,无需专门设置BGP设备来备份邻居关系
IBGP的邻居关系数量随BGP运行设备的数量指数上升—配置量极大
配置命令
在BGP协议中:邻居关系的建立与路由条目的宣告是分开操作的
直连的EBGP邻居使用物理接口直接建立
IBGP邻居关系推荐使用环回地址作为源目IP地址建立邻居关系
EBGP邻居的建立
[r1]bgp 1 #运行bgp协议,r1所在的AS号为1
[r1-bgp]router-id 1.1.1.1 #定义本路由器的router-id
[r1-bgp]peer 12.1.1.2 as-number 2 #邻居的物理接口的ip地址
bgp 2
router-id 2.2.2.2
peer 3.3.3.3 as-number 2
peer 3.3.3.3 connect-interface loopback 0 #用环回接口建立邻居,TCP源目IP地址改为环回接口的IP地址
查看TCP会话状态display tcp status
注意端口号为179的会话,179端口所在的主机为服务端
查看邻居表display bgp peer
V代表版本号码;AS代表该邻居所在的AS号;MsgRcvd代表从该邻居处收到的路由条目数;MsgSent代表发给该邻居的路由条目数;State代表建立过程中的状态机
如果两台路由器之间有两条物理网线,则应该在两台路由器上写一条到对方的静态路由,采用负载均衡的方式,并且两台路由器建立邻居时所使用的ip地址也必须是环回接口的IP地址
EBGP邻居建立时收发的包的TTL是1,要求两个EBGP邻居之间必须直连,没有第三者在中间夹着
用环回接口建立EBGP邻居时必须修改TTL值
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
修改最大跳数
IBGP邻居的建立
IBGP邻居建立命令和EBGP相同,只需要as-number后面跟的数字和本路由器所在AS号相同即可
注意IBGP邻居收发的包的TTL为255,不需要修改最大跳数
BGP的宣告
本地路由表中无论和中来源产生的任意路由条目;均可以逐条宣告到BGP协议中,宣告完成后产生BGP表(装载本地发出以及接收到的所有路由条目)
宣告某条在路由表中的路由条目:
network 23.1.1.1 24
宣告的路由条目必须和路由表中记录的完全一致
快速宣告
自治系统边界路由器一次性将路由表中通过IGP学习到的路由全部导入BGP:
[r2-bgp]import-route ospf 1
BGP中宣告可以理解为逐条的重发布IGP路由到BGP,宣告的优先级比批量导入的要大
BGP路由表的查看与分析
查看bgp路由表:display bgp routing-table
BGP Local router ID is 192.168.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 9
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.9/32 0.0.0.0 0 0 i
*>i 2.2.2.7/32 10.1.1.2 0 100 0 (65001)i
* i 10.1.3.1 0 100 0 (65011 65001)i
*>i 2.2.2.8/32 10.1.2.2 0 100 0 (65011)i
* i 10.1.3.2 0 100 0 (65001 65011)i
*>i 2.2.2.9/32 10.1.4.2 0 100 0 (65001 65101)i
* i 10.1.5.2 0 100 0 (65011 65101)i
i 3.3.3.9/32 10.1.6.2 0 100 0 (65001 65101) 300i
i 10.1.6.2 0 100 0 (65011 65001 65101) 300i
路由条目状态代码:
- 表示路由是有效路由,下一跳可达。 表示路由是BGP选出的最优路由 i 表示路由是AS内部路由,来自于IBGP对等体。
路由条目最优且可用将允许被加表(不一定实际被加表,仅有被加表的可能)且可以传递给其他路由器
BGP进阶
BGP的宣告问题
1、运行BGP协议的设备可以宣告本地的直连用户网段
2、在BGP协议中运行BGP协议的设备还可以宣告通过IGP学习到的未运行BGP协议设备产生的路由
在BGP协议中宣告本地路由表中的路由条目时,将携带本地到达这些目标的IGP度量值,传递到BGP邻居处时,其他AS设备便于选择离目标最近的EBGP邻居
若一台BGP设备,通过IBGP邻居学习到一条路由,存在度量值,同时本地需要将这些路由传输给本地其他EBGP邻居时,只能将度量取消,按0进行传输,导致选路参考值不优
建议在一个AS中,若需要BGP设备宣告某条路由,则该AS内部所有运行BGP协议的设备都应该宣告,便于其他AS的BGP设备判断应该选择哪个EBGP邻居以最短路径到达目标
BGP的自动汇总
当代的路由器设备,默认就关闭了BGP的自动汇总功能; 自动汇总规则与正常BGP协议邻居共享的路由,或在BGP协议通过network宣告命令产生的路由条目无关; 仅针对从IGP重发布到BGP的路由条目; BGP中的宣告可以理解为是逐条的重发布IGP路由到BGP; BGP中中将IGP重发布到BGP,可以理解为是批量的将IGP路由宣告到BGP 协议; 但两种操作产生的路由条目其起源属性不同,宣告优于重发布; 在开启了自动汇总的前提下,重发布进入的路由将不携带子网掩码,按主类掩码进入;不携带本地到达目标的度量值,度量为0;若关闭自动汇总,进入路由将正常携带掩码,且携带度量;此时和宣告路由仅起源属性不同;故建议不要开启自动汇总;
既然在一个AS中建议所有运行BGP协议的设备均宣告相同路由,那么若进行重发布配置,也建议所有运行BGP协议的设备均进行重发布;
BGP聚合
在实际工程中,由于AS之间一定存在大量的EBGP邻居关系,因此仅汇总不能做到优选路径,必须在传递回合条目的同时再传递部分的明细路由进行控制。如下图,AS1的两个边界路由器将A1\A2\A3三条汇总成一条都往AS2发,AS2中的某台路由器就算收到了两条汇总路由,也要二选一,即到三者之一只能走一条路,因为BGP不支持负载均衡。解决方法:上面的边界路由器发一条A1的明细路由,下面的边界路由器发一条到A2和A3的明细路由。
应用场景:如下图,边界1和边界2都汇总边界1上的直连的四个网段,但是边界1还要将自己的直连网段的明系路由也发过去以让AS2的路由器优选自己这条路,如果上面那条路断了,由于下面那个路由器也汇总了边界1的直连,AS2的路由器就可以走下面的备份路径
空接口聚合
不是BGP的标准汇总思路,而是利用了BGP的宣告的特征来简化了:写一条到汇总网段的空接口静态路由,然后将这条空接口静态路由宣告到BGP中。
手工聚合
仅让EBGP邻居学习聚合路由,不允许任何明细路由被学习
[r1-bgp]network 1.1.1.0 24
[r1-bgp]network 1.1.2.0 24
[r1-bgp]aggregate 1.1.0.0 22 detail-supressed
# 如果不加detail-supressed,那么EBGP邻居会同时学习聚合的路由和明细的路由
# 聚合完成之后还会被聚合的路由器上会自动生成空接口路由,其Proto一栏将显示IBGP
路由传递干涉策略
1、抑制列表
可以让EBGP邻居学习聚合路由的同时,允许一部分明细路由被学习
聚合的时候加上抑制列表,所有处于抑制列表中的条目会被抑制,其余汇总中的明细路由会变为优且可用
[r1]ip ip-prefix s permit 1.1.1.0 24
[r1]route-policy ss permit node 10
[r1-route-policy]if-match ip-prefix s
[r1-bgp]aggregate 1.1.0.0 22 suppress-policy ss
2、将route-policy当分发列表(推荐)
禁止发送某条路由
[r1]ip ip-prefix qq permit 1.1.1.0 24
[r1]route-policy cc deny node 10
[r1-route-policy]if-match ip-prefix qq
[r1]route-policy cc permit node 20
[r1]bgp 1
[r1-bgp]peer 12.1.1.2 route-policy cc export
效果是R1上被禁止发送的路由条目依然显示优且可用,但实际上已经不允许被发送了,此时在12.1.1.2上查看bgp routing-table发现没有被禁止发送的路由
3、分发列表
[r1]ip ip-prefix b deny 1.1.1.0 24
[r1]ip ip-prefix b permit 0.0.0.0 0 less-equal 32
[r1-bgp]filter-policy ip-prefix b export
缺点:R1向所有接口发送路由时都要执行这个策略,浪费性能
建议:当R1只有一个邻居时使用该方法可减少配置量
4、前缀列表当成分发列表调用
[r1]ip ip-prefix b deny 1.1.1.0 24
[r1]ip ip-prefix b permit 0.0.0.0 0 less-equal 32
[r1-bgp]peer 12.1.1.2 ip-prefix b export
缺点:在每一个peer上只能调用一个ip-prefix
BGP在MA网络中的下一跳问题
重定向问题
图中1、2、3在一个MA网段,但不在同一AS;正常R1从R2学习到的R4的路由,下一跳自动显示为R3(最佳路径)
原理:
- R1/2/3必须使用MA网段的物理接口建立邻居关系
- ICMP重定向开启(默认开启) --- 一台路由器在转发一个流量时,发现流量在本地的入口和查询完路由表的出口为同一接口时,将告知上一跳设备本地的下一跳地址;帮助上一跳设备找到最佳的下一跳地址;
在BGP中仅查看某个邻居发送或接收到BGP路由:
[r1]display bgp routing-table peer 10.1.1.2 received-routes
仅查看本地从邻居10.1.1.2接收到BGP路由
[r1]display bgp routing-table peer 10.1.1.2 advertised-routes
仅查看本地发送给邻居10.1.1.2的BGP路由
next-hop-local问题
[r2-bgp]peer 172.16.1.3 next-hop-local
该命令表面上意思为本地将路由传递给邻居172.16.1.3时,修改BGP条目中下一跳为本地R2的地址,但实际上仅针对R2从本地的EBGP邻居学习到的路由传递给172.16.1.3才修改,本地从其他IBGP邻居出学习到的所有路由在传递给172.16.1.3这五个IBGP邻居时不修改下一跳地址,意义在于IBGP邻居间传递路由在一个AS内部,若贸然修改属性,极易出现环路,这个规则是在维持AS-BY-AS的特性
用路由策略实现更改路由的下一跳时必须确保仅更改从其他AS过来的路由的下一跳(不要破坏AS-BY-AS规则,即AS内部不要随意修改路由的属性)
有条件的打破IBGP水平分割—降低配置量
条件:在打破水平分割后,网络保障无环
路由反射器
反射器RR作为中心,客户与非客户与其建立IBGP邻居关系,构成一个簇,其他设备为客户或非客户,有且至少有一台客户
反射规则:
1、RR从一台EBGP邻居处学习到的路由,可以传递给本地的其他客户、非客户、其他EBGP邻居
2、RR从一台客户端学习到的路由,可以传递给本地的其他客户端、非客户端、其他EBGP邻居
3、RR从一台非客户端学习到的路由,可以传递给本地的其他客户端、EBGP邻居;不能传递给本地其他的非客户端
配置命令:
[r3-bgp]peer 2.2.2.2 reflect-client
R3将邻居2.2.2.2作为自己的客户
next-hop-local只需要在ASBR上输入即可,即路由在AS内部传递时,下一跳始终是边界路由器出接口,而内部路由器要到达这个接口只需要靠内部运行的IGP,比如说ospf即可,不要频繁的改下一跳,容易出环
一个设备可以既是RR也是客户端,如下图所示情况,各个路由器之间是IBGP邻居关系
客户端不能执行反射,只有RR才能决定是否应该反射
在上头中,除了两头的路由器,中间的所有路由器必须都是RR的同时才具备决定是否该反射的能力,一个路由器在不同簇中的身份不一样,但在某个簇中的身份一定是个RR
联邦(AS内部嵌套假的AS)
中间内部的EBGP称为联邦内的假的EBGP关系,和真的EBGP关系的区别:
1、不受IBGP水平分割限制
2、不能改属性
在上图配置R2的时候,应该输入小AS的AS号,下面是R2上的配置命令
[r2]bgp 64512 # 配置联邦内的路由器时,先将路由器声明到小AS中
[r2-bgp]router-id 2.2.2.2
[r2-bgp]confederation id 2 #声明R2所在的联邦ID
[r2-bgp]peer 12.1.1.1 as-number 1
[r2-bgp]peer 3.3.3.3 as-number 64512 #小AS之内建立邻居关系的时候,要声明小AS号,来说明我和你是同一个小AS的
[r2-bgp]peer 3.3.3.3 connect-interface Loopback 0
配置R3:
[r3]bgp 64512
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation id 2
[r3-bgp]peer 2.2.2.2 as-number 64512
[r3-bgp]peer 2.2.2.2 connect-interface lo0
[r3-bgp]confederation peer-as 64513 # 告诉R3旁边还有个小AS,号码是64513,防止R3分不清“peer 4.4.4.4 as-number 64513”中64513是大AS的号码还是小AS的号码
[r3-bgp]peer 4.4.4.4 as-number 64513
[r3-bgp]peer 4.4.4.4 connect-interface lo0
[r3-bgp]peer 4.4.4.4 ebgp-max-hop 2 # 假的EBGP邻居之间也要改跳数,因为二者之间是用环回建立,只要是用环回接口建立的ebgp邻居关系,都要改最大跳数防止TTL归零死亡
配置R4
[r4]bgp 64513
[r4-bgp]router-id 4.4.4.4
[r4-bgp]confederation id 2
[r4-bgp]confederation peer-as 64512
[r4-bgp]peer 3.3.3.3 as-number 64512
[r4-bgp]peer 3.3.3.3 connect-interface Loopback 0
[r4-bgp]peer 3.3.3.3 ebgp-max-hop 2
[r4-bgp]peer 5.5.5.5 as-number 64513
[r4-bgp]peer 5.5.5.5 connect-interface Loopback 0
配置R5
[r5]bgp 64513
[r5-bgp]router-id 5.5.5.5
[r5-bgp]confederation id 2
[r5-bgp]peer 4.4.4.4 as-number 64513
[r5-bgp]peer 4.4.4.4 connect-interface Loopback 0
[r5-bgp]peer 56.1.1.2 as-number 3# 在这句话之前只要没告诉R5旁边有个其他小AS,则这句话就告诉R5旁边的56.1.1.2所在的区域是个大AS了
配置R6:
[r6]bgp 3
[r6-bgp]router-id 6.6.6.6
[r6-bgp]peer 56.1.1.1 as-number 2
<aside> 💡 一般来说,联邦和反射器是要一起用的,联邦的缺点是小AS内只能有两个路由器,反射器的缺点是簇太多,一个套一个,配置繁琐,一台路由器在多个簇中身兼多职。所以要将联邦和反射器结合起来使用
</aside>
配置要点:
1、bgp启动的时候起小号
2、建邻居也用小号
BGP选路
BGP属性
例图:
标准属性
五种公有属性,思科和华为各存在一种私有属性,一共有六种属性
下面按照比较顺序的优先级来说明
属性名 | 传播范围 | 默认值 | 范围 | 大或小优 | 修改方法 | 备注 |
权重属性PrefVal | 不传播(私有) | 0 | 0-65535 | 越大越好 | 1、[r3]peer 4.4.4.4 preferred-value 1 直接修改,本地所有通过4.4.4.4学习到的路由,权重全部修改为1(必须在路由的接收方修改,因为该属性无法传播) 2、通过路由策略修改(推荐):在BGP路由控制层面传递的过程中,抓取路由修改属性,实现负载分担(到不同的目标要走不同的路) [r3]ip ip-prefix p permit 1.1.1.0 24 抓住网络号 [r3]route-policy p permit node 10 开始定制策略 [r3-route-policy]if-match ip-prefix p 匹配流量 [r3-route-policy]apply preferred-value 1 修改优先级属性 [r3-route-policy]q [r3-route-policy]route-policy p permit node 20 做一个空表放过其他流量 [r3-bgp]peer 4.4.4.4 route-policy p import 只能在路由接收方的bgp视图上应用该路由策略 | |
本地优先级LocPrf | IBGP邻居之间传播 | 100 | 0-255 | 越大越好 | 1、[r4-bgp]default local-preference 101 R4将所有传递给其他IBGP邻居的本地优先级全部修改为101 2、通过路由策略实现负载分担 [r4]ip ip-prefix p permit 1.1.2.0 24 [r4]route-policy p permit node 10 [r4-route-policy]if-match ip-prefix p [r4-route-policy]apply local-preference 101 [r4-route-policy]route-policy p permit node 20 做一个空表放过其他流量 [r4-bgp]peer 3.3.3.3 route-policy p export | 用于干涉IBGP邻居关系下选路最常用属性 |
下一跳 | AS内部 | 无 | 无 | 优选0.0.0.0 | 无法人为修改 | 下一跳可达,该条目在BGP表中才能有效; 本地宣告的路由条目在本地BGP表中查看时该条目的下一跳是0.0.0.0,无论该条目所代表的路由是否直连该路由器。而且会优选下一跳为0.0.0.0的路由,即优选直接宣告的路由,即使本地通过IBGP也学习到了这条路由,依然向外共享本地宣告的路由 |
AS-path | 全网 | 无 | 无 | 优选经过的AS号码较少的路径 | 只能在EBGP邻居之间修改来增加AS号 apply as-path 3 4 5 additive 常规修改 apply as-path 1 1 1 additive 号码可以重复,干涉选路的同时不影响EBGP水平分割 出方向调用为x 3 4 5,x代表实际经过的AS,新增AS号处于列表的最左端 使用该路由策略的时候记得加上空表 若网络后端真实存在AS3\4\5,由于EBGP水平分割,将导致这些路由无法被学习 | 在EBGP水平分割中发挥作用,将记录所有经过的AS编号。编号的添加是在传递路由给EBGP邻居时才添加,优选经过的AS号码较少的路径,可以人为的在BGP路由条目传递过程中,增加AS号来干涉选路(假装经过某个AS),只能在EBGP邻居间增加AS号,可以干涉EBGP关系选路。还可以干涉IBGP选路,只是只能在EBGP关系间配置 |
起源属性ogn | 全网 | i>? | apply origin [egp\igp\incomplete] 2 后面的这个2的意思是针对调用的邻居的AS号 igp代表起源码i;egp代表起源码e;incomplete代表起源码? | Network:一人一条宣告产生;起源码 i import : 重发布,批量的导入BGP协议;起源码 ? | ||
MED多出口鉴别属性 | 全网 | 对于来自同一个AS的路由,优选MED值小的 | apply cost 2 | 用于EBGP干涉选路最常,人为的修改度量值来影响路由器加表。也可用于干涉IBGP选路 干涉EBGP选路实际上是用于AS1干涉AS2对AS1的选路 将本地通过IGP协议学习到的路由重发布到BGP协议,将携带本地IGP度量值到BGP路由中 |
BGP选路规则
比较前提,多条BGP路由目标相同,优且可用,具有相同的协议优先级
先从属性开始比较(蓝色部分),如果比不出来,则看参数部分(红色部分)
- 优选Preference_Value最高的路由(私有属性,仅本地有效)
- 优选本地优先级最高的路由
- 手动聚合>network>import>从对等体学到的
- 优选AS_Path短的路由
- 起源类型:IGP>Incomplete 即i优于?
- 对于来自同一个AS的路由,优选MED值小的
- 优选从EBGP或联邦内EBGP学到的路由,真EBGP>联邦内EBGP>IBGP
- 优选AS内部IGP的Metric最小的路由
- 优选Cluster List最短的路由,在一个路由器作为多台路由器的客户的情况下出现,即多台路由器是该台路由器的反射器,此时多台RR会给该路由器反射多条相同的路由,这时会比较该路由器与各个反射器之间组成的簇的cluster list值,可以理解为RR的ROUTER-ID
- 优选Originator_ID最小的路由
- 优选Router_ID最小的路由发布的路由
- 优选具有较小建邻IP地址的邻居学来的路由,用于两台路由器之间有多条物理链路而且在这两条物理链路上建立了两个EBGP关系的情况
BGP的社团属性
BGP的扩展属性 ,默认大多数厂商的产品在BGP协议中不携带社团属性
相当于用户自定义属性让路由条目携带上
例子:控制传播范围的社团属性
[R1]route-policy com permit node 10
[R1-route-policy]apply community no-advertise
[R1]peer 12.1.1.2 route-policy com export
[R1]peer 12.1.1.2 advertise-community #打开属性的传播性
查看社团属性:
先打开bgp路由表display bgp routing-table
,如下图
然后查看1.1.1.0/24的详细信息:display bgp routing-table 1.1.1.0
社团属性默认是不显示在上表的,因为社团属性默认是不会传播的,需要打开传递性之后才能在上表中显示
配置命令:
第一行是社团属性号码,可以自定义一个号码是什么属性,下面是一些已经被预定义的社团属性
[r1]route-policy com permit node 10
[r1-route-policy]apply community no-advertise #不写if-match,就会匹配所有流量
[r1-bgp]peer 12.1.1.2 route-policy com export
[r1-bgp]peer 12.1.1.2 advertise-community # 打开社团属性的传递性。每次配置社团属性的时候必须加上
各个预定义属性的作用
预定义属性名 | 作用 |
---|---|
no-advertise | 控制路由的传播半径,如果某路由被打上了该属性,则该路由不会再传播 |
no-export | 路由不允许离开当前所在的AS |
no-export-subconfed | 接收到的条目若存在该社团属性,将不传递给下一个小AS,限制在联邦内的小AS之内,若没有小AS,则和no-export是相同作用 |
[r1-bgp]load-balancing as-path-ignore BGP协议开启负载均衡,仅针对EBGP路由有效 条件为均衡的这些路径,其对端一定为同一个AS;且在BGP表中仅显示优最佳;但路由表中出现负载均衡现象;