对于减少路由条目,BGP使用以下几种技术:
团体属性用于标识具有相同特征的BGP 路由,Community的BGP路径属性是可选过渡 (Optional transitive)。
先来理解分配一个特定的COMMUNITY属性,COMMUNITY属性对邻居起作用,在设置后,同时需要向邻居发送的概念。
COMMUNITY属性的数值,这个数值是是一组4个8位组。格式为:AA:NN,前两个8位组表示自治系统,后2个8位组表示出地管理目的而定义的标识符。RFC1997规定前2B表示AS号,后2B表示基于管理目的设置的标示符。
团体号:团体号是0~4294967295的整数。RFC1997中定义,0(0x00000000)~65535(0x0000FFFF)和4294901760(0xFFFF0000)~4294967295(0xFFFFFFFF)是预留的。
上图中标识具有相同特征的BGP 路由。为不同种类的路由打上不同的COMMUNITY属性值,而不用管前缀是192.168.1还是172.16还是10开始,只根据属性值执行不同的策略。
COMMUNITY属性两个重大作用:
1、匹配路由(一种标识,标识路由)。
2、针对路由的过滤
且不受AS的限制
。利用团体属性可以使多个AS中的一组BGP设备共享相同的策略
,从而简化路由策略的应用和降低维护管理的难度。路由条目打上标记
,用于确保路由过滤和选择的连续性,BGP路由可以过滤进出路由更新
或者优选某些路由
。团体属性分为:
公认团体属性:
团体属性名称 | 备注 |
---|---|
Internet 0(0X00000000) | 向任何BGP邻居宣告 |
No_Advertise 4294967042(0XFFFFFF02) | 不向任何BGP邻居宣告 |
No_Export 4294967041(0XFFFFFF01) | 不向任何EBGP邻居宣告,但可以向联盟内的EBGP邻居宣告 |
No_Export_Subconfed 4294967043(0XFFFFFF03) | 不向任何EBGP邻居宣告,包括联盟内的EBGP邻居宣告 |
No_Export_Subconfed 4294967043(0XFFFFFF03) | 不向任何EBGP邻居宣告,包括联盟内的EBGP邻居宣告 |
上图只有R2有这条路由,与它相邻都收不到这条路由。No_Advertise
自定义团体属性:
自定义规则和应用方法,格式:AS(2Bit):Number(2Bit)
1、no_advertise使用案例 谁也不给
使用network方式宣告
[R1]bgp 100
[R1-bgp]network 1.1.1.1 255.255.255.255 route-policy community
#配置向对等体发布团体属性,缺省情况下,BGP不会将团体属性发送给任何对等体。
[R1-bgp] peer 12.0.0.2 advertise-community //配置将团体属性发布给对等体(组)。
[R1-bgp] peer 13.0.0.3 advertise-community
[R1-bgp]q
[R1]ip ip-prefix 5 permit 1.1.1.1 32
[R1]route-policy community permit node 10
[R1-route-policy]if-match ip-prefix 5
[R1-route-policy]apply community no-advertise
[R1-route-policy]q
[R1]route-policy community permit node 20 //带了ACL和前缀列表条件就必须放其他的通过
这时R2和R3都看不到1.1.1.1的路由。
R2查看dis bgp rout ipv4 1.1.1.1
使用邻居路由策略方式方式。
[R1]bgp 100
[R1-bgp]net 1.1.1.1 32
[R1-bgp]q
[R1]ip ip-prefix 5 permit 1.1.1.1 32
[R1]route-policy community permit node 10
[R1-route-policy]if-match ip-prefix 5
[R1-route-policy]apply community no-advertise
[R1-route-policy]q
[R1]route-policy community permit node 20 //带了ACL和前缀列表条件就必须放其他的通过
[R1]bgp 100
[R1-bgp]peer 12.0.0.2 route-policy community export
[R1-bgp]peer 13.0.0.3 route-policy community export
这里除了R2、R3外其它都不能接收1.1.1.1/32这条路由。
2、No_export本圈子之外谁也不给
表示携带该值的路由不能公布给EBGP邻居,如果配置了BGP联盟,则不能将该路由宣告到联盟之外,携带该值的路由可以公布给联盟内的其它子自治系统但不能在构成联盟的AS以外进行公布。
使用network方式宣告
[R1]bgp 100
[R1-bgp]network 1.1.1.1 255.255.255.255 route-policy community
#配置向对等体发布团体属性,缺省情况下,BGP不会将团体属性发送给任何对等体。
[R1-bgp] peer 12.0.0.2 advertise-community //配置将团体属性发布给对等体(组)。
[R1-bgp] peer 13.0.0.3 advertise-community
[R1-bgp]q
[R1]route-policy community permit node 10
[R1-route-policy]if-match ip-prefix 5
[R1-route-policy]apply community no-export
[R1-route-policy]q
[R1]route-policy community permit node 20 //带了ACL和前缀列表条件就必须放其他的通过
使用邻居路由策略方式方式。
[R1]bgp 100
[R1-bgp]net 1.1.1.1 32
[R1-route-policy]q
[R1]route-policy community permit node 10
[R1-route-policy]if-match ip-prefix 5
[R1-route-policy]apply community no-export
[R1-route-policy]q
[R1]route-policy community permit node 20
[R1]bgp 100
[R1-bgp]peer 12.0.0.2 route-policy community export
[R1-bgp]peer 13.0.0.3 route-policy community export
针对邻居使用R2和R3调用,如果R2和R3、R4有自己的BGP联盟,可以在联盟内宣告,但不能对AS200以外宣告。
3、no-export-subconfed不通告给子的联邦,也不给其他AS。
和上面配置一样,省略。
4、none将团体属性清空。
5、自定义属性配置
R1对1.1.1.1\32的路由标识团体属性号100:1。
[R1]route-policy community permit node 10
[R1-route-policy]apply community 100:1 //前面是AS号后面是路由器号
[R1]bgp 100
[R1-bgp]network 1.1.1.1 255.255.255.255 route-policy community
#配置向对等体发布团体属性,缺省情况下,BGP不会将团体属性发送给任何对等体。
[R1-bgp] peer 12.0.0.2 advertise-community //针对邻居发送团体属性
[R1-bgp] peer 13.0.0.3 advertise-community //针对邻居发送团体属性
R3查看接收1.1.1.1/32的路由被标识团体属性号100:1。
R3查看dis bgp rout ipv4 1.1.1.1
[R3]dis bgp routing-table community
R3配置根据团体属性的路由策略
#创建高级团体属性列表 R1Lo0,允许团体属性内容100:1的路由信息通过。
[R3] ip community-list advanced R1Lo0 permit 100:1
[R3] route-policy R3 permit node 10
[R3-route-policy]if-match community name R1Lo0
[R3-route-policy]apply preferred-value 200
[R3] route-policy attribute permit node 20 //有条件if-match就必须放其他的通过community
[R3-bgp] peer 4.4.4.4 route-policy R3 export
R3在邻居R4出方向调用路由策略,使用本地优先级属性值增加到400,从R4发送数据包到R1的1.1.1.1/32,优先走R4–>R3–>R1,达到优化调整数据流的目的。
为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接(Full-mesh)关系。
假设在一个AS内部有n台路由器,那么应该建立的IBGP连接数就为n(n-1)/2。当IBGP对等体数目很多时,对网络资源和CPU资源的消耗都很大。利用联盟和路由反射可以解决这一问题。
联盟将一个AS划分为若干个子AS。每个子AS**内部**建立IBGP
全连接关系,子AS之间建立联盟EBGP连接关系,但联盟外部AS仍认为联盟是一个AS。配置联盟后,原AS号将作为每个路由器的联盟ID。
这样有两个好处:
一是可以保留原有的IBGP属性,包括Local Preference属性、MED属性和NEXT_HOP属性等;
二是联盟相关的属性在传出联盟时会自动被删除,即管理员无需在联盟的出口处配置过滤子AS号等信息的操作。
子AS建议采用私有AS号。在联盟中,子成员自治系统间使用一种特殊的EBGP连接,我们称之为联盟EBGP。
联盟适用于大规模网络。实际应用比较少,省略详细部分。
配置联盟后,原AS号将作为每个路由器的联盟ID。
原有的IBGP 属性,包括Local Preference属性、MED属性和NEXT_HOP属性
等;联盟相关的属性在传出联盟时会自动被删除。
联盟AS内仍然需要保证IGP的连通性,才能保证数据包的正确转发。否则下一跳会出现不可达的状况。默认认为的是在整个AS中,包括与外部AS建立邻居关系的接口所在的网段,都是通告进入IGP路由协议的。
在联盟AS2345内,R2、R3、R4、R5,通过内部网关协议(IGP)OSP实现内网互通,联盟AS内保证IGP的连通,用于实现与联盟外部AS的EBGP的路由通告。
R2配置ospf
[R2-LoopBack0]ospf 1 rou 2.2.2.2
[R2-ospf-1]a 0
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]net 34.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]net 24.0.0.0 0.0.0.255
R3配置ospf
[R3]ospf 1 rou 3.3.3.3
[R3-ospf-1]a 0
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]netw 34.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]netw 35.0.0.0 0.0.0.255
R4、R5省略。
AS 2345内部建立 BGP 联盟,联盟 AS 为 AS 200,包含 2个子 AS 为 AS 65510 和 AS 65520。
R1 和 R2 建立 EBGP 邻居,R2 和 R4 建立 EBGP 邻居,R4 和 R6 建立 EBGP 邻居。
子 AS 内部建立 IBGP 全连接。
[R1-LoopBack1]bgp 100
[R1-bgp]peer 12.0.0.2 as 200
[R2]bgp 65510
[R2-bgp]router-id 2.2.2.2
[R2-bgp]confederation id 2345 //配置BGP联盟,并指定联盟ID2345。
[R2-bgp]confederation peer-as 65520 //指定属于同一个联盟连接本机的子自治系统号。
[R2-bgp]pe 24.0.0.4 as 65520 //与联盟内对等体建立EBGP关系
[R2-bgp]pe 24.0.0.4 next-hop-local //联盟的EBGP邻居之间下一跳是我自己,
#联盟内如果不配置这条命令,其下一跳是不会修改为自己的IP地址,这里和普通的EBGP邻居有区别。
[R2-bgp]pe 12.0.0.1 as 100 //非联盟内EBGP对等体
[R2-bgp]peer 3.3.3.3 as-number 65510 //IBGPm内对等体
[R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[R2-bgp]pe 3.3.3.3 next-hop-local
[R2-bgp]dis current-configuration configuration bgp
[R3]bgp 65510
[R3-bgp]con id 2345
[R3-bgp]con pe 65520
[R3-bgp]pe 2.2.2.2 as 65510
[R3-bgp]pe 2.2.2.2 con LoopBack 0
[R3-bgp]pe 2.2.2.2 next-hop-local
R4、R5省略。
[R1]ping -a 1.1.1.1 6.6.6.6
R1在BGP内宣告还回口lo1: 11.11.11.11/32路由。
[R1-LoopBack1]bgp 100
[R1-bgp]add ipv4 un
[R1-bgp]netw 11.11.11.11/32
只在联盟中出现的: