0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BGP实验拓扑及说明

网络技术干货圈 来源:网络技术干货圈 作者:圈圈 2022-11-17 10:14 次阅读

实验拓扑及说明

设备编号及互联线路如图所示;所有设备的互联地址段采用10.1.xy.0/24,其中xy为设备编号,x为编号较小的设备,y为编号较大的设备。例如R2及R3之间的直连链路,网段为10.1.23.0/24,这条链路上R2的接口IP地址为10.1.23.2/24,R3的接口IP地址为10.1.23.3/24。所有设备配置loopback0接口,ip地址为x.x.x.x/32,其中x为设备编号;

实验需求一(完成基础配置)

BGP邻居关系如图所示;除了图中标记的BGP邻居关系外不得建立其他的BGP连接。

R1、R2、R3、R4运行OSPF,注意OSPF域的范围;四台路由器都将自己的Loopback0口宣告进OSPF,AS之间的链路不宣告进OSPF。

eBGP邻居关系采用直连接口建立;iBGP邻居关系采用loopback0口建立;

在R5上开设Loopback1至Loopback4,IP地址分别为100.1.1.0/24、100.2.2.0/24、200.1.1.0/24、200.2.2.0/24。

R1的配置如下:

[R1]interfaceGigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]ipaddress10.1.15.1255.255.255.0
[R1]interfaceGigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]ipaddress10.1.12.1255.255.255.0
[R1]interfaceGigabitEthernet0/0/2
[R1-GigabitEthernet0/0/2]ipaddress10.1.14.1255.255.255.0
[R1]interfaceLoopBack0
[R1-LoopBack0]ipaddress1.1.1.1255.255.255.255

[R1]ospf1router-id1.1.1.1
[R1-ospf-1]area0.0.0.0
[R1-ospf-1-0.0.0.0]network1.1.1.10.0.0.0
[R1-ospf-1-0.0.0.0]network10.1.12.10.0.0.0
[R1-ospf-1-0.0.0.0]network10.1.14.10.0.0.0

[R1]bgp200
[R1-bgp]router-id1.1.1.1
[R1-bgp]peer2.2.2.2as-number200
[R1-bgp]peer2.2.2.2connect-interfaceLoopBack0
[R1-bgp]peer2.2.2.2next-hop-local
[R1-bgp]peer4.4.4.4as-number200
[R1-bgp]peer4.4.4.4connect-interfaceLoopBack0
[R1-bgp]peer4.4.4.4next-hop-local
[R1-bgp]peer10.1.15.5as-number100

R2的配置如下:

[R2]interfaceGigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0]ipaddress10.1.12.2255.255.255.0
[R2]interfaceGigabitEthernet0/0/1
[R2-GigabitEthernet0/0/1]ipaddress10.1.23.2255.255.255.0
[R2]interfaceGigabitEthernet0/0/2
[R2-GigabitEthernet0/0/2]ipaddress10.1.26.2255.255.255.0
[R2]interfaceLoopBack0
[R2-LoopBack0]ipaddress2.2.2.2255.255.255.255

[R2]ospf1router-id2.2.2.2
[R2-ospf-1]area0.0.0.0
[R2-ospf-1-0.0.0.0]network2.2.2.20.0.0.0
[R2-ospf-1-0.0.0.0]network10.1.12.20.0.0.0
[R2-ospf-1-0.0.0.0]network10.1.23.20.0.0.0

[R2]bgp200
[R2-bgp]router-id2.2.2.2
[R2-bgp]peer1.1.1.1as-number200
[R2-bgp]peer1.1.1.1connect-interfaceLoopBack0
[R2-bgp]peer3.3.3.3as-number200
[R2-bgp]peer3.3.3.3connect-interfaceLoopBack0
[R2-bgp]peer10.1.26.6as-number300

R3的配置如下:

[R3]interfaceGigabitEthernet0/0/0
[R3-GigabitEthernet0/0/0]ipaddress10.1.35.3255.255.255.0
[R3]interfaceGigabitEthernet0/0/1
[R3-GigabitEthernet0/0/1]ipaddress10.1.34.3255.255.255.0
[R3]interfaceGigabitEthernet0/0/2
[R3-GigabitEthernet0/0/2]ipaddress10.1.23.3255.255.255.0
[R3]interfaceLoopBack0
[R3-GigabitEthernet0/0/0]ipaddress3.3.3.3255.255.255.255

[R3]ospf1router-id3.3.3.3
[R3-ospf-1]area0.0.0.0
[R3-ospf-1-0.0.0.0]network3.3.3.30.0.0.0
[R3-ospf-1-0.0.0.0]network10.1.23.30.0.0.0
[R3-ospf-1-0.0.0.0]network10.1.34.30.0.0.0

[R3]bgp200
[R3-bgp]router-id3.3.3.3
[R3-bgp]peer2.2.2.2as-number200
[R3-bgp]peer2.2.2.2connect-interfaceLoopBack0
[R3-bgp]peer2.2.2.2next-hop-local
[R3-bgp]peer4.4.4.4as-number200
[R3-bgp]peer4.4.4.4connect-interfaceLoopBack0
[R3-bgp]peer4.4.4.4next-hop-local
[R3-bgp]peer10.1.35.5as-number100

R4的配置如下:

[R4]interfaceGigabitEthernet0/0/0
[R4-GigabitEthernet0/0/0]ipaddress10.1.34.4255.255.255.0
[R4]interfaceGigabitEthernet0/0/1
[R4-GigabitEthernet0/0/1]ipaddress10.1.14.4255.255.255.0
[R4]interfaceGigabitEthernet0/0/2
[R4-GigabitEthernet0/0/2]ipaddress10.1.46.4255.255.255.0
[R4]interfaceLoopBack0
[R4-LoopBack0]ipaddress4.4.4.4255.255.255.255

[R4]ospf1router-id4.4.4.4
[R4-ospf-1]area0.0.0.0
[R4-ospf-1-0.0.0.0]network4.4.4.40.0.0.0
[R4-ospf-1-0.0.0.0]network10.1.14.40.0.0.0
[R4-ospf-1-0.0.0.0]network10.1.34.40.0.0.0

[R4]bgp200
[R4-bgp]router-id4.4.4.4
[R4-bgp]peer1.1.1.1as-number200
[R4-bgp]peer1.1.1.1connect-interfaceLoopBack0
[R4-bgp]peer3.3.3.3as-number200
[R4-bgp]peer3.3.3.3connect-interfaceLoopBack0
[R4-bgp]peer10.1.46.6as-number300

R5的配置如下:

[R5]interfaceGigabitEthernet0/0/0
[R5-GigabitEthernet0/0/0]ipaddress10.1.15.5255.255.255.0
[R5]interfaceGigabitEthernet0/0/1
[R5-GigabitEthernet0/0/1]ipaddress10.1.35.5255.255.255.0
[R5]interfaceLoopBack0
[R5-LoopBack0]ipaddress5.5.5.5255.255.255.255
[R5]interfaceLoopBack1
[R5-LoopBack1]ipaddress100.1.1.1255.255.255.0
[R5]interfaceLoopBack2
[R5-LoopBack2]ipaddress100.2.2.2255.255.255.0
[R5]interfaceLoopBack3
[R5-LoopBack3]ipaddress200.1.1.1255.255.255.0
[R5]interfaceLoopBack4
[R5-LoopBack4]ipaddress200.2.2.2255.255.255.0
[R5]bgp100
[R5-bgp]router-id5.5.5.5
[R5-bgp]peer10.1.15.1as-number200
[R5-bgp]peer10.1.35.3as-number200
[R5-bgp]network100.1.1.024
[R5-bgp]network100.2.2.024
[R5-bgp]network200.1.1.024
[R5-bgp]network200.2.2.024

R6的配置如下:

[R6]interfaceGigabitEthernet0/0/0
[R6-GigabitEthernet0/0/0]ipaddress10.1.26.6255.255.255.0
[R6]interfaceGigabitEthernet0/0/1
[R6-GigabitEthernet0/0/1]ipaddress10.1.46.6255.255.255.0
[R6]interfaceLoopBack0
[R6-LoopBack0]ipaddress6.6.6.6255.255.255.255

[R6]bgp300
[R6-bgp]router-id6.6.6.6
[R6-bgp]peer10.1.26.2as-number200
[R6-bgp]peer10.1.46.4as-number200

在R1上查看BGP邻居关系:

[R1]displaybgppeer
BGPlocalrouterID:1.1.1.1
LocalASnumber:200
Totalnumberofpeers:3Peersinestablishedstate:3
PeerVASMsgRcvdMsgSentOutQUp/DownStatePrefRcv
2.2.2.24200101200044Established0
4.4.4.442006800028Established0
10.1.15.541007600050Established4

其他路由器的BGP邻居请做相应查看,确保所有的BGP邻居关系都正确的建立。

实验需求二

c5c58b82-6607-11ed-8abf-dac502259ad0.png

  • R1访问100网段及200网段的流量直接送到R5,当R1与R5之间的链路发生故障时,R1访问这两个子网的流量自动切换到R2-R3-R5。当R1与R5及R2之间的链路均发生故障时,R1访问这两个子网的流量自动切换到R4-R3-R5。
  • R3访问100网段及200网段的流量直接送到R5,当R3与R5之间的链路发生故障时,R3访问这两个子网的流量自动切换到R4-R1-R5。当R3与R5及R4之间的链路均发生故障时,R1访问这两个子网的流量自动切换到R2-R1-R5。
  • R2访问100网段的流量优先走R1,当R1发生故障,或者R1-R2之间的互联线路DOWN掉时,流量切换到R3。
  • R2访问200网段的流量优先走R3,当R3发生故障,或者R3-R2之间的互联线路DOWN掉时,流量切换到R1。
  • R4访问100网段的流量优先走R1,当R1发生故障,或者R1-R4之间的互联线路DOWN掉时,流量切换到R3。
  • R4访问200网段的流量优先走R3,当R3发生故障,或者R3-R4之间的互联线路DOWN掉时,流量切换到R1。
  • 注意,实验过程中只需满足以上需求即可,无需考虑往返路径一致或者ping通的问题。

实际上满足上述需求的方法有很多,毕竟BGP的路径属性非常丰富,路由策略工具也很多。这里我们考虑在R5上部署策略,采用MED属性来操控路由,如此一来MED值除了影响R1、R3的路由优选,还将进一步的影响路由在AS200内的优选,大体思路如下:

c5e7ee20-6607-11ed-8abf-dac502259ad0.png

R5的配置新增如下:

#写两个IP前缀列表,分别匹配100及200路由:
[R5]ipip-prefix1index10permit100.1.1.024
[R5]ipip-prefix1index20permit100.2.2.024
[R5]ipip-prefix2index10permit200.1.1.024
[R5]ipip-prefix2index20permit200.2.2.024

#写两个route-policy,分别对100及200的路由设置MED属性值:
[R5]route-policytoR1permitnode10
[R5-route-policy]if-matchip-prefix1
[R5-route-policy]applycost100
[R5]route-policytoR1permitnode20
[R5-route-policy]if-matchip-prefix2
[R5-route-policy]applycost200

[R5]route-policytoR3permitnode10
[R5-route-policy]if-matchip-prefix1
[R5-route-policy]applycost200
[R5]route-policytoR3permitnode20
[R5-route-policy]if-matchip-prefix2
[R5-route-policy]applycost100

#在BGP配置视图下,将路由策略应用在R1及R3的出站方向:
[R5]bgp100
[R5-bgp]peer10.1.15.1route-policytoR1export
[R5-bgp]peer10.1.35.3route-policytoR3export

完成上述配置后在网络正常情况下,R1、R3访问100网段及200网段的流量已经满足需求,例如R1的BGP表如下:

displaybgprouting-table
BGPLocalrouterIDis1.1.1.1
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:4
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>100.1.1.0/2410.1.15.500100i
*>100.2.2.0/2410.1.15.500100i
*>200.1.1.010.1.15.500100i
*>200.2.2.010.1.15.500100i

R2及R4访问100及200网络也满足需求,例如R2的BGP表:

displaybgprouting-table
BGPLocalrouterIDis2.2.2.2
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:8
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>i100.1.1.0/241.1.1.11001000100i
*i3.3.3.32001000100i
*>i100.2.2.0/241.1.1.11001000100i
*i3.3.3.32001000100i
*>i200.1.1.03.3.3.31001000100i
*i1.1.1.12001000100i
*>i200.2.2.03.3.3.31001000100i
*i1.1.1.12001000100i

但是R1与R5之间的连线一旦断开,R1将丢失到达这两个子网的路由,这是因为R2及R4不会将自己从R3学习到的路由再传递给R1 -- IBGP水平分割规则使然。R3同样存在类似的问题。

解决的办法是,在AS200内构建路由反射簇,将R2设置为RR,R1及R3是它的Client;将R4也设置为RR,R1及R3是它的Client。

c6134818-6607-11ed-8abf-dac502259ad0.png

R2的配置增加如下:

[R2]bgp200
[R2-bgp]peer1.1.1.1reflect-client
[R2-bgp]peer3.3.3.3reflect-client

R4的配置增如如下:

[R4]bgp200
[R4-bgp]peer1.1.1.1reflect-client
[R4-bgp]peer3.3.3.3reflect-client

完成上述配置后,R1及R3的选路似乎出现了点问题,拿R1来说,关于100网段的路由在其BGP表中自然只有一条路径那就是来自R5的。但是200网段的两路由,BGP表里却各有三条路径:

displaybgprouting-table
BGPLocalrouterIDis1.1.1.1
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:8
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>100.1.1.0/2410.1.15.51000100i
*>100.2.2.0/2410.1.15.51000100i
*>i200.1.1.03.3.3.31001000100i
*i3.3.3.31001000100i
*10.1.15.52000100i
*>i200.2.2.03.3.3.31001000100i
*i3.3.3.31001000100i
*10.1.15.52000100i

三条路径其中一条是更新自R5,另外两条分别更新自R2和R4(他们将自己从R3学习到的200路由反射给了R1):

c6353a04-6607-11ed-8abf-dac502259ad0.png

而R1关于200.1.1.0/24及200.2.2.0/24最终优选了来自R2的更新(这个更新实际上是R3将路由传递给R2,R2再更新给R1的)这个选路就不符合需求了,那么如何保证在网络正常的情况下,R1关于100及200的路由都优选来自R5的更新,当R1丢失了与R5的连接,则优选来自R2的更新呢?

这里可以利用preferred-value这个属性,在R1及R3上部署。在R1上部署时,将R5传递过来的100及200路由的preferred-value设置为100。在R3上部署时,将R5传递过来的100及200路由的preferred-value设置为100。

R1的配置如下:

[R1]ipip-prefix1index10permit100.1.1.024
[R1]ipip-prefix1index20permit100.2.2.024
[R1]ipip-prefix2index10permit200.1.1.024
[R1]ipip-prefix2index20permit200.2.2.024
[R1]route-policyFor_R5permitnode10
[R1-route-policy]if-matchip-prefix1
[R1-route-policy]applypreferred-value100
[R1]route-policyFor_R5permitnode20
[R1-route-policy]if-matchip-prefix2
[R1-route-policy]applypreferred-value100

[R1]bgp200
[R1-route-policy]peer10.1.15.5route-policyFor_R5import

R3的配置如下:

[R3]ipip-prefix1index10permit100.1.1.024
[R3]ipip-prefix1index20permit100.2.2.024
[R3]ipip-prefix2index10permit200.1.1.024
[R3]ipip-prefix2index20permit200.2.2.024
[R3]route-policyFor_R5permitnode10
[R3-route-policy]if-matchip-prefix1
[R3-route-policy]applypreferred-value100
[R3]route-policyFor_R5permitnode20
[R3-route-policy]if-matchip-prefix2
[R3-route-policy]applypreferred-value100
[R3]bgp200
[R3-bgp]peer10.1.35.5route-policyFor_R5import

完成上述配置后,看一下R1的BGP表:

[R1]displaybgprouting-table
BGPLocalrouterIDis1.1.1.1
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:8
NetworkNextHopMEDLocPrPrefValPath/Ogn
*>100.1.1.0/2410.1.15.5100100100i
*>100.2.2.0/2410.1.15.5100100100i
*>200.1.1.010.1.15.5200100100i
*i3.3.3.31001000100i
*i3.3.3.31001000100i
*>200.2.2.010.1.15.5200100100i
*i3.3.3.31001000100i
*i3.3.3.31001000100i

200的路由R1优选了来自R5的更新。同样的,R3也会优选来自R5的更新。

现在切断R1与R5之间的连线:

c654016e-6607-11ed-8abf-dac502259ad0.png

R1的BGP表变成了这样:

[R1]displaybgprouting-table
BGPLocalrouterIDis1.1.1.1
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:8
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>i100.1.1.0/243.3.3.32001000100i
*i3.3.3.32001000100i
*>i100.2.2.0/243.3.3.32001000100i
*i3.3.3.32001000100i
*>i200.1.1.03.3.3.31001000100i
*i3.3.3.31001000100i
*>i200.2.2.03.3.3.31001000100i
*i3.3.3.31001000100i

R1上100及200的路由各有2条路径,R1会优选来自R2的BGP路由更新,这是因为R2的peeraddress要更小。虽然如此,但实际上R1去往目标网段的流量是在R2和R4上进行负载分担的,这是因为BGP路由的下一跳是3.3.3.3,而R1的3.3.3.3路由通过OSPF从R2及R4都可达并且是等代价的路径,所以这与我们的需求就不符了,需求是要让流量走R2,只当R2也挂掉的时候才走R4。

[R1]displayiprouting-tableprotocolbgp
RouteFlags:R-relay,D-downloadtofib
------------------------------------------------------------------------------
Publicroutingtable:BGP
Destinations:4Routes:4
BGProutingtablestatus:
Destinations:4Routes:4
Destination/MaskProtoPreCostFlagsNextHopInterface
100.1.1.0/24IBGP255200RD3.3.3.3GigabitEthernet0/0/1
IBGP255200RD3.3.3.3GigabitEthernet0/0/2
100.2.2.0/24IBGP255200RD3.3.3.3GigabitEthernet0/0/1
IBGP255200RD3.3.3.3GigabitEthernet0/0/2
200.1.1.0/24IBGP255100RD3.3.3.3GigabitEthernet0/0/1
IBGP255100RD3.3.3.3GigabitEthernet0/0/2
200.2.2.0/24IBGP255100RD3.3.3.3GigabitEthernet0/0/1
IBGP255100RD3.3.3.3GigabitEthernet0/0/2
BGProutingtablestatus:
Destinations:0Routes:0

如何解决这个问题呢?很简单,将如下图所示的接口的OSPF COST值调大即可:

c6689fac-6607-11ed-8abf-dac502259ad0.png

R1:

[R1]interfaceGigabitEthernet0/0/2
[R1-GigabitEthernet0/0/2]ospfcost999

R3:

[R3]interfaceGigabitEthernet0/0/2
[R3-GigabitEthernet0/0/2]ospfcost999

这么一来,对于R1而言(R3也是类似的道理),在R1-R5之间线路DOWN掉时,其关于100及200的路由将优选来自R2的路由更新,并且数据转发时将始终使用R2-R3-R5这条路径。

[R1]displayiprouting-tableprotocolbgp
RouteFlags:R-relay,D-downloadtofib
------------------------------------------------------------------------------
Publicroutingtable:BGP
Destinations:4Routes:4
BGProutingtablestatus:
Destinations:4Routes:4
Destination/MaskProtoPreCostFlagsNextHopInterface
100.1.1.0/24IBGP255200RD3.3.3.3GigabitEthernet0/0/1
100.2.2.0/24IBGP255200RD3.3.3.3GigabitEthernet0/0/1
200.1.1.0/24IBGP255100RD3.3.3.3GigabitEthernet0/0/1
200.2.2.0/24IBGP255100RD3.3.3.3GigabitEthernet0/0/1
BGProutingtablestatus:
Destinations:0Routes:0

实验需求三

在完成上述配置后,要求在R6上部署策略,使得R6去往100网段主走R2,R4为备份路径;去往200网段主走R4,R2为备份路径。

c68a91d4-6607-11ed-8abf-dac502259ad0.png

在完成上述配置后R2及R4都会向R6通告100及200的路由,并且路由的MED值均为空,也就是说,R5在发布路由时通过策略为路由携带的MED属性值不会随着路由传递给AS300。

对于这四条目标路由,R6均优选自R2的更新,这是因为R2的RouterID比R5要小,通过如下的输出可以验证:

displaybgprouting-table100.1.1.0
BGPlocalrouterID:6.6.6.6
LocalASnumber:300
Paths:2available,1best,1select
BGProutingtableentryinformationof100.1.1.0/24:
From:10.1.26.2(2.2.2.2)
RouteDuration:00h17m37s
DirectOut-interface:GigabitEthernet0/0/0
Originalnexthop:10.1.26.2
Qosinformation:0x0
AS-path200100,originigp,pref-val0,valid,external,best,select,active,
pre255
Advertisedtosuch2peers:
10.1.26.2
10.1.46.4
BGProutingtableentryinformationof100.1.1.0/24:
From:10.1.46.4(4.4.4.4)
RouteDuration:00h17m37s
DirectOut-interface:GigabitEthernet0/0/1
Originalnexthop:10.1.46.4
Qosinformation:0x0
AS-path200100,originigp,pref-val0,valid,external,pre255,notpreferred
forrouterID
Notadvertisedtoanypeeryet

现在我们在R6上部署策略来满足需求,方法有不少,这里我们使用Local_preference属性。

[R6]ipip-prefix1index10permit100.1.1.024
[R6]ipip-prefix1index20permit100.2.2.024
[R6]ipip-prefix2index10permit200.1.1.024
[R6]ipip-prefix2index20permit200.2.2.024
[R6]route-policyFor_R2permitnode10
[R6-route-policy]if-matchip-prefix1
[R6-route-policy]applylocal-preference200
[R6]route-policyFor_R2permitnode20
[R6-route-policy]if-matchip-prefix2
[R6-route-policy]applylocal-preference100

[R6]route-policyFor_R4permitnode10
[R6-route-policy]if-matchip-prefix1
[R6-route-policy]applylocal-preference100
[R6]route-policyFor_R4permitnode20
[R6-route-policy]if-matchip-prefix2
[R6-route-policy]applylocal-preference200

[R6]bgp300
[R6]peer10.1.26.2route-policyFor_R2import
[R6]peer10.1.46.4route-policyFor_R4import

[R6]displaybgprouting-table
BGPLocalrouterIDis6.6.6.6
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:8
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>100.1.1.0/2410.1.26.22000200100i
*10.1.46.41000200100i
*>100.2.2.0/2410.1.26.22000200100i
*10.1.46.41000200100i
*>200.1.1.010.1.46.42000200100i
*10.1.26.21000200100i
*>200.2.2.010.1.46.42000200100i
*10.1.26.21000200100i

从上面的输出可以看出,关于100网段的两条路由,R6优选来自R2的更新;而200网段的两条路由,R6优选来自R4的更新。

实验需求四

c6dc1dce-6607-11ed-8abf-dac502259ad0.png

在上述需求的基础上,AS200内的R1上有部分直连网段需要发布出来以便R5能够通过BGP学习到,新增一个Loopback接口,配置IP:11.11.11.11/32用于模拟直连网段(实际可能较多),通告进BGP。但是R6也就学习到了这些路由,在R6上完成相应的配置,使得它仅仅收到AS100的路由,对于始发于AS200的路由,R6将过滤掉。注意始发于AS200的路由多而杂,请在R6上采用适当的方式过滤掉这些路由。R1增补配置如下:

[R1]Interfaceloopback11
[R1-LoopBack11]Ipaddress11.11.11.1132
[R1]bgp200
[R1-bgp]network11.11.11.1132

[R6]displaybgprouting-table
BGPLocalrouterIDis6.6.6.6
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:8
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>11.11.11.11/3210.1.26.20200i
*10.1.46.40200i
*>100.1.1.0/2410.1.26.22000200100i
*10.1.46.41000200100i
*>100.2.2.0/2410.1.26.22000200100i
*10.1.46.41000200100i
*>200.1.1.010.1.46.42000200100i
*10.1.26.21000200100i
*>200.2.2.010.1.46.42000200100i
*10.1.26.21000200100i

R6已经学习到AS200的路由11.11.11.11/32了。由于现在无法知道也不可能知道AS200内路由的所有前缀,因此无法使用ACL或者前缀列表来抓取路由从而进一步的过滤。实现这个需求最简单的方法是采用基于AS_PATH的过滤,利用一个正则表达式来抓取200的AS号。

R6增加如下配置:

[R6]ipas-path-filternoAS200deny^200$#抓取AS200,deny所匹配的路由
[R6]ipas-path-filternoAS200permit.*#允许任意
[R6]bgp300
[R6-bgp]peer10.1.26.2as-path-filternoAS200import
[R6-bgp]peer10.1.46.4as-path-filternoAS200import

完成上述配置后,R6将过滤掉所有始发于AS200的路由。

实验需求五

c6f541d2-6607-11ed-8abf-dac502259ad0.png

将实验需求三、四中的相关配置删除,将实验场景还原到满足需求二的情形。

现在要求通过在R2、R4上进行相关配置,使得R6去往100网段的流量主走R2,R4为备份;去往200网段的流量主走R4,R2为备。要求在R2、R4上不使用route-policy对R6做出站方向的策略。

利用“最长匹配原则”,可以很好的实现数据分流。如下图所示,在R2上部署路由汇总,将200网段的两条路由汇总成200.0.0.0/8,加上100网段的明细路由一并更新给R6;在R4上部署路由汇总,将100网段的路由汇总成100.0.0.0/8,加上200网段的明细路由一并更新给R6。

c7103ef6-6607-11ed-8abf-dac502259ad0.png

这么一来,在网络正常的情况下,R6去往100.1.1.0/24及100.2.2.0/24会走R2,当R2发生故障时,由于还有一条R4发送过来的100.0.0.0/8汇总路由,因此流量能够自动切换到R4。

R2的增补配置如下:

[R2]bgp200
[R2-bgp]aggregate200.0.0.08as-set
R4的增补配置如下:
[R4]bgp200
[R4-bgp]aggregate100.0.0.08as-set

注意,在R2及R4上部署路由汇总时,在这个场景中汇总命令不能加detail-suppressed而抑制明细,这是因为如果这里增加了该关键字,R2及R4将只发布汇总路由,而抑制明细,这会影响到前面的需求二。设想一下,如果R2的汇总命令中加了detail-suppressed关键字,那么R2将不再向R1及R3反射200网段的明细路由,在网络发生故障时,R2将失去作为备份路径的可能。

接下去,在R2上部署策略,将200网段的明细过滤掉不发给R6;在R4上部署策略,将100网段的明细过滤掉不发给R6:R2增补配置如下:

[R2]ipip-prefixtoR6index10deny200.0.0.08greater-equal24less-equal24
#上面这条前缀列表是匹配200开头、掩码是/24的路由
[R2]ipip-prefixtoR6index20permit0.0.0.00less-equal32
#上面这条前缀列表是匹配所有路由
[R2]bgp200
[R2-bgp]peer10.1.26.6ip-prefixtoR6export

R4增补配置如下:

[R4]ipip-prefixtoR6index10deny100.0.0.08greater-equal24less-equal24
[R4]ipip-prefixtoR6index20permit0.0.0.00less-equal32
[R4]bgp200
[R4-bgp]peer10.1.46.6ip-prefixtoR6export
displaybgprouting-table
BGPLocalrouterIDis6.6.6.6
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:6
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>100.0.0.010.1.46.40200100i
*>100.1.1.0/2410.1.26.20200100i
*>100.2.2.0/2410.1.26.20200100i
*>200.0.0.0/810.1.26.20200100i
*>200.1.1.010.1.46.40200100i
*>200.2.2.010.1.46.40200100i

需求满足了,但是由于在R2、R4上部署了路由汇总,产生的汇总路由不仅传递给了R6,也传递给了R1及R3,而实际上,这两条汇总路由R1及R3并不需要,因此还需过滤掉。同样过滤的方法也很多。

R2的配置增补如下:

[R2]ipip-prefixnoAggregationindex10deny200.0.0.08
[R2]ipip-prefixnoAggregationindex20permit0.0.0.00less-equal32
[R2]bgp200
[R2-bgp]peer1.1.1.1ip-prefixnoAggregationexport
[R2-bgp]peer3.3.3.3ip-prefixnoAggregationexport

R4的配置增补如下:

[R4]ipip-prefixnoAggregationindex10deny100.0.0.08
[R4]ipip-prefixnoAggregationindex20permit0.0.0.00less-equal32
[R4-bgp]bgp200
[R4-bgp]peer1.1.1.1ip-prefixnoAggregationexport
[R4-bgp]peer3.3.3.3ip-prefixnoAggregationexport

实验需求六

将实验需求五中的相关配置及策略去除,再继续下面的实验。

c73042d2-6607-11ed-8abf-dac502259ad0.png

100网段的路由是特殊的生产路由,从AS100通告给下游后,下游需要对这些路由进一步的部署针对性的策略,因此在上游引入100网段路由时,打上100:100的Community属性值,并确保R2及R4、R6能够学习到携带了该Community属性值的100网段路由。

R5的配置修改如下:

[R5]ipip-prefix1index10permit100.1.1.024(已有)
[R5]ipip-prefix1index20permit100.2.2.024
[R5]ipip-prefix2index10permit200.1.1.024
[R5]ipip-prefix2index20permit200.2.2.024

[R5]route-policysetCommupermitnode10
[R5-route-policy]applycommunity100:100
[R5]bgp100
[R5-bgp]router-id5.5.5.5
[R5-bgp]peer10.1.15.1as-number200
[R5-bgp]peer10.1.35.3as-number200
[R5-bgp]network100.1.1.0255.255.255.0route-policysetCommu
[R5-bgp]network100.2.2.0255.255.255.0route-policysetCommu
[R5-bgp]peer10.1.15.1advertise-community#务必配置该条命令
[R5-bgp]peer10.1.35.3advertise-community

R1的配置增补如下:

[R1]bgp200
[R1-bgp]peer2.2.2.2advertise-community
[R1-bgp]peer4.4.4.4advertise-community

R3的配置增补如下:

[R3]bgp200
[R3-bgp]peer2.2.2.2advertise-community
[R3-bgp]peer4.4.4.4advertise-community

R2的配置增补如下:

[R2]bgp200
[R2-bgp]peer10.1.26.6advertise-community

R4的配置增补如下:

[R4]bgp200
[R4-bgp]peer10.1.46.6advertise-community

Community属性值必须执行peer x.x.x.x advertise-community命令,否则默认情况下在向邻居发送路由时不携带Community,同时为了保证路由传播途中Community属性值不丢失,需要在沿途每一台路由器上都执行该命令。

在R2上验证一下,看看路由100.1.1.0是否携带community属性值:

[R2]displaybgprouting-table100.1.1.0
BGPlocalrouterID:2.2.2.2
LocalASnumber:200
Paths:2available,1best,1select
BGProutingtableentryinformationof100.1.1.0/24:
RR-clientroute.
From:1.1.1.1(1.1.1.1)
RouteDuration:00h09m18s
RelayIPNexthop:10.1.12.1
RelayIPOut-Interface:GigabitEthernet0/0/0
Originalnexthop:1.1.1.1
Qosinformation:0x0
Community:<100:100>
AS-path100,originigp,MED100,localpref100,pref-val0,valid,internal,be
st,select,active,pre255,IGPcost1
Advertisedtosuch3peers:
1.1.1.1
3.3.3.3
10.1.26.6
BGProutingtableentryinformationof100.1.1.0/24:
RR-clientroute.
From:3.3.3.3(3.3.3.3)
RouteDuration:00h08m33s
RelayIPNexthop:10.1.23.3
RelayIPOut-Interface:GigabitEthernet0/0/1
Originalnexthop:3.3.3.3
Qosinformation:0x0
Community:<100:100>
AS-path100,originigp,MED200,localpref100,pref-val0,valid,internal,pr
e255,IGPcost1,notpreferredforMED
Notadvertisedtoanypeeryet

在R6上验证一下:

displaybgprouting-table100.1.1.0
BGPlocalrouterID:6.6.6.6
LocalASnumber:300
Paths:2available,1best,1select
BGProutingtableentryinformationof100.1.1.0/24:
From:10.1.26.2(2.2.2.2)
RouteDuration:00h00m35s
DirectOut-interface:GigabitEthernet0/0/0
Originalnexthop:10.1.26.2
Qosinformation:0x0
Community:<100:100>
AS-path200100,originigp,pref-val0,valid,external,best,select,active,
pre255
Advertisedtosuch2peers:
10.1.26.2
10.1.46.4
BGProutingtableentryinformationof100.1.1.0/24:
From:10.1.46.4(4.4.4.4)
RouteDuration:00h00m25s
DirectOut-interface:GigabitEthernet0/0/1
Originalnexthop:10.1.46.4
Qosinformation:0x0
Community:<100:100>
AS-path200100,originigp,pref-val0,valid,external,pre255,notpreferred
forrouterID
Notadvertisedtoanypeeryet

再考虑另一个问题,如果在上述基础增加一个需求,当AS200将100网段的这些路由更新AS300时,希望这些路由仅在AS300内传递,不能传出AS300。在R2及R4上定义一个community-filter列表,抓取community值为100:100的路由,然后编写一个route-policy,为匹配这个community-filter列表的路由增加一个no-export的community属性值,再对R6应用这个route-policy即可。

R2的配置增补如下:

[R2]ipcommunity-filter1permit100:100
[R2]route-policysetCommupermitnode10
[R2-route-policy]if-matchcommunity-filter1
[R2-route-policy]applycommunityno-exportadditive
[R2-route-policy]route-policysetCommupermitnode20
[R2]bgp200
[R2-bgp]peer10.1.26.6route-policysetCommuexport

R4的配置增补如下:

[R4]ipcommunity-filter1permit100:100
[R4-route-policy]route-policysetCommupermitnode10
[R4-route-policy]if-matchcommunity-filter1
[R4-route-policy]applycommunityno-exportadditive
[R4-route-policy]route-policysetCommupermitnode20
[R4]bgp200
[R4-bgp]peer10.1.46.6route-policysetCommuexport

注意在上述的配置中,route-policy setCommu permit node 20并非无意义的命令,相反,这里如果不配置该条命令将导致R6上丢失200网段的路由。

displaybgprouting-table100.1.1.0
BGPlocalrouterID:6.6.6.6
LocalASnumber:300
Paths:2available,1best,1select
BGProutingtableentryinformationof100.1.1.0/24:
From:10.1.26.2(2.2.2.2)
RouteDuration:00h02m38s
DirectOut-interface:GigabitEthernet0/0/0
Originalnexthop:10.1.26.2
Qosinformation:0x0
Community:<100:100>,no-export
AS-path200100,originigp,pref-val0,valid,external,best,select,active,
pre255
Notadvertisedtoanypeeryet
BGProutingtableentryinformationof100.1.1.0/24:
From:10.1.46.4(4.4.4.4)
RouteDuration:00h00m42s
DirectOut-interface:GigabitEthernet0/0/1
Originalnexthop:10.1.46.4
Qosinformation:0x0
Community:<100:100>,no-export
AS-path200100,originigp,pref-val0,valid,external,pre255,notpreferred
forrouterID
Notadvertisedtoanypeeryet

实验需求七

c74c7c86-6607-11ed-8abf-dac502259ad0.png

将实验环境恢复一下,所有设备只保留接口IP等基础配置。

R1及R3处于联邦成员AS 65013;

R2、R4处于联邦成员AS 65024;

AS200内运行OSPF,所有路由器通告自己的Loopback0接口,联邦的邻居关系建立在Loopback0口上。

OSPF的配置在这里就不列举了。最终确保R6能够学习到100及200网段的路由。R1的配置如下:

[R1]bgp65013
[R1-bgp]router-id1.1.1.1
[R1-bgp]confederationid200
[R1-bgp]confederationpeer-as65024
[R1-bgp]peer10.1.15.5as-number100
[R1-bgp]peer2.2.2.2as-number65024
[R1-bgp]peer2.2.2.2connect-interfaceloopback0
[R1-bgp]peer2.2.2.2next-hop-local
[R1-bgp]peer2.2.2.2ebgp-max-hop
[R1-bgp]peer4.4.4.4as-number65024
[R1-bgp]peer4.4.4.4connect-interfaceloopback0
[R1-bgp]peer4.4.4.4ebgp-max-hop
[R1-bgp]peer4.4.4.4next-hop-local

R3的配置如下:

[R3]bgp65013
[R3-bgp]router-id3.3.3.3
[R3-bgp]confederationid200
[R3-bgp]confederationpeer-as65024
[R3-bgp]peer10.1.35.5as-number100
[R3-bgp]peer2.2.2.2as-number65024
[R3-bgp]peer2.2.2.2connect-interfaceloopback0
[R3-bgp]peer2.2.2.2ebgp-max-hop
[R3-bgp]peer2.2.2.2next-hop-local
[R3-bgp]peer4.4.4.4as-number65024
[R3-bgp]peer4.4.4.4connect-interfaceloopback0
[R3-bgp]peer4.4.4.4ebgp-max-hop
[R3-bgp]peer4.4.4.4next-hop-local

R2的配置如下:

[R2]bgp65024
[R2-bgp]router-id2.2.2.2
[R2-bgp]confederationid200
[R2-bgp]confederationpeer-as65013
[R2-bgp]peer1.1.1.1as-number65013
[R2-bgp]peer1.1.1.1connect-interfaceloopback0
[R2-bgp]peer1.1.1.1ebgp-max-hop
[R2-bgp]peer3.3.3.3as-number65013
[R2-bgp]peer3.3.3.3connect-interfaceloopback0
[R2-bgp]peer3.3.3.3ebgp-max-hop
[R2-bgp]peer10.1.26.6as-number300

R4的配置如下:

[R4]bgp65024
[R4-bgp]router-id4.4.4.4
[R4-bgp]confederationid200
[R4-bgp]confederationpeer-as65013
[R4-bgp]peer1.1.1.1as-number65013
[R4-bgp]peer1.1.1.1connect-interfaceloopback0
[R4-bgp]peer1.1.1.1ebgp-max-hop
[R4-bgp]peer3.3.3.3as-number65013
[R4-bgp]peer3.3.3.3connect-interfaceloopback0
[R4-bgp]peer3.3.3.3ebgp-max-hop
[R4-bgp]peer10.1.46.6as-number300

R5的配置如下:

[R5]bgp100
[R5-bgp]router-id5.5.5.5
[R5-bgp]peer10.1.15.1as-number200
[R5-bgp]peer10.1.35.3as-number200
[R5-bgp]network100.1.1.0255.255.255.0
[R5-bgp]network100.2.2.0255.255.255.0
[R5-bgp]network200.1.1.0255.255.255.0
[R5-bgp]network200.2.2.0255.255.255.0

R6的配置如下:

[R6]bgp300
[R6-bgp]router-id6.6.6.6
[R6-bgp]peer10.1.26.2as-number200
[R6-bgp]peer10.1.46.4as-number200
[R5]displaybgppeer
BGPlocalrouterID:5.5.5.5
LocalASnumber:100
Totalnumberofpeers:2Peersinestablishedstate:2
PeerVASMsgRcvdMsgSentOutQUp/DownStatePrefRcv
10.1.15.142003700022Established0
10.1.35.342003700022Established0
[R1]displaybgppeer
BGPlocalrouterID:1.1.1.1
LocalASnumber:65013
Totalnumberofpeers:3Peersinestablishedstate:3
PeerVASMsgRcvdMsgSentOutQUp/DownStatePrefRcv
2.2.2.24650246800005Established0
4.4.4.44650245700038Established0
10.1.15.541008500039Established4

观察一下路由:

[R2]displaybgprouting-table
BGPLocalrouterIDis2.2.2.2
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:8
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>i100.1.1.0/241.1.1.101000(65013)100i
*i3.3.3.301000(65013)100i
*>i100.2.2.0/241.1.1.101000(65013)100i
*i3.3.3.301000(65013)100i
*>i200.1.1.01.1.1.101000(65013)100i
*i3.3.3.301000(65013)100i
*>i200.2.2.01.1.1.101000(65013)100i
*i3.3.3.301000(65013)100i

上面是R2的BGP表,关注一下AS_PATH属性值,()括号内的AS号为联邦成员AS号。

[R6]displaybgprouting-table
BGPLocalrouterIDis6.6.6.6
Statuscodes:*-valid,>-best,d-damped,
h-history,i-internal,s-suppressed,S-Stale
Origin:i-IGP,e-EGP,?-incomplete
TotalNumberofRoutes:8
NetworkNextHopMEDLocPrfPrefValPath/Ogn
*>100.1.1.0/2410.1.26.20200100i
*10.1.46.40200100i
*>100.2.2.0/2410.1.26.20200100i
*10.1.46.40200100i
*>200.1.1.010.1.26.20200100i
*10.1.46.40200100i
*>200.2.2.010.1.26.20200100i
*10.1.46.40200100i

R6已经能够学习到100及200网段的路由了,并且这些路由的AS_PATH中是看不到联邦的信息

审核编辑:郭婷


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8595

    浏览量

    151139
  • 拓扑
    +关注

    关注

    4

    文章

    341

    浏览量

    29600
  • 路由器
    +关注

    关注

    22

    文章

    3732

    浏览量

    113764

原文标题:BGP进阶:BGP 综合实验二

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电源拓扑快速参考指南

    电子发烧友网站提供《电源拓扑快速参考指南.pdf》资料免费下载
    发表于 11-13 15:25 1次下载
    电源<b class='flag-5'>拓扑</b>快速参考指南

    在反相降压/升压拓扑中使用 TPS62120应用说明

    电子发烧友网站提供《在反相降压/升压拓扑中使用 TPS62120应用说明.pdf》资料免费下载
    发表于 09-10 10:27 0次下载
    在反相降压/升压<b class='flag-5'>拓扑</b>中使用 TPS62120应用<b class='flag-5'>说明</b>

    在反相降压/升压拓扑中使用 TPS62125应用说明

    电子发烧友网站提供《在反相降压/升压拓扑中使用 TPS62125应用说明.pdf》资料免费下载
    发表于 09-10 10:25 0次下载
    在反相降压/升压<b class='flag-5'>拓扑</b>中使用 TPS62125应用<b class='flag-5'>说明</b>

    华为设备中的BGP命令详解

    华为(Huawei)作为全球领先的信息与通信技术(ICT)解决方案供应商,其网络设备广泛应用于企业网络和运营商网络中。边界网关协议(Border Gateway Protocol,BGP)是互联网
    的头像 发表于 08-12 18:11 1014次阅读

    教学验证篇丨PPEC+HIL LLC拓扑仿真验证

    研/教学系列解决方案,全面覆盖电力电子学科的教学和科研需求,通过虚拟仿真与实物实验相结合,有效解决了教学内容复杂、理论与实际脱节的问题。教学平台涵盖几乎所有经典电力电子实验,配备完备的课程实验指导书
    发表于 06-11 13:45

    常见的电路拓扑结构

    开关电源的相关拓扑电路简化与原理及计算总结。
    发表于 05-29 14:53 12次下载

    北京大学团队首次实现完全可编程拓扑光子芯片

    研究团队能够独立且精确地控制每个人工原子及其原子-原子间的耦合,包括其随机但可控的无序状态。这使得他们在单个芯片上实现了动态拓扑相变、多晶格拓扑绝缘体、统计相关拓扑鲁棒性、以及安德森拓扑
    的头像 发表于 05-23 16:31 879次阅读

    BGP路由的生成方式及5种报文

    TCP的三次握手。先启动BGP的一端先发起TCP连接。如图所示,RTB先启动BGP协议,RTB随机端口号向RTA的179端口发起TCP连接
    发表于 03-26 14:11 3928次阅读
    <b class='flag-5'>BGP</b>路由的生成方式及5种报文

    BGP 路由聚合实验

    当把R1的路由条目转给R4的时候,要改变下一跳,从R5学到的路由条目转给R4的时候也要改变下一跳
    的头像 发表于 03-25 12:43 624次阅读
    <b class='flag-5'>BGP</b> 路由聚合<b class='flag-5'>实验</b>

    什么是Mesh?Mesh组网拓扑结构浅析

    什么是Mesh?Mesh组网拓扑结构浅析  Mesh(网状结构)是一种网络拓扑结构,它由多个节点相互连接而成,每个节点都可以直接与其他节点通信。与其他拓扑结构如星型拓扑结构和总线
    的头像 发表于 02-04 14:07 2948次阅读

    网络拓扑结构有哪几种类型 网络拓扑结构的优缺点

    网络拓扑结构是指计算机网络中节点与连接线之间的总体布局形式。根据节点与连接线的布局形式,网络拓扑结构可以分为以下几种类型: 星型拓扑:星型拓扑是以一个中心节点为核心,其他所有节点都直接
    的头像 发表于 02-04 10:22 2210次阅读

    网络拓扑结构的隐患和网络硬件的安全缺陷属于

    网络拓扑结构的隐患和网络硬件的安全缺陷是当前网络安全领域中的重要问题。随着互联网的不断发展和普及,网络拓扑结构和网络硬件的安全问题日益凸显。本文将详细分析网络拓扑结构的隐患,以及网络硬件的安全缺陷
    的头像 发表于 01-31 14:54 1705次阅读

    什么是计算机网络的拓扑结构?主要的拓扑结构有哪些?

    计算机网络的拓扑结构是指计算机网络中各个节点(包括计算机、服务器、路由器等)之间连接的方式和形式。拓扑结构可以影响到网络的性能、可靠性和扩展性。在计算机网络中,常见的拓扑结构有总线型、星型、环型、树
    的头像 发表于 01-31 10:40 2199次阅读

    升压拓扑开关调节器FP7209一般说明

    电子发烧友网站提供《升压拓扑开关调节器FP7209一般说明》资料免费下载
    发表于 01-18 15:35 3次下载

    华为路由器BGP基础配置实验记录

    配置BGP的前提是要保证各个自治区域的路由均可达,所以要首先在AS 2 配置OSPF使AS 2 通畅,然后再配置BGP。由于BGP的路由黑洞问题,需要在BGP路由经过的所有路由器上配置
    发表于 01-06 10:07 1135次阅读
    华为路由器<b class='flag-5'>BGP</b>基础配置<b class='flag-5'>实验</b>记录