第6章 BGP选路
一、BGP选路
BGP路径属性
属性名称 | 作用 | 传递规则 | 默认值 |
---|---|---|---|
PV --- 权重 | 选路 | 不传递,越大越优 | 0 |
LP --- 本地优先级 | 选路 | IBGP对等体之间,越大越优 | 100 |
-
PV值(Preferred Value):
-
华为体系“独有”的属性,指代一条路由的权重,权重越大该路由越优先,默认值为0,是用来干涉设备自身选路最常用的属性。
-
作用:方便人为干涉路由的选举。
-
特点:只能针对自身学习到的路由信息,不能传递。
-
-
LP值(Local Preference):
-
本地优先级属性,同样越大越优,默认值为100。
-
特点:可以传递,但是只能在IBGP对等体之间传递。可以在任意IBGP对等体上配置。
-
-
MED(多出口鉴别属性)
-
MED常用在干涉对端AS中设备访问本AS的路径。
-
在AS内部,设备去往目标网段的Cost就是BGP路径属性中默认的MED,等同于路由表中去往该网段Cost的数值。
-
对于AS内部的用户网段,如果需要在BGP设备中宣告(同时AS存在多个运行BGP的边界设备),那么需要在所有BGP设备中宣告。
-
特点:MED属性会传递,但是如果由IBGP路由携带该属性,在传递给自身的EBGP对等体是会清除该属性。
-
路由优选
当达到同一个目的网段存在多条路由时,BGP通过以下的次序进行路由优选:
-
丢弃下一跳不可达的路由。
-
优选Preferred-Value属性值最大的路由。
-
优选LocalPreference属性值最大的路由
-
以上规则取值越大越优。
-
-
本地始发的BGP路由优于从其他对等体学习到的路由。
-
本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的路由。
-
-
优选AS_Path属性值最短的路由。
-
当一条路由信息发出本AS时会由边界路由器添加该属性
-
当路由器去往同一目标网段,前三条选路规则一致,那么AS_PATH属性短的路由更优。
-
-
优选Origin属性最优的路由。
-
Origin属性值按优先级从高到低的排列量:IGP、EGP及Incomplete。
-
-
优选MED属性值最小的路由。
-
优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。
-
优选到Next_Hop的IGP度量值最小的路由。
-
当前8条属性全部相同时可以形成路由负裁分担。
-
-
优选Cluster_List簇列表最短的路由(反射器)。
-
优选RouterID/Orginator_ID最小的设备通告的路由。
-
优选具有最小IP地址的对等体通告的路由。
-
以上规则取值越小越优。
-
前提:只有可用的路由信息才会参与这11条规则选举,从上往下依次比较,一旦选举出来就不再看剩下的规则。
命令
权重值PV
路由PV属性干涉选举
注意该属性只能影响自身,不能传递
peer [RID] preferred-value [权重值]
撤销命令,不用加权重值
undo peer [RID] preferred-value
利用路由策略做到更加精确的选路
if-match ip-prefix pv
路由策略修改路由中的参数
apply preferred-value [权重值]
必须添加空表去放通剩下没有修改参数的路由
编号值要足够大
route-policy pv permit node [编号]
本地优先级LP
发送路由信息时修改本地优先级
default local-preference [优先级]
撤销命令,不用加优先级
undo default local-preference
路由策略中修改参数
apply local-preference [LP值]
优选AS_Path值短的路由
添加AS号,可以添加多个
在原来AS号基础上添加(更好)
apply as-path [AS1] [AS2] [ASn] additive
将原来AS号覆盖再添加
apply as-path [AS1] [AS2] [ASn] overwrite
调用路由策略,注意方向
如果是出向修改 添加AS号在最前面
如果是入向修改 添加AS号在最后面
peer [RID/IP] route-policy [策略名] export
配置
首先进行基础IP和环回配置。
# BGP配置,注意EBGP对等体用直连IP建立 [R1-bgp]peer 12.0.0.2 as-number 200 [R1-bgp]peer 13.0.0.2 as-number 200 [R2-bgp]peer 12.0.0.1 as-number 100 [R2-bgp]peer 4.4.4.4 as-number 200 [R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0 [R3-bgp]peer 13.0.0.1 as-number 100 [R3-bgp]peer 4.4.4.4 as-number 200 [R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0 [R4-bgp]peer 2.2.2.2 as-number 200 [R4-bgp]peer 3.3.3.3 as-number 200 [R4-bgp]peer 45.0.0.2 as-number 300 [R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0 [R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0 [R5-bgp]peer 45.0.0.1 as-number 200 # 修改下一跳属性 [R2-bgp]peer 4.4.4.4 next-hop-local [R3-bgp]peer 4.4.4.4 next-hop-local [R4-bgp]peer 2.2.2.2 next-hop-local [R4-bgp]peer 3.3.3.3 next-hop-local # R1宣告环回网段发布路由信息 [R1]ip route-static 10.0.0.1 24 NULL 0 [R1-bgp]network 1.1.1.0 24 [R1-bgp]network 10.0.0.0 24 # 此时查表R4发现R1路由均选择上路R2,下路R3可用但不是最优 [R4-bgp]display bgp routing-table
权重PV值
规则1:权重越大越优,只针对自身PV值,不会传递。
### 修改权重 [R4-bgp]peer 3.3.3.3 preferred-value 1000 # 再次查表发现路由选择走下路R3,上路可用不优,但是这样分配并不合理,R3压力会变大,我们先撤回命令 [R4-bgp]undo peer 3.3.3.3 preferred-value ### 路由策略,我们选择上路抓取1.0网段,下路抓取10.0网段 # 创建前缀列表pv抓取10.0网段 [R4]ip ip-prefix pv permit 10.0.0.0 24 # 创建路由策略pv [R4]route-policy pv permit node 10 # 匹配前缀列表 [R4-route-policy]if-match ip-prefix pv ### 修改权重值,大于零即可 [R4-route-policy]apply preferred-value 10 ## 调用路由策略,注意是在进入方向修改权重 [R4-bgp]peer 3.3.3.3 route-policy pv import # 此时查表发现10.0网段成功选择下路R3,且有备用选路,当R3出问题时仍会选择走上路R2;但是1.0网段没有备用选路,因为路由策略只抓取了10.0网段 [R4-bgp]display bgp routing-table ### 创建空表放通剩下流量,让1.0网段也有备用路线 [R4]route-policy pv permit node 1000
本地优先级
规则2:越大越优,可以传递,但是只能在IBGP对等体之间传递。
# 先删除路由策略还原路由环境 [R4]undo route-policy pv ### 修改本地优先级,大于默认值100即可 [R3-bgp]default local-preference 200 # 查表发现路由信息均选择走下路R3 [R4]display bgp routing-table # 展开详细BGP表特定路由信息 [R4]display bgp routing-table 1.1.1.0 24 # 这样并不合理,删除命令 [R3-bgp]undo default local-preference ### 路由策略lp # 创建前缀列表lp [R3]ip ip-prefix lp permit 10.0.0.0 24 [R3]route-policy lp permit node 10 [R3-route-policy]if-match ip-prefix lp ### 修改本地优先级 [R3-route-policy]apply local-preference 1000 ## 创建空表放通剩下流量 [R3]route-policy lp permit node 1000 # 调用路由策略,注意是发出方向 [R3-bgp]peer 4.4.4.4 route-policy lp export # 查表发现路由分路成功 [R4]display bgp routing-table
规则验证
本地始发
##### 规则3 ### 本地始发路由优于从其他设备学习到的 [R2]ip route-static 1.1.1.0 24 NULL 0 [R2-bgp]network 1.1.1.0 24 # 查表发现1.0网段有两条,本地宣告的可用且优且下一跳为0.0.0.0;R1传递的只有可用 [R2-bgp]display bgp routing-table ### 手动聚合>自动聚合>network>import>从对等体学到的路由 # 创建两条空接口静态并重发布 [R1]ip route-static 172.16.0.0 24 NULL 0 [R1]ip route-static 172.16.1.0 24 NULL 0 [R1-bgp]import-route static # 手工聚合并明细抑制全部 [R1-bgp]aggregate 172.16.0.0 23 detail-suppressed # 这里也可以直接创建并宣告23网段,无需明细抑制 [R1]ip route-static 172.16.0.0 23 NULL 0 [R1-bgp]network 172.16.0.0 23 # 查表发现优选手动聚合>本地宣告>重发布 [R1-bgp]display bgp routing-table
AS_Path最短
##### 规则4 ### 优选AS_Path属性值最短的路由 # 先删除路由策略还原环境,此时路由均走上路R2 [R3]undo route-policy lp ### 路由策略 [R1]ip ip-prefix as permit 10.0.0.0 24 [R1]route-policy as permit node 10 [R1-route-policy]if-match ip-prefix as ### 在原来AS号基础上添加AS_Path值 [R1-route-policy]apply as-path 1 2 3 additive # 这样写增加了新的AS号,容易造成路由传递的障碍,因为后续如果有新的AS号相同则设备不会学习传递的路由;如果想用AS修改选路,应选择添加相同的AS号,仅加长,不增加 [R1-route-policy]apply as-path 100 100 100 additive # 创建空表 [R1]route-policy as permit node 1000 # 在发出方向调用路由策略 [R1-bgp]peer 12.0.0.2 route-policy as export # 查表R4发现10.0网段优选下路R3,AS_Path值为100i [R4]display bgp routing-table
Origin最优
规则5
-
对于本地始发的路由,network>egp>import。
MED最小
##### 规则6 ### 优选MED属性值最小的路由 # 新建立一个环回并宣告 [R2-LoopBack1]ip address 100.0.0.1 24 [R2-ospf-1-area-0.0.0.0]network 100.0.0.0 0.0.0.255 [R2-bgp]network 100.0.0.0 24 ### 修改接口OSPF开销值便于观察 [R2-LoopBack1]ospf cost 10 ### 修改OSPF网络类型,还原路由表环回掩码为24(原来是32) [R2-LoopBack1]ospf network-type broadcast ### 我们选择在R4中宣告R2的环回,先撤回R2的宣告 [R2-bgp]undo network 100.0.0.0 24 [R4-bgp]network 100.0.0.0 24 # 此时查表发现MED值变为11,即R4到该网段的开销值 [R4]display bgp routing-table # R4宣告环回并查看R1 [R4-bgp]network 4.4.4.0 24 ### 路由策略 [R3]ip ip-prefix med permit 4.4.4.0 24 [R3]route-policy med permit node 10 [R3-route-policy]if-match ip-prefix med # 修改开销值并调用路由策略(出接口) [R3-route-policy]apply cost 10 [R3-bgp]peer 13.0.0.1 route-policy med export ## R2同理 [R2]ip ip-prefix med permit 4.4.4.0 24 [R2]route-policy med permit node 10 [R2]route-policy med permit node 1000 [R2-route-policy]if-match ip-prefix med # 这里选择修改开销值为20 [R2-route-policy]apply cost 20 [R2-bgp]peer 12.0.0.1 route-policy med export # 查表发现R1到R4环回有两条路,优选MED值为10的下路R3 [R1]display bgp routing-table
EBGP对等体
##### 规则7 ### 优选从EBGP对等体学来的路由 # R1、R5分别建立同一个空接口静态路由并宣告 [R1]ip route-static 200.0.0.0 24 NULL 0 [R1-bgp]network 200.0.0.0 24 [R5]ip route-static 200.0.0.0 24 NULL 0 [R5-bgp]network 200.0.0.0 24 # 查表R4发现同一网段优选从EBGP对等体学习到的 [R4]display bgp routing-table
IGP最小
规则8
-
优选到Next_Hop的IGP度量值最小的路由
-
即到达下一跳IGP的Cost值更小的路由会被优选。
Cluster_List最短
规则9
-
优选反射器场景中簇列表最短的路由
-
即在一个IBGP环境中有2条以上的路径,由EBGP对等体发送一条路由到对端另一个EBGP对等体,因为IBGP对等体的水平分割,需要将IBGP内部中间的设备配置为反射器RR来进行路由传递,那么对端EBGP设备会选择反射次数最少的那一条路径传递的路由。
RID/起源者ID最小
规则10
-
从之前一系列练习发现,在没有其他配置下,路由均优选R2而非R3这条路径,因为R2的RID更小。
-
由于规则9只能优选反射器设备数量不同的情况,如果反射次数相同,则会优选起源者ID最小的路径,即反射路由来源设备的Orginator_ID最小的路径。
-
如图:这里中间R10、R11设备配置为反射器RR,R12会选择上路的路由,因为反射设备R10的起源者ID为R8的8.8.8.8比R9小。
最小IP地址对等体通告
规则11
-
优选具有最小IP地址的对等体通告的路由
-
即当反射设备起源者ID相同时(为同一设备),会优选最后反射设备的IP路由,即对端设备的对端路由最小的路径。
二、BGP社团属性
场景
如下图所示,AS 600内有大量的路由被发布到了BGP,这些路由所指向的目的网段分别用于办公及生产两种业务。AS 600的边界路由器将这些BGP路由通告给AS 23。现在AS 23内的路由器基于某种需求,需要分别对到达生产及办公网段的路由执行不同的路由策略,那么该如何匹配感兴趣路由呢?使用ACL或者前缀列表一条一条地匹配路由么?那样的话效率就太低了,因为路由的数量相当多,而且AS 23可能未必知道AS 600中究竟具体哪些网段用于生产业务,哪些用于办公业务。
而Community属性能够很好地解决这个问题。
格式
Community属性是一个可选传递属性,它类似于路由的“标记”,我们可以针对特定的路由设置特定的Community属性值,而下游路由器在执行路由策略时,可以通过Community属性值来匹配目标路由。
社团属性其本质是由32位二进制构成并且拥有多种表达格式。
-
直接使用十进制来标志,即 十进制 : 十进制。
-
十六位二进制 : 十六位二进制(前16位一般是本地AS的AS号,后16位是自定值)。
在一条路由条目中,我们可以给他标识多个社团属性。
公认属性
BGP中定义了几个公认的社团属性,即给路由条目打上这样的社团属性,将必须按照BGP设定的动作来执行。
-
0X00000000 --- internet --- 如果通过全0的社团属性来抓取流量,则将抓取到所有BGP的流量。 即BGP的所有流量缺省情况下都属于"internet"(全部传递)。
-
0XFFFFFF02 --- no-advertise --- 如果给一条路由条目打上这个社团属性,则这条路由信息将无法发送给自己的IBGP或EBGP对等体(不想传递)。
-
0XFFFFFF01 --- no-export --- 如果给一条路由条目打上这个社团属性,则这条路由信息将可以发送给自己的IBGP对等体但是无法发送给自己的EBGP对等体(不能离开这个AS),但是可以发送给自己的联邦EBGP对等体关系(限IBGP和联邦EBGP对等体)。
-
0XFFFFFF03 --- no-export-subconfed --- 如果给一条路由条目打上这个社团属性,则这条路由信息可以发送给自己的IBGP对等体,但是无法发送给自己的EBGP对等体,包括自己的联邦EBGP对等体关系(限IBGP对等体)。
注意:目前大部分厂商在传递BGP路由信息时是默认不传递社团属性的,所以如果需要传递社团属性,需要通过命令开启。
命令
社团属性
路由策略中选择社团属性
抓取全部BGP流量
apply community internet
不传递BGP路由信息
apply community no-advertise
只传递IBGP和联邦EBGP对等体路由信息
apply community no-export
只传递IBGP对等体路由信息
apply community no-export-subconfed
清空社团属性
apply community none
开启BGP传递社团属性功能
设备默认关闭了社团属性的传递功能
peer [RID/IP] advertise-community
删除社团属性配置
undo apply community
使用社团属性来抓取流量
路由策略中设置社团属性标签
可以用十进制或十六位二进制表示
apply community [十进制:十进制]
匹配社团属性
if-match community-filter [编号]
社团属性过滤器,抓取社团属性统一做策略
允许/拒绝路由策略设置的社团属性标签
ip community-filter [编号] permit [十进制:十进制]
配置
公有社团属性
这里我们使用之前联邦实验的拓扑图(已经配置完全)。
# 宣告发布网段 [R1-bgp]network 1.1.1.0 24 # 路由策略 [R1]ip ip-prefix aaa permit 1.1.1.0 24 [R1]route-policy aaa permit node 10 [R1-route-policy]if-match ip-prefix aaa # 创建空表放通剩余流量 [R1]route-policy aaa permit node 1000 ### 社团属性设置为不传递BGP路由 [R1-route-policy]apply community no-advertise # 调用路由策略 [R1-bgp]peer 12.0.0.2 route-policy aaa export ### 开启传递社团属性 [R1-bgp]peer 12.0.0.2 advertise-community ### 查看R1的BGP详细信息 [R2]display bgp routing-table 1.1.1.0 24 # 此时查看R3发现没有收到1.1.1.0网段证明修改成功 [R3]display bgp routing-table ## 再创建一个空接口静态并发布 [R1]ip route-static 10.0.0.0 24 NULL 0 [R1-bgp]network 10.0.0.0 24 # 此时查表发现1.0网段可以传递到R6 ### 修改社团属性为只传递IBGP和联邦EBGP对等体,正确的结果应该是1.0网段无法传递到R6,10.0网段可以 [R1]route-policy aaa permit node 10 [R1-route-policy]apply community no-export ### 注意要开启每个设备的社团属性传递功能 [R2-bgp]peer 3.3.3.3 advertise-community [R3-bgp]peer 4.4.4.4 advertise-community [R4-bgp]peer 5.5.5.5 advertise-community # 查看详细BGP信息检查社团属性是否传递成功 [R4]display bgp routing-table 1.1.1.0 24 # 这里我们已经配置过了,如果没有则需要修改R2的本地下一跳来传递路由 # 查表发现10.0网段成功传递,而1.0网段没有 [R6]display bgp routing-table
# 前缀列表抓取10.0网段并创建路由策略 [R1]ip ip-prefix bbb permit 10.0.0.0 24 [R1]route-policy bbb permit node 10 [R1-route-policy]if-match ip-prefix bbb ### 设置社团属性标签 [R1-route-policy]apply community 1:1 # 调用路由策略 [R1-bgp]network 10.0.0.0 24 route-policy bbb # 查看社团属性 [R2]display bgp routing-table 10.0.0.0 24 ## 使用社团属性来抓取流量(之前用的前缀列表) ### 抓取社团属性统一做策略,编号为1,标签1:1 [R2]ip community-filter 1 permit 1:1 # R2创建路由策略com抓取社团属性 [R2]route-policy com permit node 10 ### 匹配社团属性过滤器,编号为1 [R2-route-policy]if-match community-filter 1 # 修改路由权重值便于观察 [R2-route-policy]apply preferred-value 10000 # 调用路由策略com [R2-bgp]peer 12.0.0.1 route-policy com import # 查表发现10.0网段成功传递 [R2]display bgp routing-table
三、实验
BGP综合实验
要求:
AS1存在两个环回,一个地址为192.168.1.0/24,该地址不能在任何协议中宣告(R1和R8建立GRE隧道) AS3中存在两个环回,一个地址为192.168.2.0/24,该地址不能在任何协议中宣告,最终要求这两个环回可以互相通讯。
整个AS2的IP地址为172.16.0.0/16,请合理划分。
AS间的骨干链路IP地址随意定制。
使用BGP协议让整个网络所有设备的环回可以互相访问(OSPF)。
减少路由条目数量,避免环路出现(路由聚合)。
配置
子网划分
用户网段(24)
172.16.0.0/16 借8位统一用24网段
172.16.0.0/24
172.16.1.0/24
172.16.2.0/24
172.16.3.0/24 。。。
骨干链路(30)
172.16.1.0/24 借6位 --- 172.16.000001 00.0
172.16.1.0/30
172.16.1.4/30
172.16.1.8/30
172.16.1.12/30
172.16.1.16/30
172.16.1.20/30
BGP建邻(32)
172.16.0.0/32 分配给R2~R7,建议用IP用对应编号
172.16.0.2/32
172.16.0.3/32
172.16.0.4/32
172.16.0.5/32
172.16.0.6/32
172.16.0.7/32
首先按进行基础IP和环回配置。
# 环回配置 [R1-LoopBack0]ip address 192.168.1.1 24 [R8-LoopBack0]ip address 192.168.2.1 24 [R1-LoopBack1]ip address 10.0.0.1 24 [R8-LoopBack1]ip address 11.0.0.1 24 ### 32网段单独给BGP使用 [R2-LoopBack0]ip address 172.16.0.2 32 [R3-LoopBack0]ip address 172.16.0.3 32 [R4-LoopBack0]ip address 172.16.0.4 32 [R5-LoopBack0]ip address 172.16.0.5 32 [R6-LoopBack0]ip address 172.16.0.6 32 [R7-LoopBack0]ip address 172.16.0.7 32 ### 24网段给用户网段使用 [R2-LoopBack1]ip address 172.16.2.1 24 [R3-LoopBack1]ip address 172.16.3.1 24 [R4-LoopBack1]ip address 172.16.4.1 24 [R5-LoopBack1]ip address 172.16.5.1 24 [R6-LoopBack1]ip address 172.16.6.1 24 [R7-LoopBack1]ip address 172.16.7.1 24 ### 配置OSPF使环回连通 # 注意这里后16位均有改变,所以都要设置为255;只为了连通环回就没有必要设置RID [R2-ospf-1-area-0.0.0.0]network 172.16.0.0 0.0.255.255 # R3~R7同理配置 [R3-ospf-1-area-0.0.0.0]network 172.16.0.0 0.0.255.255 ...
环回建邻
使用环回建立BGP对等体一般需要提前规划IP地址,单独给BGP使用,直接划分到32网段,避免地址浪费。
# EBGP对等体使用直连建邻 [R1]bgp 1 [R1-bgp]router-id 1.1.1.1 [R1-bgp]peer 12.0.0.2 as-number 2 ### R2联邦 [R2]bgp 64512 [R2-bgp]router-id 2.2.2.2 # 声明所处的公有AS号,必须在建邻之前声明 [R2-bgp]confederation id 2 # 声明对端建邻对等体的私有AS号,注意顺序不能改 [R2-bgp]confederation peer-as 64513 [R2-bgp]peer 12.0.0.1 as-number 1 # 环回建邻并指定接口 [R2-bgp]peer 172.16.0.3 as-number 64512 [R2-bgp]peer 172.16.0.3 connect-interface LoopBack 0 [R2-bgp]peer 172.16.0.5 as-number 64513 [R2-bgp]peer 172.16.0.5 connect-interface LoopBack 0 # 修改联邦EBGP对等体之间的TTL值 [R2-bgp]peer 172.16.0.5 ebgp-max-hop ## R3 [R3-bgp]confederation id 2 [R3-bgp]peer 172.16.0.2 as-number 64512 [R3-bgp]peer 172.16.0.2 connect-interface LoopBack 0 [R3-bgp]peer 172.16.0.4 as-number 64512 [R3-bgp]peer 172.16.0.4 connect-interface LoopBack 0 ### R4联邦 [R4-bgp]confederation id 2 [R4-bgp]confederation peer-as 64513 [R4-bgp]peer 172.16.0.3 as-number 64512 [R4-bgp]peer 172.16.0.3 connect-interface LoopBack 0 [R4-bgp]peer 172.16.0.7 as-number 64513 [R4-bgp]peer 172.16.0.7 connect-interface LoopBack 0 [R4-bgp]peer 172.16.0.7 ebgp-max-hop ### R5联邦 [R5-bgp]confederation id 2 [R5-bgp]confederation peer-as 64512 [R5-bgp]peer 172.16.0.2 as-number 64512 [R5-bgp]peer 172.16.0.2 connect-interface LoopBack 0 [R5-bgp]peer 172.16.0.2 ebgp-max-hop [R5-bgp]peer 172.16.0.6 as-number 64513 [R5-bgp]peer 172.16.0.6 connect-interface LoopBack 0 ## R6 [R6-bgp]confederation id 2 [R6-bgp]peer 172.16.0.5 as-number 64513 [R6-bgp]peer 172.16.0.5 connect-interface LoopBack 0 [R6-bgp]peer 172.16.0.7 as-number 64513 [R6-bgp]peer 172.16.0.7 connect-interface LoopBack 0 ### R7联邦 [R7-bgp]confederation id 2 [R7-bgp]confederation peer-as 64512 [R7-bgp]peer 172.16.0.4 as-number 64512 [R7-bgp]peer 172.16.0.4 connect-interface LoopBack 0 [R7-bgp]peer 172.16.0.4 ebgp-max-hop [R7-bgp]peer 172.16.0.6 as-number 64513 [R7-bgp]peer 172.16.0.6 connect-interface LoopBack 0 [R7-bgp]peer 23.0.0.2 as-number 3 ## R8 [R8-bgp]peer 23.0.0.1 as-number 2 # 依次查看对等体是否连通 [R2]display bgp peer
路由反射器
# 宣告发布环回网段 [R1-bgp]network 10.0.0.0 24 [R8-bgp]network 11.0.0.0 24 ### 修改下一跳为本地宣发 [R2-bgp]peer 172.16.0.3 next-hop-local [R2-bgp]peer 172.16.0.5 next-hop-local ### 配置R2为客户,R3自身为RR [R3-bgp]peer 172.16.0.2 reflect-client ## 同理配置备用路径 [R7-bgp]peer 172.16.0.4 next-hop-local [R7-bgp]peer 172.16.0.6 next-hop-local [R6-bgp]peer 172.16.0.5 reflect-client # 查表检查发布路由是否连通 [R1]display bgp routing-table [R8]display bgp routing-table # 此时10.0和11.0网段成功连通 [R1]ping -a 10.0.0.1 11.0.0.1
GRE环境
因为规定192网段不能宣告,所以我们选择使用环回192网段来建立隧道,这样即使环回断开,网络也能正常使用。
# 配置IP和协议,这里我们选择100.0网段 [R1-Tunnel0/0/0]ip address 100.0.0.1 24 [R1-Tunnel0/0/0]tunnel-protocol gre # 规定源/目标IP,这里可以用环回指定 [R1-Tunnel0/0/0]source 10.0.0.1 [R1-Tunnel0/0/0]destination 11.0.0.1 # R8同理 [R8-Tunnel0/0/0]ip address 100.0.0.2 24 [R8-Tunnel0/0/0]tunnel-protocol gre [R8-Tunnel0/0/0]source 11.0.0.1 [R8-Tunnel0/0/0]destination 10.0.0.1 # 检测连通性 [R8]ping -a 100.0.0.2 100.0.0.1 ### 配置到对端的静态路由 [R1]ip route-static 192.168.2.0 24 100.0.0.2 [R8]ip route-static 192.168.1.0 24 100.0.0.1 # 检测连通性,成功连通 [R1]ping -a 192.168.1.1 192.168.2.1
路由聚合
# 先创建两个空接口静态路由做示范 [R1]ip route-static 172.16.1.0 24 NULL 0 [R1]ip route-static 172.16.2.0 24 NULL 0 ### 重发布静态路由 [R1-bgp]import-route static ### 法一:手工汇总为22网段并明细抑制 [R8-bgp]aggregate 172.16.0.0 22 detail-suppressed ### 法二:路由策略 [R8]ip ip-prefix aaa permit 172.16.1.0 24 [R8]ip ip-prefix aaa permit 172.16.2.0 24 [R8]route-policy aaa permit node 10 [R8-route-policy]if-match ip-prefix aaa # 调用抑制策略 [R1-bgp]aggregate 172.16.0.0 22 suppress-policy bbb # 查表检验发现成功抑制 [R8]display bgp routing-table