BGP实验

BGP基础实验

设备连接方式、IP地址规划、BGP AS号如图所示,所有设备均创建Loopback0接口,IP地址为10.0.x.x/32,其中x为设备编号,所有设备都使用Loopback0接口IP地址作为BGP Router ID。R1、R5上存在Loopback1模拟用户网段。

R2、R3、R4之间运行OSPF,在R2、R3、R4的互联接口、Loopback0接口上激活OSPF。!

实验背景

你是公司的网络管理员。公司的网络采用了BGP协议作为路由协议。公司的网络由多个自治系统组成,不同的分支机构使用了不同的AS号,现在你需要完成公司网络的搭建工作。在公司总部使用了OSPF作为IGP,公司内部不同分支机构使用的是私有的BGP AS号。

bgpadaw110633

1.配置ip

如拓扑图配置各个接口ip,和loopback 0 :10.0.x.x

r1 loopback 1 :10.1.1.1 24

r5 loopback 1 :10.1.5.5 24

r2 r3 r4配置ospf:略

2.配置IBGP对等体

在R2、R3、R4之间基于Loopback0接口建立全互联的IBGP对等体关系。

#R2上配置BGP

[R2]bgp 64512

[R2-bgp] router-id 10.0.2.2

[R2-bgp] peer 10.0.3.3 as-number 64512

[R2-bgp] peer 10.0.3.3 connect-interface LoopBack0

[R2-bgp] peer 10.0.4.4 as-number 64512

[R2-bgp] peer 10.0.4.4 connect-interface LoopBack0

#R3上配置BGP

[R3]bgp 64512

[R3-bgp] router-id 10.0.3.3

[R3-bgp] peer 10.0.2.2 as-number 64512

[R3-bgp] peer 10.0.2.2 connect-interface LoopBack0

[R3-bgp] peer 10.0.4.4 as-number 64512

[R3-bgp] peer 10.0.4.4 connect-interface LoopBack0

#R4上配置BGP

[R4]bgp 64512

[R4-bgp] peer 10.0.2.2 as-number 64512

[R4-bgp] peer 10.0.2.2 connect-interface LoopBack0

[R4-bgp] peer 10.0.3.3 as-number 64512

[R4-bgp] peer 10.0.3.3 connect-interface LoopBack0

#分别在R2、R3、R4上检查BGP对等体状态

3.配置EBGP对等体

(一般情况使用直连接口建立EBGp)

在R1与R2、R4与R5之间基于Loopback0接口建立EBGP对等体关系,为保证能够正常建立,在R1、R2上配置静态路由使Loopback0之间路由可达(R4、R5同样操作)。

#在R1、R2上配置静态路由

[R1]ip route-static 10.0.2.2 32 10.0.12.2

[R2]ip route-static 10.0.1.1 32 10.0.12.1

#在R4、R5上配置静态路由

[R4]ip route-static 10.0.5.5 32 10.0.45.5

[R5]ip route-static 10.0.4.4 32 10.0.45.4

这里配置静态路由,因为要建立TCP会话的前提,需要在数据层面两路由器相通,所以需要需要手工配置静态路由,实现loopback 0 之间互通

#配置R1、R2之间的EBGP对等体

[R1]bgp 64513

[R1-bgp] router-id 10.0.1.1

[R1-bgp] peer 10.0.2.2 as-number 64512

[R1-bgp] peer 10.0.2.2 ebgp-max-hop 2

[R1-bgp] peer 10.0.2.2 connect-interface LoopBack0

[R2]bgp 64512

[R2-bgp] peer 10.0.1.1 as-number 64513

[R2-bgp] peer 10.0.1.1 ebgp-max-hop 2

[R2-bgp] peer 10.0.1.1 connect-interface LoopBack0

默认情况下,EBGP连接允许的最大跳数为1,这导致EBGP对等体之间只能使用直连链路建立EBGP对等体关系,为使用环回口作为更新源需要手动修改EBGP连接允许的最大跳数。

#配置R4、R5之间的EBGP对等体

[R4]bgp 64512

[R4-bgp] peer 10.0.5.5 as-number 64514

[R4-bgp] peer 10.0.5.5 ebgp-max-hop 2

[R4-bgp] peer 10.0.5.5 connect-interface LoopBack0

[R5]bgp 64514

[R5-bgp] router-id 10.0.5.5

[R5-bgp] peer 10.0.4.4 as-number 64512

[R5-bgp] peer 10.0.4.4 ebgp-max-hop 2

[R5-bgp] peer 10.0.4.4 connect-interface LoopBack0

#在R1、R5上检查EBGP对等体状态

4.在BGP中发布路由

在R1、R5上将Loopback1接口路由发布到BGP

#在R1、R5上通过network命令发布路由

[R1]bgp 64513

[R1-bgp] network 10.1.1.1 24

[R5]bgp 64514

[R5-bgp] network 10.1.5.5 24

在R3上查看BGP路由表

luyoub122914

可以看到此时R3上已经学习到R1、R5上发布的BGP路由,但是都是非有效路由,这是因为它们的下一跳在R3上都不可达,为此可以在R2、R4上通过next-hop-local命令修改下一跳地址为R2、R4的更新源地址。

原因:ebgp对等体在发送数据时,下一跳地址为自身更新源地址,ibgp收到ebgp发送的数据,下一跳不变

#在R2、R4上将路由的下一跳地址修改为自身

[R2]bgp 64512

[R2-bgp] peer 10.0.3.3 next-hop-local

[R2-bgp] peer 10.0.4.4 next-hop-local

[R4]bgp 64512

[R4-bgp] peer 10.0.2.2 next-hop-local

[R4-bgp] peer 10.0.3.3 next-hop-local

peer next-hop-local命令一般在ASBR上配置。当设备通过EBGP邻居学到路由再转发给其他IBGP邻居时,默认不修改下一跳,但其EBGP邻居发来的路由的下一跳都是其EBGP邻居的Peer地址,本端对等体所属AS域内的IBGP邻居收到这样的路由后,由于下一跳不可达导致路由无法活跃。因此,需要在ASBR上对IBGP邻居配置peer next-hop-local命令,使得发给IBGP邻居的路由的下一跳是其自身的地址,IBGP邻居收到这样的路由后(由于域内都配置了IGP)发现下一跳可达,路由即为活跃路由。

此命令为覆盖式命令。

执行peer next-hop-local命令后,设备向IBGP对等体/对等体组通告路由时,把下一跳属性设为自身的IP地址。

peer next-hop-local命令仅应用于IBGP对等体间。

再次r3上查看bgp路由表

louybadwad128123318

此时两条BGP路由都变成了有效、最优的状态。

#在R1、R5上查看BGP路由表r11128123426

R1、R5之间相互学习到了对端Loopback1接口路由。

BGP路由汇总实验

luyouhuizongdaw143536

BGP AS号、互联地址如图所示,所有设备均创建Loopback0接口,IP地址为10.0.x.x/32,其中x为设备编号。

R1、R2、R3使用Loopback0地址作为BGP Router ID,基于直连接口建立EBGP对等体关系。

R1、R3上存在Loopback1、Loopback2接口,用于模拟用户网段。

1.配置ip

2.配置EBGPd对等体

#配置R1

[R1]bgp 64511

[R1-bgp] router-id 10.0.1.1

[R1-bgp] peer 10.0.12.2 as-number 64512

#配置R2

#配置R3

[R3]bgp 64513

[R3-bgp] router-id 10.0.3.3

[R3-bgp] peer 10.0.23.2 as-number 64512

3.BGP路由自动汇总

在R1上开启BGP路由自动汇总,将Loopback1、Loopback2接口路由发布到BGP中,并进行自动汇总。

#创建IP前缀列表1,匹配Loopback1、Loopback2接口路由

[R1]ip ip-prefix 1 permit 172.16.0.0 16 greater-equal 24 less-equal 24

#创建Route-Policy hcip,并创建节点10,在其中调用IP前缀列表1

[R1]route-policy hcip permit node 10

[R1-route-policy] if-match ip-prefix 1

[R1-route-policy] quit

[R1]bgp 64511

[R1-bgp] import-route direct route-policy hcip

[R1-bgp] summary automatic

Info: Automatic summarization is valid only for the routes imported through the import-route command.

自动汇总只对通过import-route命令引入的路由生效。

#在R1上查看BGP路由表

display bgp routing-table

r11128123426

Loopback1、Loopback2接口路由已经发布到BGP,由于R1激活了BGP路由自动汇总,因此R1会将这些路由汇总成172.16.0.0/16,同时抑制所有的明细路由,通过明细路由前的“s”标记可以看出,该标记的含义为“suppressed”,表示被抑制,最终R1只对外通告汇总路由172.16.0.0/16。

#在R2上查看BGP路由表

display bgp routing-table

R2上只能看到一条主类路由172.16.0.0/16。

#在R2上查看BGP路由172.16.0.0的明细信息

display bgp routing-table 172.16.0.0

r2jyj28150027

该路由的路径属性中存在Aggregator属性,其中携带了汇总路由生成设备所属的AS号以及其Router ID

4.BGP路由手动汇总

在R3上将Loopback1、Loopback2接口路由发布到BGP,在R2上通过aggregate命令执行手动汇总,并抑制明细路由的对外发布。

#创建IP前缀列表1,匹配Loopback1、Loopback2接口路由

[R3]ip ip-prefix 1 permit 172.17.0.0 16 greater-equal 24 less-equal 24

#创建Route-Policy hcip,并创建节点10,在其中调用IP前缀列表1

[R3]route-policy hcip permit node 10

[R3-route-policy] if-match ip-prefix 1

[R3-route-policy] quit

#将Loopback1、Loopback2接口路由发布到BGP

[R3]bgp 64513

[R3-bgp] import-route direct route-policy hcip

#查看R2的BGP路由表

display bgp routing-table

QQr2aef31128150511

在R2的BGP路由表中已经存在R3通告的BGP路由172.17.1.0/24、172.17.2.0/24。

#R2上执行手动路由汇总,将172.17.1.0/24、172.17.2.0/24汇总成172.17.0.0/22,并抑制明细路由的对外通告

[R2]bgp 64512

[R2-bgp] aggregate 172.17.0.0 22 detail-suppressed

#查看R2的BGP路由表

display bgp routing-table

此时在R2的BGP路由表中可以看到汇总后的路由。

radwahh128150729

#在R2上查看BGP路由172.16.0.0/22的明细信息

display bgp routing-table 172.17.0.0 22

从输出信息diushi222f1030可以看到AS_Path值为Nil,代表了AS_Path属性值为空,这意味着丢失了明细的AS_Path属性值,BGP依赖AS_Path实现防环,因此AS_Path属性的丢失可能带来路由环路。从该条路由对外通告的对等体中可以看到10.0.23.3(R3)。

#查看R3的BGP路由表

在R3的BGP路由表中可以看到汇总路由172.17.0.0/22。

#为防止路由环路,在R2上执行手动汇总时增加as-set关键字

[R2]bgp 64512

[R2-bgp] aggregate 172.17.0.0 255.255.252.0 detail-suppressed as-set

#再次在R2上查看BGP路由172.17.0.0/22的明细信息

as645138151320

可以看到此时AS_Path属性值为64513,此时该条路由依旧向10.0.23.3(R3)通告。

R3收到关于172.17.0.0/22的通告之后,在AS_Path中将看到自身的AS号(64153),将会忽略该路由通告。此时R3的BGP路由表中无法看到汇总路由172.17.0.0/22,因此通过在手动路由汇总的配置中使用as-set关键字顺利地规避了路由环路的产生。

BGP路由反射器