实施路由发布策略
应用环境
Internet服务提供商(ISP)的网络通常分成三个层次:核心层、汇聚层(省域网)、接入层(城域网)。各级网络的路由发布策略如下:
1、核心层节点的路由直接发布到Internet上。
2、汇聚节点(省网)的路由发布分为以下2种情况:
a、省内聚合路由的发布
省内的路由需要汇聚后发布出去。例如,在二级RR上用network命令和静态路由配置省内聚合路由,加上标记省内聚合路由的Community属性,发布到一级RR上。一级RR再将其发布给关口节点和Internet出口路由器,从而发布到国内的其他ISP和Internet。这样可以引导骨干网外部以省内路由器为目的地的流量。
b、省内细碎路由的发布
省内聚合路由的发布对于省内的细碎路由,包括各城域网、IDC、POP点发布的接入细碎路由,如某省有800条路由,这些路由需要发布到骨干网内部,但不需要发布到其他的ISP和Internet。可以在二级RR上将省内的细碎路由加上no-export团体属性发送到一级RR上。骨干网内的路由器都会学习到这些细碎路由,这样可以引导骨干网内部以省内子网为目的地的流量。但是由于这些细碎路由具有no-export团体属性,一级RR不会将这些路由发送给本AS外的其他ISP和Internet。
3、接入层(城域网)的路由发布分为以下2种情况:
a、城域网分配私有AS,通过EBGP接入骨干网,在骨干网路由器上需要对城域网发布的路由设置Community属性。
b、城域网没有独立AS,采用OSPF或静态路由方式实现互联。在骨干网路由器上需要对城域网路由通过配置静态路由和BGP的network命令发布路由,并同时对发布的路由设置Community属性。
配置思路
实施路由发布策略时,采用如下的配置思路:
1.ISP骨干网络内部署IGP协议,使内部网络可达。
2.ISP骨干网和外部AS之间部署EBGP,骨干网内部署IBGP(通常使用反射器以减小IBGP全连接的数量)。
3. 在汇聚层节点上配置路由策略,控制省内路由的发布。
4. 在汇聚层与接入层相连的节点上配置策略,控制城域网路由的发布。
配置注意事项
应用团体属性时,需要在各路由器上配置向邻居发布团体属性,路由上携带的团体属性才能被发布给邻居。
配置实例
如下图,ISP骨干网结构如下,
RouterB作为核心层节点与外部AS节点RouterA建立EBGP连接。
RouterC和RouterD是汇聚层节点。RouterC是与核心层相连的节点,RouterD是与接入层相连的节点。
在ISP骨干网AS200内建立两级反射器。RouterB是一级反射器,其客户是RouterC;RouterC是二级反射器,其客户是RouterD。
RouterE是连接城域网的接入层节点。
需要发布的路由如下:
城域网路由:200.1.1.240/30、200.1.1.244/30、200.1.2.240/30、200.1.2.244/30、200.1.3.240
骨干网内的IGP路由:100.1.2.0/24、100.1.3.0/24、100.1.4.0/24
省网内的细碎路由:201.1.1.1/32、201.1.2.0/24、202.1.1.3/32
说明
此例为简化组网,带冗余的双反射器组网请参见“部署RR”。
骨干网发布路由组网图
适用产品和版本
采用NE系列路由器,版本为(VRP5.30)及后续版本。
配置步骤
步骤 1 配置各接口IP地址(略)
步骤 2 在AS200内配置IGP协议,此例中使用OSPF协议(略)
步骤 3 配置BGP基本功能
# 配置RouterA。 # RouterA与RouterB建立EBGP连接。 [RouterA] bgp 100 [RouterA-bgp] router-id 1.1.1.1 [RouterA-bgp] peer 100.1.1.2 as-number 200 [RouterA-bgp] quit # 配置RouterB。 # RouterB与RouterA建立EBGP连接,与RouterC建立IBGP连接。 [RouterB] bgp 200 [RouterB-bgp] router-id 2.2.2.2 [RouterB-bgp] peer 100.1.1.1 as-number 100 [RouterB-bgp] peer 100.1.2.2 as-number 200 [RouterB-bgp] peer 100.1.2.2 next-hop-local # 配置RouterB为一级反射器,客户机是RouterC。 [RouterB-bgp] peer 100.1.2.2 reflect-client [RouterB-bgp] quit # RouterC的配置。 # RouterC与RouterB、RouterD建立IBGP连接。 [RouterC] bgp 200 [RouterC-bgp] router-id 3.3.3.3 [RouterC-bgp] peer 100.1.2.1 as-number 200 [RouterC-bgp] peer 100.1.3.2 as-number 200 # 配置RouterC为二级反射器,客户机是RouterD。 [RouterC-bgp] peer 100.1.3.2 reflect-client [RouterC-bgp] quit # RouterD的配置。 [RouterD] bgp 200 [RouterD-bgp] router-id 4.4.4.4 [RouterD-bgp] peer 100.1.3.1 as-number 200 [RouterD-bgp] quit
# 查看各路由器的BGP连接状态,以RouterB为例,状态为“Established”,BGP连接已经成功建立。
[RouterB] display bgp peer
BGP local router ID : 2.2.2.2
Local AS number : 200
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
100.1.1.1 4 100 5 5 0 00:03:14 Established 0
100.1.2.2 4 200 3 4 0 00:01:01 Established 0
步骤 4 配置城域网路由的发布
# 城域网通过静态路由的方式接入骨干网。在接入层与城域网相连的节点RouterD上配置到城域网的静态路由,这些静态路由是城域网的聚合路由。 [RouterD] ip route-static 200.1.1.240 30 100.1.4.2 [RouterD] ip route-static 200.1.1.244 30 100.1.4.2 [RouterD] ip route-static 200.1.2.240 30 100.1.4.2 [RouterD] ip route-static 200.1.2.244 30 100.1.4.2 [RouterD] ip route-static 200.1.3.240 30 100.1.4.2 # 在RouterD的BGP中发布这些聚合路由,并为这些路由设置团体属性300:1,表示这些路由是来自某一城域网的路由。 # 创建名为City的Route-Policy,为路由设置团体属性300:1。 [RouterD] route-policy City permit node 10 [RouterD-route-policy] apply community 300:1 [RouterD-route-policy] quit # 在BGP中发布路由。 [RouterD] bgp 200 [RouterD-bgp] network 200.1.1.240 30 route-policy City [RouterD-bgp] network 200.1.1.244 30 route-policy City [RouterD-bgp] network 200.1.2.240 30 route-policy City [RouterD-bgp] network 200.1.2.244 30 route-policy City [RouterD-bgp] network 200.1.3.240 30 route-policy City [RouterD-bgp] peer 100.1.3.1 advertise-community [RouterD-bgp] quit
二级反射器RouterC上接收到RouterD发布的城域网路由后,会将这些路由进一步聚合后再发布给Internet,因此这些具体的城域网路由不需要发布到一级反射器RouterB上。
# 在RouterC上过滤出这些具体路由,并设置路由的团体属性为no_advertise。 # 创建名为No-Advertise的Route-Policy。 [RouterC] ip community-filter 100 permit 300:1 [RouterC] route-policy No-Advertise permit node 10 [RouterC-route-policy] if-match community-filter 100 [RouterC-route-policy] apply community no-advertise [RouterC-route-policy] quit # 在BGP中应用No-Advertise,配置RouterC不发布城域网的具体路由。 [RouterC] bgp 200 [RouterC-bgp] peer 100.1.3.2 route-policy No-Advertise import [RouterC-bgp] peer 100.1.2.1 advertise-community [RouterC-bgp] quit
# 配置完成后,RouterC可以学到城域网的具体路由,RouterB的路由表中则没有这些具体的城域网路由。
[RouterC] display bgp routing-table
Total Number of Routes: 5
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 200.1.1.240/30 100.1.3.2 0 100 0 i
*>i 200.1.1.244/30 100.1.3.2 0 100 0 i
*>i 200.1.2.240/30 100.1.3.2 0 100 0 i
*>i 200.1.2.244/30 100.1.3.2 0 100 0 i
*>i 200.1.3.240/30 100.1.3.2 0 100 0 i
步骤 5 配置省网路由的发布
省内IGP路由、城域网发布的路由都需要进一步聚合,并为这些路由设置团体属性200:3(表示路由来自本ISP)后再发布到Internet上。
# 将省内的IGP路由,聚合成100.1.0.0/16,并设置no_export属性。使这些路由可以被AS内其他节点学习到,但是不发布到Internet上。 # 配置RouterB。 [RouterB] route-policy No-Export permit node 10 [RouterB-route-policy] apply community no-export [RouterB-route-policy] quit [RouterB] bgp 200 [RouterB-bgp] import-route ospf 1 route-policy No-Export # 配置RouterC。 [RouterC] route-policy No-Export permit node 10 [RouterC-route-policy] apply community no-export [RouterC-route-policy] quit [RouterC] bgp 200 [RouterC-bgp] import-route ospf 1 route-policy No-Export [RouterC-bgp] quit # 配置RouterD。 [RouterD] route-policy No-Export permit node 10 [RouterD-route-policy] apply community no-export [RouterD-route-policy] quit [RouterD] bgp 200 [RouterD-bgp] import-route ospf 1 route-policy No-Export # 在RouterC上配置静态路由聚合IGP路由,在BGP中发布这条静态路由,并为这条路由设置团体属性200:3。 [RouterC] ip route-static 100.1.0.0 16 NULL0 [RouterC] route-policy AS-Aggregate permit node 10 [RouterC-route-policy] apply community 200:3 [RouterC-route-policy] quit [RouterC] bgp 200 [RouterC-bgp] network 100.1.0.0 16 route-policy AS-Aggregate [RouterC-bgp] quit # 将省内城域网发布的路由在RouterC上进一步聚合,在BGP中发布,并设置路由的团体属性为200:3。 [RouterC] ip route-static 200.1.1.0 24 NULL0 [RouterC] ip route-static 200.1.2.0 24 NULL0 [RouterC] ip route-static 200.1.3.0 24 NULL0 [RouterC] bgp 200 [RouterC-bgp] network 200.1.1.0 route-policy AS-Aggregate [RouterC-bgp] network 200.1.2.0 route-policy AS-Aggregate [RouterC-bgp] network 200.1.3.0 route-policy AS-Aggregate [RouterC-bgp] quit 省内细碎路由和城域网发布的具体路由不需要发布到Internet上去。 # 细碎路由(此例中使用静态路由代替省内细碎路由)如下: [RouterC] ip route-static 201.1.1.1 32 NULL0 [RouterC] ip route-static 201.1.2.0 24 NULL0 [RouterC] ip route-static 202.1.1.3 32 NULL0 # 在省网内发布这些路由,使用名为No-Export的Route-Policy为这些路由设置团体属性no_export。 [RouterC] bgp 200 [RouterC-bgp] network 201.1.1.1 32 route-policy No-Export [RouterC-bgp] network 201.1.2.0 24 route-policy No-Export [RouterC-bgp] network 202.1.1.3 32 route-policy No-Export
验证结果
如果配置成功,则:
# 查看接入层与城域网相连的节点RouterD的路由表。可见,RouterD的路由表中有到城域网的路由和省内路由。
[RouterD] display ip routing-table
Routing Tables: Public
Destinations : 21 Routes : 21
Destination/Mask Proto Pre Cost NextHop Interface
100.1.0.0/16 BGP 255 0 100.1.3.1 Pos1/0/0
100.1.2.0/24 OSPF 10 3124 100.1.3.1 Pos1/0/0
100.1.3.0/24 Direct 0 0 100.1.3.2 Pos1/0/0
100.1.3.1/32 Direct 0 0 100.1.3.1 Pos1/0/0
100.1.3.2/32 Direct 0 0 127.0.0.1 InLoopBack0
100.1.4.0/24 Direct 0 0 100.1.4.1 Pos2/0/0
100.1.4.1/32 Direct 0 0 127.0.0.1 InLoopBack0
100.1.4.2/32 Direct 0 0 100.1.4.2 Pos2/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
200.1.1.0/24 BGP 255 0 100.1.3.1 Pos1/0/0
200.1.1.240/30 Static 60 0 100.1.4.2 Pos2/0/0
200.1.1.244/30 Static 60 0 100.1.4.2 Pos2/0/0
200.1.2.0/24 BGP 255 0 100.1.3.1 Pos1/0/0
200.1.2.240/30 Static 60 0 100.1.4.2 Pos2/0/0
200.1.2.244/30 Static 60 0 100.1.4.2 Pos2/0/0
200.1.3.0/24 BGP 255 0 100.1.3.1 Pos1/0/0
200.1.3.240/30 Static 60 0 100.1.4.2 Pos2/0/0
201.1.1.1/32 BGP 255 0 100.1.3.1 Pos1/0/0
201.1.2.0/24 BGP 255 0 100.1.3.1 Pos1/0/0
202.1.1.3/32 BGP 255 0 100.1.3.1 Pos1/0/0
# 查看RouterC的路由表,可见RouterC中有从RouterD学到的城域网具体路由。
[RouterC] display ip routing-table
Routing Tables: Public
Destinations : 20 Routes : 20
Destination/Mask Proto Pre Cost NextHop Interface
100.1.0.0/16 Static 60 0 0.0.0.0 NULL0
100.1.2.0/24 Direct 0 0 100.1.2.2 Pos1/0/0
100.1.2.1/32 Direct 0 0 100.1.2.1 Pos1/0/0
100.1.2.2/32 Direct 0 0 127.0.0.1 InLoopBack0
100.1.3.0/24 Direct 0 0 100.1.3.1 Pos2/0/0
100.1.3.1/32 Direct 0 0 127.0.0.1 InLoopBack0
100.1.3.2/32 Direct 0 0 100.1.3.2 Pos2/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
200.1.1.0/24 Static 60 0 0.0.0.0 NULL0
200.1.1.240/30 BGP 255 0 100.1.3.2 Pos2/0/0
200.1.1.244/30 BGP 255 0 100.1.3.2 Pos2/0/0
200.1.2.0/24 Static 60 0 0.0.0.0 NULL0
200.1.2.240/30 BGP 255 0 100.1.3.2 Pos2/0/0
200.1.2.244/30 BGP 255 0 100.1.3.2 Pos2/0/0
200.1.3.0/24 Static 60 0 0.0.0.0 NULL0
200.1.3.240/30 BGP 255 0 100.1.3.2 Pos2/0/0
201.1.1.1/32 Static 60 0 0.0.0.0 NULL0
201.1.2.0/24 Static 60 0 0.0.0.0 NULL0
202.1.1.3/32 Static 60 0 0.0.0.0 NULL0
# 查看RouterB的路由表,可见RouterB中有省内发布的细路由、有RouterC进一步聚合后的城域网路由和IGP路由,没有RouterD发布的城域网具体路由。
[RouterB] display ip routing-table
Routing Tables: Public
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost NextHop Interface
100.1.0.0/16 BGP 255 0 100.1.2.2 Pos2/0/0
100.1.1.0/24 Direct 0 0 100.1.1.2 Pos1/0/0
100.1.1.1/32 Direct 0 0 100.1.1.1 Pos1/0/0
100.1.1.2/32 Direct 0 0 127.0.0.1 InLoopBack0
100.1.2.0/24 Direct 0 0 100.1.2.1 Pos2/0/0
100.1.2.1/32 Direct 0 0 127.0.0.1 InLoopBack0
100.1.2.2/32 Direct 0 0 100.1.2.2 Pos2/0/0
100.1.3.0/24 OSPF 10 3124 100.1.2.2 Pos2/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
200.1.1.0/24 BGP 255 0 100.1.2.2 Pos2/0/0
200.1.2.0/24 BGP 255 0 100.1.2.2 Pos2/0/0
200.1.3.0/24 BGP 255 0 100.1.2.2 Pos2/0/0
201.1.1.1/32 BGP 255 0 100.1.2.2 Pos2/0/0
201.1.2.0/24 BGP 255 0 100.1.2.2 Pos2/0/0
202.1.1.3/32 BGP 255 0 100.1.2.2 Pos2/0/0
# 查看RouterA的路由表,可见RouterA中只有RouterC有团体属性200:3的路由,即要发布给Internet的路由。
[RouterA] display ip routing-table
Routing Tables: Public
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
100.1.0.0/16 BGP 255 0 100.1.1.2 Pos1/0/0
100.1.1.0/24 Direct 0 0 100.1.1.1 Pos1/0/0
100.1.1.1/32 Direct 0 0 127.0.0.1 InLoopBack0
100.1.1.2/32 Direct 0 0 100.1.1.2 Pos1/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
200.1.1.0/24 BGP 255 0 100.1.1.2 Pos1/0/0
200.1.2.0/24 BGP 255 0 100.1.1.2 Pos1/0/0
200.1.3.0/24 BGP 255 0 100.1.1.2 Pos1/0/0





