第六章 BGP选路

第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通过以下的次序进行路由优选

  • 丢弃下一跳不可达的路由。

  1. 优选Preferred-Value属性值最大的路由。

  2. 优选LocalPreference属性值最大的路由

    • 以上规则取值越大越优

  3. 本地始发的BGP路由优于从其他对等体学习到的路由。

    • 本地始发的路由优先级优选手动聚合>自动聚合>network>import>从对等体学到的路由。

  4. 优选AS_Path属性值最短的路由。

    • 当一条路由信息发出本AS时会由边界路由器添加该属性

    • 当路由器去往同一目标网段前三条选路规则一致,那么AS_PATH属性短的路由更优

  5. 优选Origin属性最优的路由。

    • Origin属性值按优先级从高到低的排列量:IGP、EGP及Incomplete。

  6. 优选MED属性值最小的路由。

  7. 优选从EBGP对等体学来的路由(EBGP路由优先级高于IBGP路由)。

  8. 优选到Next_Hop的IGP度量值最小的路由。

    • 当前8条属性全部相同时可以形成路由负裁分担

  9. 优选Cluster_List簇列表最短的路由(反射器)。

  10. 优选RouterID/Orginator_ID最小的设备通告的路由

  11. 优选具有最小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 --- 如果给一条路由条目打上这个社团属性,则这条路由信息将无法发送给自己的IBGPEBGP对等体(不想传递)。

  • 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综合实验

要求:

  1. AS1存在两个环回,一个地址为192.168.1.0/24,该地址不能在任何协议中宣告(R1和R8建立GRE隧道) AS3中存在两个环回,一个地址为192.168.2.0/24,该地址不能在任何协议中宣告,最终要求这两个环回可以互相通讯。

  2. 整个AS2的IP地址为172.16.0.0/16,请合理划分。

  3. AS间的骨干链路IP地址随意定制。

  4. 使用BGP协议让整个网络所有设备的环回可以互相访问(OSPF)。

  5. 减少路由条目数量,避免环路出现(路由聚合)。

配置
子网划分

用户网段(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

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

璀云霄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值