双星型网络BGP路由协议部署专题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BGP、OSPF、IS-IS、AS、路由器
摘要:
在大型的运营商网络里会涉及到复杂的路由协议的部署。
由于网络复杂性的增加可能会涉及在路由协议中部署一定的策略来规划网络中数据流量通过的路径。
下图所示为典型的运营商网络结构,其中涉及网络流量的规划。
本文以上图为对象,对AS内部、AS之间的路由协议部署和实现进行了详细的介绍。
缩略语清单:
无
参考资料清单:
《TCP/IP路由技术-卷1》
《TCP/IP路由技术-卷2》
《NE80/40用服维护手册》
第1章网络结构
如图1-1所示的某运营商网络,其为典型的双星型上联结构。
其中路由器E(NE80)作为上一级网络AS200的接入点;路由器A/B(NE40)作为下级网络AS100的上联路由器。
AS之间运行EBGP。
图1-1 典型双星型网络拓扑结构
1.2 网络IGP规划
在上一级的网络AS200中采用内部网关协议OSPF作为其IGP,其中AS200
内的路由器在一个ospf的区域(area)中。
在下一级的网络AS100中采用内部网关协议IS-IS作为其IGP,并且AS100中的路由器都在IS-IS的level-2的相同区域中。
1.3 网络EGP规划
在两个AS之间采用EBGP来实现自治系统之间的互通。
通过在BGP上部署策略来实现AS之间的流量控制。
在每个AS中路由器之间采用IBGP互联。
在AS100中路由器A、B为同一个集群中的BGP路由反射器;路由器C、D为客户端。
第2章路由策略需求
2.1 路由信息
在AS200域中路由器F上包含两个网段信息分别为:20.0.0.0/24、30.0.0.0/24;AS100域中路由器C和D上分别包含两个网段信息为:40.0.0.0/24、50.0.0.0/24。
2.2 自治系统内的IGP路由策略
在AS100中当路由器C需要访问外网的网段时优先选择路径C~B;当路由器D需要访问外网的网段时优先选择路径D~A。
2.3 自治系统之间的EGP路由策略
AS100内部访问AS200中的网段20.0.0.0/24的时候优先选择路径B~E;而访问30.0.0.0/24的时候优先选择路径A~E。
AS200访问域AS100中的网段40.0.0.0/24的时候优先选择路径A~E;而访问网段50.0.0.0/24的时候优先选择路径B~E。
第3章策略部署
3.1 基本IGP配置
3.1.1 在AS200的路由器中启动OSPF路由协议
[RouterF]ospf 1 router-id 1.1.1.9
[RouterF-ospf]area 0
[RouterF-ospf-area0.0.0.0]net 1.1.1.9 0.0.0.0
[RouterF-ospf-area0.0.0.0]net 10.0.0.28 0.0.0.3
[RouterF-ospf-area0.0.0.0]net 20.0.0.0 0.0.0.255
[RouterF-ospf-area0.0.0.0]net 30.0.0.0 0.0.0.255
上边脚本在AS200中的路由器F上启动了OSPF,并将该路由器所连接的网段规划到OSPF的area0中。
[RouterE]ospf 1 router-id 1.1.1.1
[RouterE-ospf]area 0
[RouterE-ospf-area0.0.0.0]net 1.1.1.1 0.0.0.0
[RouterE-ospf-area0.0.0.0]net 10.0.0.28 0.0.0.3
上边脚本在AS200中的路由器E上启动了OSPF,并将该路由器所连接的网段规划到OSPF的area0中。
3.1.2 在AS100的路由器中启动IS-IS路由协议
[RouterA]isis 1
[RouterA-isis]net 49.0001.0010.0100.1002.00
[RouterA-isis]is-level level-2
[RouterA-isis]silent-interface loop 0
[RouterA-interface]interface g3/0/1
[RouterA-interface]isis enable 1
[RouterA-interface]interface ether 4/1/3
[RouterA-interface]isis enable 1
[RouterA-interface]interface ether 4/1/0
[RouterA-interface]isis enable 1
上边脚本在AS100中的路由器A上启动了IS-IS,并将该路由器所连接的网段规划到IS-IS的area49.0001中并且位于IS-IS的level-2区域中。
[RouterB]isis 1
[RouterB-isis]net 49.0001.0010.0100.1003.00
[RouterB-isis]is-level level-2
[RouterB-isis]silent-interface loop 0
[RouterB-interface]interface g1/0/1
[RouterB-interface]isis enable 1
[RouterB-interface]interface ether 3/0/0
[RouterB-interface]isis enable 1
[RouterB-interface]interface ether 3/0/3
[RouterB-interface]isis enable 1
上边脚本在AS100中的路由器B上启动了IS-IS,并将该路由器所连接的网段规划到IS-IS的area49.0001中并且位于IS-IS的level-2区域中。
[RouterC]isis 1
[RouterC-isis]net 49.0001.0010.0100.1005.00
[RouterC-isis]is-level level-2
[RouterC-isis]silent-interface loop 0
[RouterC-interface]interface loop 1
[RouterC-interface]isis enable 1
[RouterC-interface]interface ether 14/0/15
[RouterC-interface]isis enable 1
[RouterC-interface]interface ether 14/0/0
[RouterC-interface]isis enable 1
上边脚本在AS100中的路由器C上启动了IS-IS,并将该路由器所连接的网段规划到IS-IS的area49.0001中并且位于IS-IS的level-2区域中。
[RouterD]isis 1
[RouterD-isis]net 49.0001.0010.0100.1008.00
[RouterD-isis]is-level level-2
[RouterD-isis]silent-interface loop 0
[RouterD-interface]interface loop 1
[RouterD-interface]isis enable 1
[RouterD-interface]interface ether 2/2/0
[RouterD-interface]isis enable 1
[RouterD-interface]interface ether 4/2/0
[RouterD-interface]isis enable 1
上边脚本在AS100中的路由器D上启动了IS-IS,并将该路由器所连
接的网段规划到IS-IS的area49.0001中并且位于IS-IS的level-2区域中。
这个时候在两个AS中的IGP部署完毕。
在AS200的路由器E上使用命令display ip routing-table应该能看到通过OSPF从路由器F 上学过来的路由信息20.0.0.0/24和30.0.0.0/24。
在AS100中的路由器A/B上使用命令display ip routing-table能看到通过ISIS学过来的路由信息40.0.0.0/24和50.0.0.0/24。
3.2 基本EGP配置
3.2.1 在AS200的路由器中启动BGP路由协议
[RouterF] router-id 1.1.1.9
[RouterF]bgp 200
[RouterF-bgp-200]peer 1.1.1.1 as-number 200
[RouterF-bgp-200]peer 1.1.1.1 connect-interface loop 0
[RouterF-bgp-200]net 20.0.0.0 255.255.255.0
[RouterF-bgp-200]net 30.0.0.0 255.255.255.0
上边脚本在AS200中的路由器F上启动了BGP,和AS200中的路由器E建立IBGP相邻关系,并将网段20.0.0.0/24和30.0.0.0/24注入BGP中。
[RouterE] router-id 1.1.1.1
[RouterE]bgp 200
[RouterE-bgp-200]peer 1.1.1.9 as-number 200
[RouterE-bgp-200]peer 1.1.1.9 connect loop 0
[RouterE-bgp-200]peer 10.0.0.2 as-number 100
[RouterE-bgp-200]peer 10.0.0.6 as-number 100
[RouterE-bgp-200]net 20.0.0.0 255.255.255.0
上边脚本在AS200中的路由器E上启动了BGP,和AS200中的路由器F建立IBGP相邻关系,和AS100中的路由器A/B建立了相邻关系。
3.2.2 在AS100的路由器中启动BGP路由协议
[RouterA] router-id 1.1.1.2
[RouterA]bgp 100
[RouterA-bgp-100]reflect cluster-id 100
[RouterA-bgp-100]peer 1.1.1.3 as-number 100
[RouterA-bgp-100]peer 1.1.1.3 connect loop 0
[RouterA-bgp-100]peer 1.1.1.3 next-hop-local
[RouterA-bgp-100]group i-bgp
[RouterA-bgp-100]peer i-bgp connect loop 0
[RouterA-bgp-100]peer i-bgp as-number 100
[RouterA-bgp-100]peer i-bgp next-hop-local
[RouterA-bgp-100]peer i-bgp reflect-client
[RouterA-bgp-100]peer 1.1.1.5 group i-bgp
[RouterA-bgp-100]peer 1.1.1.8 group i-bgp
[RouterA-bgp-100]peer 10.0.0.1 as-number 200
上边脚本在AS100中的路由器A上启动了BGP,和AS100中的路由器B/C/D建立IBGP相邻关系,和AS200中的路由器E建立了EBGP相邻关系。
[RouterB] router-id 1.1.1.3
[RouterB]bgp 100
[RouterB-bgp-100]reflect cluster-id 100
[RouterB-bgp-100]peer 1.1.1.2as-number 100
[RouterB-bgp-100]peer 1.1.1.2 connect loop 0
[RouterB-bgp-100]peer 1.1.1.2 next-hop-local
[RouterB-bgp-100]group i-bgp
[RouterB-bgp-100]peer i-bgp connect loop 0
[RouterB-bgp-100]peer i-bgp as-number 100
[RouterB-bgp-100]peer i-bgp next-hop-local
[RouterB-bgp-100]peer i-bgp reflect-client
[RouterB-bgp-100]peer 1.1.1.5 group i-bgp
[RouterB-bgp-100]peer 1.1.1.8 group i-bgp
[RouterB-bgp-100]peer 10.0.0.5 as-number 200
上边脚本在AS100中的路由器B上启动了BGP,和AS100中的路由器A/C/D建立IBGP相邻关系,和AS200中的路由器E建立了EBGP相邻关系。
在AS100中的两台出口路由器A/B做为路由反射器,为了避免AS100内部的BGP路由信息的环路将路由器A/B加入相同的BGP集群簇100中。
[RouterC] router-id 1.1.1.5
[RouterC]bgp 100
[RouterC-bgp-100]peer 1.1.1.2 as-number 100
[RouterC-bgp-100]peer 1.1.1.2 connect loop 0
[RouterC-bgp-100]peer 1.1.1.3 as-number 100
[RouterC-bgp-100]peer 1.1.1.3 connect loop 0
[RouterC-bgp-100]net 40.0.0.0 255.255.255.0
[RouterD] router-id 1.1.1.8
[RouterD]bgp 100
[RouterD-bgp-100]peer 1.1.1.2 as-number 100
[RouterD-bgp-100]peer 1.1.1.2 connect loop 0
[RouterD-bgp-100]peer 1.1.1.3 as-number 100
[RouterD-bgp-100]peer 1.1.1.3 connect loop 0
[RouterD-bgp-100]net 50.0.0.0 255.255.255.0
上边脚本在AS100中的路由器C/D上启动了BGP,和AS100中的路由器A/B建立IBGP相邻关系。
并将网段40.0.0.0/24和50.0.0.0/24注入BGP中。
到此该运营商网络的路由协议部署基本完成。
3.3 路由策略部署
3.3.1 在AS100的路由器访问AS200中网段的路由策略
要求:
AS100中的路由器C访问外网的网段时优先选择路径C~B;路由器D 访问外网的网段时优先选择路径D~A。
分析:
AS100中的路由器C/D在访问外网的时候是通过I-BGP学习过来的路径。
在本案例中C/D通过IBGP学习的路由的下一跳地址为A/B的loopback 0 的IP地址,所以这个时候只要通过IGP来控制到A/B的loopback 0 地址的路径即完成了对外网访问路径的控制。
(如果在本案例的AS100中建立IBGP邻居的时候没有使用命令:peer X.X.X.X next-hop-local;而是将ASBR的域外接口网段发布入IGP中,则通过IGP来控制到ASBR的域外接口网段路径即完成了对外网访问路径
的控制)
在本案例中由于IGP是IS-IS所有的链路的默认开销都是10。
为了使路由器C到路由器A的loopback 0 地址的路径优先选择路径C~B~A,需要将路径C~A的路径开销设置比路径C~B~A小。
同理为了使路由器D到路由器B的loopback 0 地址的路径优先选择路径D~A~B,需要将路径D~A的路径开销设置比路径D~A~B小。
配置如下:
[RouterA]interface eth 4/1/3
[RouterA-interface]isis cost 30
[RouterB]interface eth 3/0/3
[RouterB-interface]isis cost 30
在路由器A/B的出接口设置IS-IS的cost值只影响了AS100中路由器C/D到路由器A/B的网段单向路径
3.3.2 在AS100的路由器访问AS200中网段的BGP路由策略
要求:
通过BGP local-preference 控制AS 100内部访问20.0.0.1/24网段主走B-E链路,AS 100 内部访问30.0.0.0/24主走A~E链路;通过BGP MED属性控制从外域用户发送到AS 100 内的用户40.0.0.0 /24的流量主走A~E链路,发送到AS100内用户50.0.0.0/24的流量主走B-E链路。
分析:
(一)BGP local-preference属性在AS内部具有传递性,所以通过对特定网段前缀配置不同local-preference值来达到控制流量的目的。
在本案例中将AS100的ASBR路由器A/B中的BGP路由信息分为两种:在ASBR路由器A上,一为前缀30.0.0.0/24;二为包含前缀20.0.0.0/24的其余BGP路由条目;在ASBR路由器B上,一为前缀20.0.0.0/24;二为包含前缀30.0.0.0/24的其余BGP路由条目。
策略部署如下代码所示:
[RouterA]acl number 10
[RouterA-acl]rule 0 permit source 30.0.0.0 0.0.0.255
[RouterA-acl]route-policy local-preference node 10
[RouterA-route-policy]if-match acl 10
[RouterA-route-policy]apply local-preference 200
[RouterA-route-policy]route-policy local-preference node 20
[RouterA-route-policy]bgp 100
[RouterA-bgp]peer 10.0.0.1 router-policy local-preference import
[RouterB]acl number 10
[RouterB-acl]rule 0 permit source 20.0.0.0 0.0.0.255 [RouterB-acl]route-policy local-preference node 10 [RouterB-route-policy]if-match acl 10
[RouterB-route-policy]apply local-preference 200
[RouterB-route-policy]route-policy local-preference node 20
[RouterB-route-policy]bgp 100
[RouterB-bgp]peer 10.0.0.5 router-policy local-preference import
这个时候放在路由器C/D的BGP表里的关于网段前缀20.0.0.0/24的下一跳有一个为ASBR路由器B的loopback 0 的接口地址;而关于网段前缀30.0.0.0/24的下一跳有一个为ASBR路由器A的loopback 0 的接口地址;在ASBR路由器A的BGP表里关于前缀20.0.0.0/24
有两个下一跳,一个是通过E-BGP从AS200中的路由器E学过来的,另一个是通过I-BGP从AS100中的路由器B学习过来的,这个时候BGP选路是根据BGP local-preference来优先选择通过IBGP从AS100中的路由器B学习过来的路由。
同理在ASBR路由器B的BGP表里关于前缀30.0.0.0/24有两个下一跳,一个是通过E-BGP从AS200中的路由器E学过来的,另一个是通过I-BGP从AS100中的路由器A学习过来的,同样这个时候BGP选路是根据BGP local-preference来优先选择通过IBGP从AS100中的路由器A学习过来的路由。
这个时候在AS100中所有的路由器在进行BGP选路的时候如果是到网段30.0.0.0/24应该会优先选择ASBR路由器A为出口;如果是到网段20.0.0.0/24应该会优先选择ASBR路由器B为出口。
(二)BGP MED是用来影响AS的入流量的属性。
MED属性类比于IGP 中的metric值越小表明路径越优先。
在本案例中为了控制从AS200到AS100内的网段40.0.0.0/24的数据流量优先走路径E~A;而从AS200到AS100内的网段50.0.0.0/24的数据流量优先走路径E~B。
可以通过将AS100的ASBR路由器A传给AS200路由器E的BGP路由条目40.0.0.0/24的MED值小于AS100的ASBR路由器B传给AS200路由器E的该条目的MED值;可以通过将AS100的ASBR路由器B传给AS200路由器E的BGP路由条目50.0.0.0/24的MED值小于AS100的ASBR路由器A传给AS200路由器E的该条目的MED值来影响AS200到AS100网段40.0.0.0/24和50.0.0.0/24的流量路径。
策略部署如下:
[RouterA]acl number 20
[RouterA-acl]rule 0 permit source 40.0.0.0 0.0.0.255
[RouterA-acl]acl number 30
[RouterA-acl]rule 0 permit source 50.0.0.0 0.0.0.255
[RouterA-acl]route-policy MED node 10
[RouterA-route-policy]if-match acl 20
[RouterA-route-policy]apply cost 100
[RouterA-route-policy]route-policy MED node 20
[RouterA-route-policy]if-match acl 30
[RouterA-route-policy]apply cost 200
[RouterA-route-policy]route-policy MED node 30
[RouterA-route-policy]bgp 100
[RouterA-bgp]peer 10.0.0.1 router-policy MED export
[RouterB]acl number 20
[RouterB-acl]rule 0 permit source 40.0.0.0 0.0.0.255 [RouterB-acl]acl number 30
[RouterB-acl]rule 0 permit source 50.0.0.0 0.0.0.255 [RouterB-acl]route-policy MED node 10
[RouterB-route-policy]if-match acl 20
[RouterB-route-policy]apply cost 200
[RouterB-route-policy]route-policy MED node 20 [RouterB-route-policy]if-match acl 30
[RouterB-route-policy]apply cost 100
[RouterB-route-policy]route-policy MED node 30
[RouterB-route-policy]bgp 100
[RouterB-bgp]peer 10.0.0.5 router-policy MED export
这个时候从AS200访问AS100中的网段40.0.0.0/24优先选择路径E~A;访问网段50.0.0.0/24的路径优先选择E~B。
第4章方案点评
本文以典型的运营商双星型网络拓扑为模型,对业务需求进行抽象,形成比较完善的需求,应该说,本文中的路由策略部署要求比实际的运营网络要高,在真正的运营网络中,流量控制和协议部署的要求应该比本文的描述要简化。
这也是符合协议部署特点的,在一个网络中,只要能够保证业务需求,一般情况下网络管理员会选择最简单的方式来实现,这样一方面可以简化维护难度,同时可以降低设备负荷,使网络更加稳定、可靠。
本文按照:AS内部的IGP协议、AS内部的BGP协议、AS之间的BGP 协议的顺序,逐步对流量部署的需求和实现给予说明,并且在实现上合理的利用了各协议的参数和属性。
其中“AS内部的IGP协议”、“AS 内部的BGP协议”两部分属于通用规则,各厂商的实现也基本一致,但是“AS之间的BGP协议”由于涉及的BGP路由属性种类较多,而且由BGP属性所决定的路由信息选优策略比较复杂,各厂商的实现程度不同,而且有的增加了自己产品所特有的实现部分,所以,在AS 边界上的选路,可能由于所应用的产品不同,在转发结果上有差异。
本文给出的配置是最常用的配置,也是推荐使用的,由于BGP路由属性既可以在发布路由时赋值,也可以在接收到路由时赋值,所以应用路由策略对具体的路由条目进行属性赋值时也有不同的实现方式,我们建议采用“谁受益、谁赋值”的原则,在有流量需求的设备上进行路由策略配置,对路由属性赋值。
路由协议的部署和应用是十分灵活的,实现方式也多种多样,本文给出了典型组网的常用配置,希望能够对维护工程师有一定的借鉴意义。