• 文章搜索:
  • 目录

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    循序渐进学习OSPF

    作者:  |  上传时间:2009-11-18  |  关键字:

    /朱皓

    OSPF是目前使用最广泛的IGP协议,也是一个数通领域工作者的必修科目。虽然学习的人很多,但是因为OSPF协议的复杂,学习起来非常吃力。而且经常有老虎吃刺猬,无从下口的感觉。本文试图对OSPF的学习过程进行一个整理,希望能够对学习理解这一重要协议有所帮助。

    RFC2328OSPFv2最权威的资料,这篇RFC244页之长,在IETF的几千篇文档中也是属于超长超大的,可见其复杂程度。笔者认为对于OSPF的学习还是要循序渐进,在不同的阶段选择不同的关注点。当然对于逻辑思维很强、有很深厚数理基础的同学可能直接看RFC效率更快,每个人还是要根据自己的情况选择合适的学习方法。本文是面对如笔者一般普通的学习人群。

    对于大多数人而言,学习OSPF总是经过这样几个过程:了解、熟悉、掌握、精通。而对于数通领域的初涉者,我认为还需要在了解OSPF之前再做一些准备。

    1           入门之前

    OSPF是一种动态路由协议,所以需要首先知道什么叫路由,什么叫路由协议,什么又是动态路由协议,设备是如何通过路由来执行数据转发过程的。这些东西在看OSPF之前是首先要搞清楚的问题。我个人强烈建议在学习OSPF前,首先学习RIP。通过对RIP协议的学习可以明白路由的构成要素、路由的匹配、路由如何指导转发的过程、包括路由协议的相关概念(比如路由的传递、路由计算和路由选择、路由收敛等)。

    RIP是最传统的IGP协议,上手比较快,也容易理解。学习了RIP后可以明白RIP的缺点在哪里,这样学习OSPF的时候就更容易理解,一些机制的提出实际是为了解决相关的一些问题,比如环路、距离的度量等等。

    入门之前的准备工作很重要,否则在学习OSPF的时候,很容易在一些基本问题上耗费很多时间而不知其所以然。学习OSPF并不是一个死记硬背的过程,如果那样的话,会越学越糊涂。

    学习基本技能的几种途径包括,网络上的各种资料,其它同事或朋友的帮助,H3C公司认证培训教材,当然还少不了《TCP/IP路由:卷一》的相关章节。此外访问H3C技术支持论坛http://forum.h3c.com可以获得很多第一手的资料,还有职守的工程师在线解答典型问题,也是不错的学习途径。

    2           了解OSPF

    做好准备就可以开始阅读一些基本的OSPF教材了。刚开始的时候会发现有大量的新概念搞得人头很大,看起来也很容易就犯困(记得我当年就是这个样子)。OSPF经典的教材很多,但往往经典的东西都试图把所有的问题都讲到,其实这不一定是个好主意。对于初学OSPF的人而言,找个合适的课程听一堂课作为学习OSPF的第一步会轻松的多。H3C认证培训课程里有OSPF的相关课程,课前粗粗的看一遍胶片,然后就去听吧。很多同学因为这样那样的事连一堂完整的OSPF课程都没听过,这很可惜。要知道在外面想系统的听人给你讲讲OSPF是一件多么困难的事!第一次听OSPF不需要全部听懂,搞清楚一些问题就行了。什么是OSPF?和RIP有什么不同?OSPF有什么好处?OSPF的基本原理是什么?

    OSPF协议并不传递路由条目,而是传递链路状态信息,并根据该信息来计算路由。这样一个最最基本的OSPF问题当年可是困扰了我很久。一条5LSA不就是携带一条外部路由么,怎么又说LSA并不是路由呢。相信直到今天同样的问题也会困扰很多OSPF的初学者。在了解OSPF的这个阶段,不用去关心OSPF到底是如何计算出路由的,也用不着去关心OSPF都有哪几类LSA,每类LSALink ID是什么意思。这个阶段关注的应该是OSPF大面上的东西,比如OSPF是要建邻居的,通过邻居交换链路信息达到链路信息数据库的同步、划分区域的目的、OSPF对于不同链路的开销进行比较的基准等等。

    这个阶段要开始在设备上配置OSPF,其实OSPF的配置并不复杂,只要花几天时间做几个小实验,就能弄清楚前面所学习到的那些理论知识到底是怎么回事了。

    到这里的时候一切都还是很简单的,现在可以跟那些对OSPF完全不懂的朋友们侃侃关于链路信息的概念了!不过心里要很清楚,后面的路还很远。

    这个时期建议把认证培训课程里几个版本的OSPF胶片都找出来看一遍,试着跟随胶片的思路去了解OSPF吧。

    3           熟悉OSPF

    熟悉OSPF的过程,是需要对OSPF协议的整个过程进行细致一点的研究了。从OSPF的网络类型开始看起,网络类型的不同决定了hello发送方法和周期的不同,这些当然就影响到邻接关系的建立。邻接关系是如何建立起来的?需要去研究邻接的状态机了。邻接的建立目的是为了交换LSA,那么如何交换,如何保证交付。对于OSPF的区域问题,要知道所有类型的区域划分目的是什么,比如“NSSA区域既允许区域间LSA也允许外部LSA的泛洪,那么NSSA的意义到底是什么这类的问题。既然说到区域,当然要知道虚链路,搞清楚虚链路和IP隧道的区别在哪里。你需要知道OSPF的认证、OSPF的聚合、OSPF中的路由引入等等,总之操作手册中关于OSPF部分的所有命令都要去试一遍,看看到底有什么用,是干什么的。

    在这个阶段,前进的每一步都需要通过做实验来加深加快理解,很多问题不是躺在床上靠脑袋想能够想明白的。做实验的时候打开debug信息是一个好主意,虽然这东西有时候看的人眼晕,不过你可以在屏幕快速翻滚的时候借机喝口水啥的,也算是休息一下头脑。建议从这个时候起要养成做笔记的好习惯,笔记这个东西是可以温故而知新的,过些日子回头再看,保证能看出其中的问题来,或者看出新的疑问来;另一方面,查找笔记总是能最快的找到你要的答案。

    在这个阶段如果你有机会去听一堂OSPF的培训。相信这次你会听的津津有味,天啊,你终于知道那个在台上念念叨叨的家伙在说些啥了。这次培训的效果是最好的,基本上讲课全部的内容都对你有用,这时候以前积累的问题就狂问吧,即使你所有的问题都已经扔给导师了,还是可以再问一遍,有的时候问东的结果会引出西来,这样也许又能多学点东西。

    熟悉OSPF要花多久?因人而异,关键还看你用了多少时间,做了多少实验。保守的估计三个月怎么也够了。在这个阶段,各种流行的胶片都可以找出来看看;Jeff Doyle的《TCP/IP路由:卷一》里关于OSPF的部分也起码要看过一遍,其中有些部分还是可以跳过,什么时候都别忘了你的重点在哪里。

    4           掌握OSPF

    掌握的意思是终于可以少犯或者不犯错误了,起码说关于OSPF的话题,很少或者不会有什么太明显的错误。对于开发或者测试OSPF的技术工程师,熟悉OSPF是远远不够的,你必须要走的更远些。

    是时候去看那些报文的结构了,相信这个时候再去看各种报文的结构会容易很多。随便画一个简单的拓扑,你必须要知道每个路由器会产生那些LSA,它的LSDB是怎样的。看LSA结构的时候要结合SPF路由计算的过程。这个过程是OSPF的核心问题,终于要揭开关底BOSS的神秘面纱了。当然了,前提是你要做好打BOSS的心理准备,这个过程虽然充满乐趣,但却很容易头晕脑涨。结合实例来看会比较好些,你可以组建一个简单的OSPF网络,来看看各个设备上的LSDB是否能看明白。有很多好的文档也能指导你更快的理解。对于LSALSDB,本刊里后面部分有几篇相关的文档,那篇关于SPF计算的文档尤其值得一读。

    这个阶段需要去了解一些比较细节的东西了,比如各种LSA的属性及标志性字段啦,LSA的更新老化机制啦等等,是时候看RFC了。好好的看一遍RFC2328是必要的,而且在今后的日子里,你可能会经常的翻看这篇文档。RFC虽然非常的详细,但RFC毕竟只是一个规程,在具体的实现上,各个厂商还是有很多不同的。而且很多支持的新特性,不一定会在RFC中提及,所以产品新特性的介绍是另一个最重要的文档。光知道一个厂商的实现还不行,最起码要知道主要厂商的OSPF实现。对于市场主流厂商的研究是一个慢慢积累的过程,但是作为一个技术人员,不了解这些显然是不可能的。新特性会牵扯到很多问题,OSPF作为一个成熟使用多年的协议,特性也非常多,要花不少时间。

    什么叫做掌握OSPF,没有一个定义。在这个阶段中可能有很多人,有的人掌握的好些,有些人掌握的差些。这个阶段其实已经可以说是学习OSPF的一个结尾了,更深层次的研究有时候需要的不单是理论上的东西,还包括经验和经常性的实践。

    5           精通OSPF

    精通OSPF就是大牛了,我觉得起码要几个方面都做到吧。一个是对OSPF的协议非常清楚,包括几乎所有的细节。一个是在OSPF的疑难解答方面,不说来一个答一个,起码立刻能找到分析问题的方法,找到并正确定位问题。第三就是对协议的发展要心中有数,网络技术的不断发展,对路由协议也提出了各种各样新的要求,并且对协议进行着不断扩展。作为一个精通OSPF协议的人,需要关注这些新技术的发展方向这是理所当然的。

    精通OSPF并没有指南,不是看过哪些书,过多少年就一定能达到了。甚至是不是精通了OSPF,只是自己给自己的一个定义。不过,我想,如果一直向精通OSPF这个目标不断迈进,永不停歇的人,一定会成为一个真正的高手。