实施路由引入策略
应用环境
Internet服务提供商(ISP)可以向客户提供Internet路由。ISP网络通常分成三个层次:核心层、汇聚层(省域网)、接入层(城域网)。
在核心层,各节点需要使用BGP接收Internet全网路由和其他ISP的路由,因此要求核心节点具有大路由容量和快速处理能力。
在汇聚层,各节点在引入外部路由时需要控制引入的路由规模,以达到设备负荷与选路优化之间的平衡。例如在省内连接核心层的节点上聚合路由或配置缺省路由,并使用Route-Policy控制发送到汇聚节点的路由规模。在省内的各汇聚节点(各地市的出口节点)上使用Route-Policy控制从连接核心层的节点接收的路由规模。
在接入层(城域网),各节点可以使用一条缺省路由引入Internet路由,这样节点就不需要学习到Internet上的每一条路由了。这样网络中的路由器仅需要知道网络内部的路由情况,如果报文是去往其它网络的,缺省路由会将报文转发给ISP。
配置思路
实施路由引入策略时,采用如下的配置思路:
1. ISP骨干网络内部署IGP协议,使内部网络可达。
2. ISP骨干网和外部AS之间部署EBGP引入全部Internet路由,网内部所有路由器间部署IBGP(通常使用反射器以减小IBGP全连接的数量)。
3. 在汇聚层节点上配置路由策略,控制引入Internet路由的规模。
4. 在接入层节点上配置缺省路由,为城域网内各路由器提供通往Internet的路由。
配置实例
如下图,ISP向客户提供Internet路由。其中,
RouterB作为核心层节点与RouterA建立EBGP连接,引入全部Internet路由。
RouterC和RouterD是汇聚层节点。RouterC是与核心层相连的节点,RouterD是与接入层相连的节点。
在ISP骨干网AS200内建立两级反射器。RouterB是一级反射器,其客户是RouterC;RouterC是二级反射器,其客户是RouterD。
RouterE是连接城域网的接入层节点。
说明
此例为简化组网,带冗余的双反射器组网请参见“部署RR”。
引入Internet路由组网图
适用产品和版本
采用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 # 在BGP进程中引入OSPF路由 [RouterB-bgp] import-route ospf 1 # 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 # 在BGP进程中引入OSPF路由 [RouterC-bgp] import-route ospf 1 # RouterD的配置。 [RouterD] bgp 200 [RouterD-bgp] router-id 4.4.4.4 [RouterD-bgp] peer 100.1.3.1 as-number 200 # 在BGP进程中引入OSPF路由 [RouterD-bgp] import-route ospf 1 [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 3 5 0 00:01:08 Established 0
100.1.2.2 4 200 4 5 0 00:00:22 Established 2
步骤 4 RouterA向核心层路由器发送Internet路由
# 在RouterA上配置若干条静态路由,此处用静态路由来代替Internet路由。 [RouterA] ip route-static 200.1.1.240 30 NULL0 [RouterA] ip route-static 200.1.1.244 30 NULL0 [RouterA] ip route-static 200.1.1.248 30 NULL0 [RouterA] ip route-static 200.1.1.252 30 NULL0 [RouterA] ip route-static 200.1.2.240 30 NULL0 [RouterA] ip route-static 200.1.2.244 30 NULL0 [RouterA] ip route-static 200.1.2.248 30 NULL0 [RouterA] ip route-static 200.1.2.252 30 NULL0 [RouterA] ip route-static 200.1.3.240 30 NULL0 [RouterA] ip route-static 200.1.3.244 30 NULL0 [RouterA] ip route-static 200.1.3.248 30 NULL0 [RouterA] ip route-static 200.1.3.252 30 NULL0 [RouterA] ip route-static 200.1.4.240 30 NULL0 [RouterA] ip route-static 200.1.4.244 30 NULL0 [RouterA] ip route-static 200.1.4.248 30 NULL0 [RouterA] ip route-static 200.1.4.252 30 NULL0 [RouterA] ip route-static 200.1.5.240 30 NULL0 [RouterA] ip route-static 200.1.5.244 30 NULL0 [RouterA] ip route-static 200.1.5.248 30 NULL0 [RouterA] ip route-static 200.1.5.252 30 NULL0 # 在RouterA的BGP中引入静态路由。 [RouterA] bgp 100 [RouterA-bgp] import-route static
# 查看RouterA的BGP路由表,静态路由已经被引入BGP进程。
[RouterA] display bgp routing-table
Total Number of Routes: 22
BGP Local router ID is 1.1.1.1
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
*> 100.1.2.0/24 10.1.1.2 0 0 200?
*> 100.1.3.0/24 10.1.1.2 3124 0 200?
*> 200.1.1.240/30 0.0.0.0 0 0 ?
*> 200.1.1.244/30 0.0.0.0 0 0 ?
*> 200.1.1.248/30 0.0.0.0 0 0 ?
*> 200.1.1.252/30 0.0.0.0 0 0 ?
*> 200.1.2.240/30 0.0.0.0 0 0 ?
*> 200.1.2.244/30 0.0.0.0 0 0 ?
*> 200.1.2.248/30 0.0.0.0 0 0 ?
*> 200.1.2.252/30 0.0.0.0 0 0 ?
*> 200.1.3.240/30 0.0.0.0 0 0 ?
*> 200.1.3.244/30 0.0.0.0 0 0 ?
*> 200.1.3.248/30 0.0.0.0 0 0 ?
*> 200.1.3.252/30 0.0.0.0 0 0 ?
*> 200.1.4.240/30 0.0.0.0 0 0 ?
*> 200.1.4.244/30 0.0.0.0 0 0 ?
*> 200.1.4.248/30 0.0.0.0 0 0 ?
*> 200.1.4.252/30 0.0.0.0 0 0 ?
*> 200.1.5.240/30 0.0.0.0 0 0 ?
*> 200.1.5.244/30 0.0.0.0 0 0 ?
*> 200.1.5.248/30 0.0.0.0 0 0 ?
*> 200.1.5.252/30 0.0.0.0 0 0 ?
步骤 5 在汇聚层连接核心层的节点上配置策略,控制发布给其它汇聚层节点的路由规模。
# 在RouterC上聚合Internet路由。 [RouterC-bgp] aggregate 200.1.1.0 24 detail-suppressed [RouterC-bgp] aggregate 200.1.2.0 24 detail-suppressed [RouterC-bgp] aggregate 200.1.3.0 24 detail-suppressed [RouterC-bgp] aggregate 200.1.4.0 24 detail-suppressed [RouterC-bgp] aggregate 200.1.5.0 24 detail-suppressed [RouterC-bgp] quit # 在RouterC上配置名为Internet-1和Internet-2的地址前缀列表,用于过滤Internet聚合路由。 [RouterC] ip ip-prefix Internet-1 permit 200.1.1.0 24 [RouterC] ip ip-prefix Internet-1 permit 200.1.2.0 24 [RouterC] ip ip-prefix Internet-1 permit 200.1.3.0 24 [RouterC] ip ip-prefix Internet-2 permit 200.1.4.0 24 [RouterC] ip ip-prefix Internet-2 permit 200.1.5.0 24 # 配置名为Community的Route-Policy,为匹配Internet-1的路由设置团体属性200:1,为匹配Internet-2的路由设置团体属性200:2。 [RouterC] route-policy Community permit node 10 [RouterC-route-policy] if-match ip-prefix Internet-1 [RouterC-route-policy] apply community 200:1 [RouterC-route-policy] quit [RouterC] route-policy Community permit node 20 [RouterC-route-policy] if-match ip-prefix Internet-2 [RouterC-route-policy] apply community 200:2 [RouterC-route-policy] quit # 在RouterC上应用发布策略。 [RouterC] bgp 200 [RouterC-bgp] peer 100.1.3.2 advertise-community [RouterC-bgp] peer 100.1.3.2 route-policy Community export
步骤 6 在汇聚层的各汇聚节点(通常是各地市的出口节点)控制接收路由的规模
# 在RouterD上配置团体属性过滤器1。 [RouterD] ip community-filter 1 permit 200:2 # 在RouteD上配置名为Import的Route-Policy。 [RouterD] route-policy Import permit node 10 [RouterD-route-policy] if-match community-filter 1 [RouterD-route-policy] quit # 在RouterD上使用Route-Policy控制从连接核心层的节点接收的路由规模。 [RouterD] bgp 200 [RouterD-bgp] peer 100.1.3.1 route-policy Import import
步骤 7 在接入层引入缺省路由。
# 配置RouterE到RouterD的缺省路由,为城域网提供Internet路由。
[RouterE] ip route-static 0.0.0.0 0.0.0.0 100.1.4.1
验证结果
如果配置成功,则:
核心层路由器RouterB接收全部Internet路由,如下:
[RouterB] display bgp routing-table
Total Number of Routes: 29
BGP Local router ID is 2.2.2.2
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
*> 100.1.2.0/24 0.0.0.0 0 0 ?
* i 100.1.2.2 0 100 0 ?
*> 100.1.3.0/24 0.0.0.0 3124 0 ?
* i 100.1.2.2 0 100 0 ?
*>i 200.1.1.0 100.1.2.2 100 0 ?
*> 200.1.1.240/30 100.1.1.1 0 0 100?
*> 200.1.1.244/30 100.1.1.1 0 0 100?
*> 200.1.1.248/30 100.1.1.1 0 0 100?
*> 200.1.1.252/30 100.1.1.1 0 0 100?
*>i 200.1.2.0 100.1.2.2 100 0 ?
*> 200.1.2.240/30 100.1.1.1 0 0 100?
*> 200.1.2.244/30 100.1.1.1 0 0 100?
*> 200.1.2.248/30 100.1.1.1 0 0 100?
*> 200.1.2.252/30 100.1.1.1 0 0 100?
*>i 200.1.3.0 100.1.2.2 100 0 ?
*> 200.1.3.240/30 100.1.1.1 0 0 100?
*> 200.1.3.244/30 100.1.1.1 0 0 100?
*> 200.1.3.248/30 100.1.1.1 0 0 100?
*> 200.1.3.252/30 100.1.1.1 0 0 100?
*>i 200.1.4.0 100.1.2.2 100 0 ?
*> 200.1.4.240/30 100.1.1.1 0 0 100?
*> 200.1.4.244/30 100.1.1.1 0 0 100?
*> 200.1.4.248/30 100.1.1.1 0 0 100?
*> 200.1.4.252/30 100.1.1.1 0 0 100?
*>i 200.1.5.0 100.1.2.2 100 0 ?
*> 200.1.5.240/30 100.1.1.1 0 0 100?
*> 200.1.5.244/30 100.1.1.1 0 0 100?
*> 200.1.5.248/30 100.1.1.1 0 0 100?
*> 200.1.5.252/30 100.1.1.1 0 0 100?
汇聚层连接核心层的节点RouterC接收全部Internet路由,并对路由进行聚合,只发布聚合路由给其他汇聚层节点。
[RouterC-bgp] display bgp routing-table
Total Number of Routes: 31
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
*> 100.1.2.0/24 0.0.0.0 0 0 ?
* i 100.1.2.1 0 100 0 ?
* i 100.1.3.2 3124 100 0 ?
*> 100.1.3.0/24 0.0.0.0 0 0 ?
* i 100.1.2.1 3124 100 0 ?
* i 100.1.3.2 0 100 0 ?
*> 200.1.1.0 127.0.0.1 0 ?
s> 200.1.1.240/30 100.1.2.1 0 100 0 100?
s> 200.1.1.244/30 100.1.2.1 0 100 0 100?
s> 200.1.1.248/30 100.1.2.1 0 100 0 100?
s> 200.1.1.252/30 100.1.2.1 0 100 0 100?
*> 200.1.2.0 127.0.0.1 0 ?
s> 200.1.2.240/30 100.1.2.1 0 100 0 100?
s> 200.1.2.244/30 100.1.2.1 0 100 0 100?
s> 200.1.2.248/30 100.1.2.1 0 100 0 100?
s> 200.1.2.252/30 100.1.2.1 0 100 0 100?
*> 200.1.3.0 127.0.0.1 0 ?
s> 200.1.3.240/30 100.1.2.1 0 100 0 100?
s> 200.1.3.244/30 100.1.2.1 0 100 0 100?
s> 200.1.3.248/30 100.1.2.1 0 100 0 100?
s> 200.1.3.252/30 100.1.2.1 0 100 0 100?
*> 200.1.4.0 127.0.0.1 0 ?
s> 200.1.4.240/30 100.1.2.1 0 100 0 100?
s> 200.1.4.244/30 100.1.2.1 0 100 0 100?
s> 200.1.4.248/30 100.1.2.1 0 100 0 100?
s> 200.1.4.252/30 100.1.2.1 0 100 0 100?
*> 200.1.5.0 127.0.0.1 0 ?
s> 200.1.5.240/30 100.1.2.1 0 100 0 100?
s> 200.1.5.244/30 100.1.2.1 0 100 0 100?
s> 200.1.5.248/30 100.1.2.1 0 100 0 100?
s> 200.1.5.252/30 100.1.2.1 0 100 0 100?
# 查看RouterC的发布路由表,可见RouterC只发布聚合路由给RouterD。如下:
[RouterC] display bgp routing-table peer 100.1.3.2 advertised-routes
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
*> 200.1.1.0 127.0.0.1 0 ?
*> 200.1.2.0 127.0.0.1 0 ?
*> 200.1.3.0 127.0.0.1 0 ?
*> 200.1.4.0 127.0.0.1 0 ?
*> 200.1.5.0 127.0.0.1 0 ?
RouterD根据接收策略,只接收了团体属性是200:2的路由,如下:
[RouterD] display bgp routing-table
Total Number of Routes: 4
BGP Local router ID is 4.4.4.4
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
*> 100.1.2.0/24 0.0.0.0 3124 0 ?
*> 100.1.3.0/24 0.0.0.0 0 0 ?
*>i 200.1.4.0 100.1.3.1 100 0 ?
*>i 200.1.5.0 100.1.3.1 100 0 ?
RouterE的路由表中有一条通往ISP骨干网的缺省路由,为城域网的客户提供Internet路由。
[RouterE] display ip routing-table
Routing Tables: Public
Destinations : 6 Routes : 6
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 Static 60 0 100.1.4.1 Pos1/0/0
100.1.4.0/24 Direct 0 0 100.1.4.2 Pos1/0/0
100.1.4.1/32 Direct 0 0 100.1.4.1 Pos1/0/0
100.1.4.2/32 Direct 0 0 127.0.0.1 InLoopBack0
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