全部博文(102)
分类: 系统运维
2008-09-09 14:37:47
省内的路由需要汇聚后发布出去。例如,在二级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)接入层
A 城域网分配私有AS,通过EBGP接入骨干网,在骨干网路由器上需要对城域网发布的路由设置Community属性。
B 城域网没有独立AS,采用OSPF或静态路由方式实现互联。在骨干网路由器上需要对城域网路由通过配置静态路由和BGP的network命令发布路由,并同时对发布的路由设置Community属性。
2 配置思路
(1)ISP骨干内部部署IGP协议,使内部网络可达
(2) ISP 骨干网和外部AS之间部署eBGP, 骨干内部部署iBGP(通常使用发射器减少iBGP全连接的数量)
(3)在会聚层节点上部署路由策略,控制省内路由的发布
(4) 在汇聚层和接入层相连的节点上配置策略,控制成域网络路由的发布
3 注意事项
应用团体属性时,需要在各路由器上配置向邻居发布团体属性,路由上携带的团体属性才能被发布给邻居。
如下图,ISP骨干网结构如下,
需要发布的路由如下:
说明
此例为简化组网,带冗余的双反射器组网请参见“部署RR”。
骨干网发布路由组网图
采用NE系列路由器,版本为(VRP5.30)及后续版本。
步骤 1 配置各接口IP地址(略)
步骤 2 在AS200内配置IGP协议,此例中使用OSPF协议(略)
步骤3 配置基本的BGP协议
其中RouterA和RouterB 建立eBGP协议
[RouterA] bgp 100
[RouterA-bgp]router-id 1.1.1.1
[RouterA-bgp]peer 100.1.1.2 as-number 200
[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
路由器C和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作为2级反射器,Clinet为RouterD
[RouterC-bgp]peer 100.1.3.2 reflect-client
RouterD的配置
[RouterD]bgp 200
[RouterD-bgp]router-id 4.4.4.4
[RouterD-bgp]peer 100.1.3.1 as-number 200
查看各个路由器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 255.255.255.252 10.1.4.2
[RouterD]ip route-static 200.1.1.224 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
在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]network 100.1.3.1 advertise-community
二级反射器RouterC上接收到RouterD发布的城域网路由后,会将这些路由进一步聚合后再发布给Internet,因此这些具体的城域网路由不需要发布到一级反射器RouterB上。
在RouterC上过滤出这些具体路由,并设置路由的团体属性为no_advertise。
[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
在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
#
sysname RouterA
#
interface Pos1/0/0
link-protocol ppp
ip address 100.1.1.1 255.255.255.0
#
interface NULL0
#
bgp 100
router-id 1.1.1.1
peer 100.1.1.2 as-number 200
#
ipv4-family unicast
undo synchronization
peer 100.1.1.2 enable
#
return
#
sysname RouterB
#
interface Pos1/0/0
link-protocol ppp
ip address 100.1.1.2 255.255.255.0
#
interface Pos2/0/0
link-protocol ppp
ip address 100.1.2.1 255.255.255.0
#
interface NULL0
#
bgp 200
router-id 2.2.2.2
peer 100.1.1.1 as-number 100
peer 100.1.2.2 as-number 200
#
ipv4-family unicast
undo synchronization
import-route ospf 1 route-policy No-Export
peer 100.1.1.1 enable
peer 100.1.2.2 enable
peer 100.1.2.2 reflect-client
peer 100.1.2.2 next-hop-local
#
ospf 1
area 0.0.0.0
network 100.1.2.0 0.0.0.255
#
route-policy No-Export permit node 10
apply community no-export
#
return
#
sysname RouterC
#
interface Pos1/0/0
link-protocol ppp
ip address 100.1.2.2 255.255.255.0
#
interface Pos2/0/0
link-protocol ppp
ip address 100.1.3.1 255.255.255.0
#
interface NULL0
#
bgp 200
router-id 3.3.3.3
peer 100.1.2.1 as-number 200
peer 100.1.3.2 as-number 200
#
ipv4-family unicast
undo synchronization
network 100.1.0.0 255.255.0.0 route-policy AS-Aggregate
network 200.1.1.0 route-policy AS-Aggregate
network 200.1.2.0 route-policy AS-Aggregate
network 200.1.3.0 route-policy AS-Aggregate
network 201.1.1.1 255.255.255.255 route-policy No-Export
network 201.1.2.0 route-policy No-Export
network 202.1.1.3 255.255.255.255 route-policy No-Export
import-route ospf 1 route-policy No-Export
peer 100.1.2.1 enable
peer 100.1.2.1 advertise-community
peer 100.1.3.2 enable
peer 100.1.3.2 route-policy No-Advertise import
peer 100.1.3.2 reflect-client
#
ospf 1
area 0.0.0.0
network 100.1.2.0 0.0.0.255
network 100.1.3.0 0.0.0.255
#
route-policy No-Advertise permit node 10
if-match community-filter 100
apply community no-advertise
route-policy No-Export permit node 10
apply community no-export
route-policy AS-Aggregate permit node 10
apply community 200:3
#
ip community-filter 100 permit 300:1
#
ip route-static 100.1.0.0 255.255.0.0 NULL0
ip route-static 200.1.1.0 255.255.255.0 NULL0
ip route-static 200.1.2.0 255.255.255.0 NULL0
ip route-static 200.1.3.0 255.255.255.0 NULL0
ip route-static 201.1.1.1 255.255.255.255 NULL0
ip route-static 201.1.2.0 255.255.255.0 NULL0
ip route-static 202.1.1.3 255.255.255.255 NULL0
#
return
#
sysname RouterD
#
interface Pos1/0/0
link-protocol ppp
ip address 100.1.3.2 255.255.255.0
#
interface Pos2/0/0
link-protocol ppp
ip address 100.1.4.1 255.255.255.0
#
interface NULL0
#
bgp 200
router-id 4.4.4.4
peer 100.1.3.1 as-number 200
#
ipv4-family unicast
undo synchronization
network 200.1.1.240 255.255.255.252 route-policy City
network 200.1.1.244 255.255.255.252 route-policy City
network 200.1.2.240 255.255.255.252 route-policy City
network 200.1.2.244 255.255.255.252 route-policy City
network 200.1.3.240 255.255.255.252 route-policy City
import-route ospf 1 route-policy No-Export
peer 100.1.3.1 enable
peer 100.1.3.1 advertise-community
#
ospf 1
area 0.0.0.0
network 100.1.3.0 0.0.0.255
#
route-policy City permit node 10
apply community 300:1
route-policy No-Export permit node 10
apply community no-export
#
ip route-static 200.1.1.240 255.255.255.252 100.1.4.2
ip route-static 200.1.1.244 255.255.255.252 100.1.4.2
ip route-static 200.1.2.240 255.255.255.252 100.1.4.2
ip route-static 200.1.2.244 255.255.255.252 100.1.4.2
ip route-static 200.1.3.240 255.255.255.252 100.1.4.2
#
return
#
sysname RouterE
#
interface Pos1/0/0
link-protocol ppp
ip address 10.1.4.2 255.255.255.0
#
interface Pos2/0/0
link-protocol ppp
#
interface NULL0
#
return