OSPF多实例.docx
- 文档编号:10816383
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:12
- 大小:81.70KB
OSPF多实例.docx
《OSPF多实例.docx》由会员分享,可在线阅读,更多相关《OSPF多实例.docx(12页珍藏版)》请在冰点文库上搜索。
OSPF多实例
华为三康技术有限公司
Huawei-3ComTechnologiesCo.,Ltd.
文档编号DocumentID
密级Confidentialitylevel
内部公开
文档状态DocumentStatus
共11页Total11pages
Draft1.00
OSPF多实例
拟制
Preparedby
测试中心
Date日期
2005-02-28
评审人
Reviewedby
Date日期
批准
Approvedby
Date日期
华为三康技术有限公司
Huawei-3ComTechnologiesCo.,Ltd.
版权所有XX
Allrightsreserved
修订记录RevisionRecord
日期
Date
修订版本RevisionVersion
修改章节
SecNo.
修改描述
ChangeDescription
作者Author
2005-02-28
1.00
All
initial初稿完成
李劲松&02159
目录
1前言5
1.1预备知识5
1.2路由协议的《进化论》5
2OSPF多实例6
2.1OSPF多实例相关名词介绍6
2.1.1进程(Process)6
2.1.2多实例(Instance)6
2.1.3域(Domain)7
2.2BGP和OSPF7
2.2.1普通服务7
2.2.2VIP服务7
2.2.3存在的问题9
2.3OSPF的后门链路---Sham-link10
2.3.1Sham-link的作用10
2.3.2Sham-link的配置注意事项与具体实现11
2.3.3Sham-link与虚链路12
3配置案例12
4留给读者13
5附录13
图目录
图15
图28
图39
图410
图511
图612
前言
本文是根据李劲松---李大师的PPT《OSPFMulti-instance》改编而成。
预备知识
阅读本文之前,请先熟悉一些MPLS-L3VPN的基础支持,包括:
✧PE和CE的概念。
✧OSPF协议。
✧MPLS-L3VPN的基本原理。
✧VPNsite(其实就是相当于一个多实例)
✧MBGP(BGP进化后的结果---多协议BGP)
典型的MPLS-L3VPN拓扑:
图1
路由协议的《进化论》
达尔文的《进化论》告诉我们一个原理---适者生存。
当MPLS-L3VPN技术日渐成熟的时候,各个路由协议为之也要做出相应的进化或者改变(不变会被淘汰的^_^)。
我司设备目前支持的主要路由协议为:
静态路由,RIP,OSPF,BGP。
(IS-IS本文不涉及所以暂不介绍),这里我们先简单说一下各个路由协议的进化情况:
✧静态路由、RIP都是标准的协议,但是每个VRF运行不同的实例。
相互之间没有干扰。
与PE的MP-iBGP之间只是简单的IMPORT操作。
✧EBGP也是普通的EBGP,而不是MP-EBPG,只交换经过PE过滤后的本VPN路由。
✧OSPF则做了很多修改,可以将本site的LSA放在bgp的扩展community属性中携带,与远端VPN中的ospf之间交换LSA。
每个site中的OSPF都可以存在area0,而骨干网则可以看作是superarea0。
此时的OSPF由两极拓扑(骨干区域+非骨干区域)变为3级拓扑(超级骨干区域+骨干区域+非骨干区域)。
从上面我们可以看出静态路由、RIP、BGP这些实现相对简单的路由协议变化并不是很大(当然BGP的一个新功能:
用MBGP传递VPN路由也算变化不小吧,这里我们就不讨论了先)。
OSPF由于自身算法的太过于精妙,所以它的变化也是比较大的,不过最根本的原因还是适应网络的需求,毕竟科技以人为本啊。
OSPF多实例
OSPF多实例相关名词介绍
进程(Process)
OSPF运行是依靠运行自身的SPF算法,从而形成一个本地的链路状态数据库。
不同的接口可以运行多个SPF算法从而形成多个链路状态数据库,我们把每个链路状态数据库里所涉及的接口、LSA等叫做在一个OSPF进程里面。
不同的进程的链路状态数据库是完全隔离的,但是可以共同拥有一个路由表(可以通过再发布引入)。
多实例(Instance)
传统路由器只有一张路由表,但是为了适应MPLSVPN,路由器不得不在自身上再模拟一个或者多个虚拟路由器,每个虚拟路由器有独立的路由表(没有特殊处理是不可以互访问的)。
每个虚拟路由器和它自己相关的路由表、接口等是存在于一个多实例的。
多实例这个概念可以说基本上是为了MPLSVPN而创造出来的,但是现在它也有别的特殊的应用,比如多实例的L2TP,或者多实例组播应用(我们不必用IGMPV3也可以把不同的源但是相同组的组播流分开)等。
只要你肯想肯定还有许多未被挖掘的宝藏。
域(Domain)
域这个概念和WINDOWS2000里的域的概念比较象,或者说可以和AS的概念比较,在一个域内的OSPF可以交互LSA的详细信息,不同域的OSPF只可以交互外部LSA。
BGP和OSPF
普通服务
MPLSL3VPN网络的路由传递全是依靠BGP的扩展属性传递的,对于一般的路由协议来说(比如静态,RIP等)BGP所需要做的只是简单的再发布工作,没有什么技术含量。
VIP服务
OSPF是BGP的VIP客户,当OSPF需要通过扩展BGP在MPLSL3VPN网络中传递路由的时候,BGP除了会把OSPF的路由发布出去,同时会利用自己的扩展团体属性记录OSPF路由的一些信息。
(这么做的原因也是由于OSPF本身设计的思想所导致,这个协议需要每条路由的尽量详细信息。
)
BGP是如何提供VIP服务给OSPF的呢?
这个还要从RT说起,RT表示路由器接受路由的喜好,当然发送路由更新的时候可以设置这个“喜好”了。
现在RT除了加上了这个“喜好”,而且还对OSPF有特殊的服务,RT后面加了一些OSPF路由信息,在RT的字段有一部分是这样的:
图2
如图2是BGP扩展团体属性与OSPF相关的部分,其中类型编码为0x0306(长度16bit),接下来是OSPF的区域号(32bit),然后是OSPF路由类型(8bit),最后一部分是选项字段(一般用来表示外部路由的度量类型)。
我们现在具体解释一下路由类型这个字段:
✧第1类LSA与第2类LSA的路由类型为1或者2
✧第3类LSA的路由类型为3
✧第5类LSA的路由类型为5
✧第7类LSA的路由类型为7
✧Sham-link端点地址路由类型为129
这里Sham-link后面会介绍到的,由于MPLSL3VPN的路由是通过BGP发布出去的那么最起码的要求是这条路由要在路由表里,当PE要发布这条路由的时候它会根据产生这条路由的LSA类型来填充路由类型这个字段,当另外一个PE的接收到某条被发布的OSPF路由后,如果它的下游也是同一个DOMAIN内的OSPF区域的话那么可以通过再发布把路由传播下去。
(但是路由类型1,2的会被转化成LSA3,其它路由类型到LSA之间的转换不会变的)
我们可以发现常见的LSA变少了,类型4的LSA没了,为什么呢?
(欢迎大家讨论,以下是我的看法:
由于BGP的任务是发布路由给PE,而且这条被发布的路由是要在路由表里的,但是OSPF的LSA4只是通告一下ASBR的位置,并不会产生路由,所以发布它有点难啊.....)但是没有类型4的LSA路由器对于类型5和类型7的外部路由如何正确的算出树呢?
请看下图:
图3
如图3所示,假如与CE-B连接的区域1里某个路由器发布了一条外部路由(LSA5)那么PE-C发布的时候只会发布这条LSA5产生的路由,相关的LSA4是被忽略的,但是这条路由到了PE-D的时候,PE-D如果需要把它再发布到OSPF域的时候它会把产生者的地址写成自己,然后再发布相关的LSA5出去,同时CE-E会产生一个相应的LSA4(认为PE-D是ASBR),这样一切就圆满了^_^。
存在的问题
路由协议最怕的就是产生路由环路,OSPF区域里传递路由为了保证不产生环路规定:
1所有区域必须和区域0相连;2本身用SPF算法。
但是MPLSL3VPN网络中改变了这种拓扑结构,而且在跨越MPLS骨干网后一般都是类型3,5,7的LSA,这三种LSA实际上在OSPF运算产生路由的时候和DV(距离矢量)算法很接近,所以很有可能产生路由环路,比如下图:
图4
如图4(一个典型的CE双归的模型)当PE-A分别与PE-B,PE-C建立MBGP邻居后,当PE-A传递了一个类型3或者5的路由给PE-B与PE-C,PE-B与PE-C都会根据相应的LSA产生路由,但是同时就有可能PE-B产生的LSA通过CE-A传递了给PE-C然后由于路由优先级与再发布的问题,导致PE-B的路由表错误或者把这条路由又发给了PE-A,这样环路就形成了。
解决办法:
首先我们先介绍一下如何避免类型3的LSA产生环路,在OSPF头部的选项字段中有一个DN位,当PE收到某条LSA3的并且发现DN位有置位的时候,这个PE在运行SPF算法的时候会忽略这条LSA。
(CISCO书上说会忽略此LSA,同时不能发布到BGP中,可是SPF算法已经忽略它了,根本就产生不了路由,怎么会发布到BGP中呢?
?
欲知答案,请参看附录^_^)。
接下来说一下关于类型5,7是如何避免环路的。
方法和类型3用的方法类似,也是在某个地方做个标志,类型5,7的LSA都有TAG选项,当PE发布一条OSPF外部路由到VPN网络中,PE会根据这条外部路由的信息(AS号等)算出一个唯一的VPN-TAG值并且加到类型5,7的LSA里面去,当PE收到一条类型5或者7的LSA的时候如果发现有一样的VPN-TAG值的话,那么该LSA也会被忽略的。
OSPF的后门链路---Sham-link
Sham-link的作用
好的网络规划设计者都会考虑到网络的冗余、备份问题,一般情况下MPLS-L3VPN网络中PE之间存在备份链路,同时相同的VPN组之间可能也有备份链路的存在,比如下图:
图5
如上图5CE-A与CE-B之间还有一个备份链路相连,问题也就来了,由于域内路由的优先级大于域间路由的优先级,所以CE-A会通过它与CE-B直接相连的链路到达另外一个VPN,而且PE也会忽略自己的BGP邻居发布过来的VPN路由。
一般情况下为了网络管理与排错我们尽量会把CE-A与CE-B之间的备份链路作为“后门”链路,只有当MPLS骨干网络出现了问题数据才会通过“后门”链路转发,为了适应这种要求Sham-link产生了。
通过Sham-linkMPLSL3VPN骨干网的PE之间可以扩散LSA1或者LSA2。
Sham-link的配置注意事项与具体实现
首先我们看一个Sham-link的配置简例:
{bgp100
undosynchronization
group1internal
peer1connect-interfaceLoopBack0
peer104.0.0.3group1
#
ipv4-familyvpn-instancevpna
network192.200.3.0
network200.1.1.1255.255.255.255
import-routeospf100
undosynchronization
ospf100vpn-instancevpna
import-routebgp
area0.0.0.2
network192.200.3.00.0.0.255
sham-link200.1.1.1104.0.0.3(用LOOKBACK地址)}
配置Sham-link一般有3条注意事项:
✧Sham-link的端点地址(32位)属于某个特定的多实际例
✧将该端点地址在BGP的多实例下通告
✧该端点地址不可以在相应的OSPF实例中发布
我们先来讲解一下具体实现,然后在对每个注意事项进行解释。
Sham-link与虚链路实现的手段基本一致,Sham-link在两个端点可达后,然后建立OSPF邻居,通过邻居关系把相应的LSA发送过来。
现在我们来回忆一下虚链路的实现,我们在配置虚链路的时候,一般都会用到命令“vlinkx.x.x.x”,这里的x.x.x.x是一个RID,也就是一个路由器的名字,也就是说在路由表里可以没有这个地址。
那么Sham-link的端点地址可以不通过BGP发布吗?
(答案是否定的,虚链路的虽然可以只配置对端的RID,但是这是因为本地的路由器对该区域的LSA1、LSA2都了如指掌,它完全有能力叠代的正确的出口。
而Sham-link这个功能本身就是为了传递LSA1与LSA2如果不在BGP中发布端点地址,那么就好比OSPF-NBMA网络不配PEER一样)
最后我们说一下注释事项的第三点,因为一般情况下我们建立Sham-link是通过虚接口LOOKBACK建立的,而草案上说Sham-link实际上是一种地址借用的特殊情况,所以一旦把端点地址发布到OSPF里,这个时候我们的LOOKBACK接口就变成了一个启动OSPF的接口,物理接口收到的HELLO数据会送到这个LOOKBACK接口,这样就破坏了草案上说的地址借用的情况。
路由器对HELLO数据包的识别也会有错误。
Sham-link与虚链路
Sham-link与虚链路有很多表面的类似的地方,都是为了连接2个隔离的区域并且提供该区域的详细路由信息,同时也都是利用单播来建立邻居关系。
但是我们在实际中应用它们的地方并不是很多,或者希望最好不要用到它们。
配置案例
以下是一个简单的配置例子(这里只介绍PE上的配置,P设备和CE的配置就不介绍了):
✧首先配置一个多实例:
ipvpn-instancevpna
route-distinguisher100:
1
vpn-target100:
1export-extcommunity
vpn-target100:
1import-extcommunity
✧然后配置BGP
bgp65001(别忘了添加邻居)
ipv4-familyvpn-instancevpna
import-routedirect
import-routeospf1
✧接着配置OSPF多实例
ospf1vpn-instancevpna
import-routebgp
import-routedirect
area0.0.0.1
network201.1.1.20.0.0.0
sham-link1.1.1.12.2.2.2
留给读者
请问下面这个拓扑哪里不合理,为什么?
如何修改?
图6
附录
答案:
CISCO与我司的再发布的实现是不同的,我司的实现方法是只有IP路由表里有具体的OSPF路由,那么它才可以被发布到其它的协议当中去。
而CISCO的实现是把整个可用LSA都发布到其它协议当中。
这两种实现方法各有什么好处?
各有什么缺点?
请大家思考。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OSPF 实例