通信人家园
标题: 【华为原创连载】问鼎OSPF系列(8月30日31#更新7) [查看完整版帖子] [打印本页]
时间: 2015-7-18 21:54
作者: nanyou2009boy
标题: 【华为原创连载】问鼎OSPF系列(8月30日31#更新7)
【华为原创连载】问鼎OSPF(1)-互联Route群雄争,OSPF 出横空
序
互联Route群雄争,OSPF 出横空
初涉路由显神通,民主治军四方拥
完善机制沐邻里,帅将兵民如父兄
连绵网络拔地起,划区而治应运生
内外疾行烽火令,锦绣山河尽囊中
因地巧施张良计,宏图霸业指日统
联手VPN智破环,塞外扬威俱相荣
千古一帝终大成,路由天下群雄颂
自太古之初,阿帕初立,互联网便一片欣欣向荣,尤以信息时代的来临,更若沸水燃薪,呈现出了爆炸式的发展。在这个风起云涌的时代,各方协议厉兵秣马,以期在这迅猛的潮流之中占得一席之位,亦如路由领域。
阿帕历开元30年,互联网中,链路谷内。
在山谷之中坐落着一处古老的推演阵法。那阵法篆刻的错综杂乱,无章无法,无形无相,若常人看了一眼之后,便如入瘴雾之中,心生迷惘,深陷其中却无法自拔。现下这凶险异常的阵法前却端坐着两个人。
当中一人,衣着白衫,眉宇间尚有一丝稚气未脱,却依然掩盖不住这少年的丰神俊朗。而另一人,蓝发碧眼,鹰钩鼻挺,看样子像个来自异域边疆的中年长者。
突然,在这繁复的阵法之中,隐隐有几处发出了微弱的亮光,似是心有灵犀,遥相呼应。随着时间的流逝,这光点越来越亮,光点间则围绕当中一处形成了一条条通路,通路中却是游离着流光溢彩,煞是好看。及至最后光芒大作,将这空寂的山谷映射的亮如白昼。
“哈哈,师父,我成功了!我成功了!我以乾位为根,坎、艮、震、巽四位为叶,这路由就通了!”只见那白衣少年甚是欣喜,坐直的身子腾的一跃而起,对着眼前的阵法手舞足蹈。
“嗯,不错,孺子可教。SPF心法复杂难懂,你却只在我门下修习了三载,便可融会贯通,果然悟性颇高,” 中年长者微微颔首,又对他道,“徒儿,如今你已尽得SPF精髓,现在可下山去了。”
“啊?”白衣少年张大了嘴,楞了半天,刚刚满脸的兴奋劲一扫而空,取而代之的是一丝茫然之色,一如他初时演练此阵法时的模样。
中年长者看了他一眼,席地而起,“三年前,你在这山谷之中跪了三天三夜,希望我教你SPF心法。当初我被你那颗赤子之心打动,收你为徒。”他又转身望向了远方,接着道:“前几日,我听说路由老祖发布了群英令,要在路由圣山开群雄大会。现下你既已习得心法,亦可前去,该是你一展胸中抱负的时候了。”
“是!师父!”白衣少年默然半晌,遂点头道。眼下离别在即,他又想起这三载与师父相处的种种,一股忧伤的情绪油然而生,霎时泪水噙满了双眸。
“师父,您放心,我定让SPF心法名扬天下!”
“名利皆虚妄,为师有你这一徒儿,足矣。”
“师父,三年了,我还不知道您的名号呢。”
“Dijkstra。”
“敌克撕扯,敌克撕扯,好奇怪的名字。师父,我的名字叫……”还没等少年说完,那中年长者已消失在茫茫夜空之中。
1 路由老祖召集群英令 各方豪杰齐聚圣山 翌日清晨,白衣少年出了链路谷,便一路向西赶向路由圣山,5日后到达,刚刚赶上路由老祖召集的群英会。白衣少年环顾四周,一鹤发童颜老者位列主桌正中位,想必就是万人敬仰的路由老祖。分坐老祖旁边的二人,一人古板严肃,一人矮小精明,当是路由界著名的静态路由和RIP协议了。
“各位,今日召集大家前来,只为一件事,”老祖举杯而起,“现如今互联网发展太快,路由规模也随之越来越大,所以在此愿与各位共襄盛举,开路由盛世。”
“咳,咳,本王自太古之初便随老祖开创路由而来,一路倾心戮力而为,治下的路由莫不稳定。当此盛世之时,本王愿尽绵薄之力。”静态路由道。
“静态路由,我知道你为人谨慎,但事事亲力而为,也会力不从心。现下你自己的一亩三分田都快顾不上来了吧?”说话的是RIP。静态路由被他呛得脸色一会青一会白,奈何说的都是事实,却也无话可驳。RIP见静态路由无话可说,便洋洋得意的道:“老祖,本王倒是可以多管一些路由。我不会像静态路由一样,每条路由都需自己配置,如果路由很多的时候,定是灾难。老祖,你也知道我的传声心法,管路由可容易多了。”
江湖小贴士: 1、 什么是静态路由
静态路由是路由界的老前辈,见证了整个路由界的风云变幻。静态路由以手工配置路由的方式进行管理,当网络的拓扑结构或链路的状态发生变化时,再手工重新去修改路由表中相关的静态路由信息。使用静态路由的好处是配置简单、可控性高,在网络总不会产生额外的更新报文。但是静态路由不适用于大型和复杂的网络环境,一方面,网络管理员难以全面地了解整个网络的拓扑结构;另一方面,当网络的拓扑结构和链路状态发生变化时,路由器中的静态路由信息需要大范围地调整,这一工作的难度和复杂程度非常高
2、 什么是RIP协议
RIP出生于名门世家,是Xerox公司在20世纪70年代开发的,是IP网络所使用的第一个动态路由协议。RIP在互联网界开启了动态路由协议的时代,在互联网之初曾经对网络的路由管理作出了巨大贡献。RIP是一种典型到的基于距离矢量的内部网关协议(IGP),属于应用层协议,并使用UDP作为传输协议。然而RIP又有很多不完善的地方,例如以跳数作为度量标准,最大跳数为15跳等等。因此很多人认为它将会而且正在被诸如OSPF和IS-IS这样的路由协议所取代。 2 朝堂上与RIP激辩 白衣少年脱颖而出 “哼…..”人群之中发出一声轻蔑。
“谁!有谁不服!”RIP睥睨着下首众人,“本王纵横路由界数十载,凡我所过之处,莫不顺从归我治下!”这话说的倒是事实,在互联网初期,RIP依靠他那套简单的传声心法,将路由倒是管理的井井有条。其间,虽然因为自身心法问题,出现了一些路由环路的事故,但后来都通过研摩出来的一些改进措施,比如水平分工、毒性逆转、触发更新等,将这些事故解决了。不过,此一时彼一时,如今互联网发展如此迅猛,路由无论从距离,还是数量来说,都会呈现几何式的增长,他那套还能行吗?路由界很多人都知此点,但自身力量有限,只能沉默不语。
“RIP前辈这话说的不假,RIP协议通过简单的距离矢量算法,的确比静态路由前辈手工配置路由高明了很多。但是么,这世上有什么协议能是完美无缺的呢?”人群之中施施然走出来一位翩翩美少年,打破了这一刻的沉寂。
“哦?”RIP那精明的双眼中闪过一丝厉色,“那你倒是说说RIP协议有哪些缺点?”
“既然RIP前辈这样说,那我就恭敬不如从命了。”那美少年便是师从Dijkstra的白衣少年。只见他一边健步如飞,以指代笔,在地上绘出一张张网络图,一边向众人耐心讲解,不一会就道出了RIP协议的三个短板。
1、依照传闻进行路由更新和路由选择。
距离矢量协议依照传闻进行路由的更新和路由的选择。这种情况下路由器并不了解整个网络的拓扑,只知道到达目的网络的距离,以及到达目的网络应该走哪个方向或者哪个接口。如图1所示,R2收到了来自R1的路由通告(传闻),此时R2可以知道经过R1可以到达1.1.1.0/24网络,花费是1跳 ,除此之外R2不知道其他的信息,即使这个通告因为某种原因已经是错误的了,R2依然固执的认为经过R1可以到达1.1.1.0/24网络,花费是1。这是导致RIP网络容易产生路由环路的最根本原因。
图1 RIP依照传闻进行路由更新和路由选择
2、RIP以跳数(Hops)作为度量值,虽然简单,但是事实上是不够科学的。
如图2所示:R1去往R5的路径有两条:经过R2的这个路径有2跳,但是带宽仅为1.544M;经过R3的这个路径有3跳,但是带宽却很大,为千兆链路。按照RIP的度量标准,一定会选择经过R2的这一条路径,而事实上这条路径的链路带宽并不是最优的。这是导致RIP网络带宽利用率低下,不容易进行QoS管理的根本原因。
图2 RIP以跳数(Hops)作为度量值
3、最大跳数15的设定限制了RIP网络的规模。
为了防止RIP路由在网络中被无限泛洪从而跳数累加到无穷大,RIP规定:路由的最大跳数为15跳,也就是如果度量值大于等于16跳则被视为路由不可达。最大跳数的设定虽然解决了度量值技术到无穷大的问题,但是却也极大地限制了RIP所能支持的网络的规模。
3 SPF与LSDB勾勒IGP蓝图 路由领域开启新格局 “嘿嘿,你这说的倒是大差不差,”RIP对着那白衣少年皮笑肉不笑的道,心下却震撼于他竟对RIP协议了解的如此之深,而且在场的大部分人应该都是这样的感受。路由老祖召集这群英令,无非是对这越来越大的路由疆界重做分配,虽然自身有那么些缺点,但是比其他人要好些。想着这增大的盘子,即使别人有颇多的怨言,大部分还不是摄于他的威力,划在他名下?!没想到竟半路杀出个程咬金。他强自镇定,接着说道:“但是,我想目前别人也没有比我更能管的好路由吧?”
“嗯,目前是没有,不过只是目前。”那白衣少年对着RIP面露微笑。
“这么说,你有什么更好的方法?”RIP眼含精光,紧接追问。
“小子不才,刚好从某位大师那里学了点皮毛,再结合当下互联网的状况,想到了一些方法。”白衣少年负手而立,当下侃侃而谈。
与RIP的运行机制不同,在白衣少年所说的网络中,每台路由器根据自己周围的网络拓扑结构生成链路状态通告LSA(Link State Advertisement),并通过更新报文将LSA发送给网络中的其它路由器。
1、 每台路由器都通过LSDB掌握全网的拓扑结构。
如图3所示,每台路由器都会收集其它路由器发来的LSA,所有的LSA放在一起便组成了链路状态数据库LSDB(Link State Database)。LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统的网络拓扑结构的描述。路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。各个路由器得到的有向图是完全相同的。
图3 路由器通过LSDB掌握全网的拓扑结构
2、 依靠SPF计算到达目的网络的路径,而不是依靠传闻。
如图4所示,每台路由器根据有向图,使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。相对于RIP,这种机制极大的提升了路由器的自主选路的能力,使得路由器不再依靠传闻或者路标进行选路。
图4 路由器依靠SPF计算到达目的网络的路径
LSDB保证了路由器能够时刻掌握全网的拓扑机构,SPF算法保证了路由器能够迅速的计算出到达目的网络的最短路径。
“妙!实在是妙!这样一来,整个网络没有环路不说,而且也没有RIP那样有距离小于16跳的限制。”人群中爆发出了一声由衷的赞叹,既而这声音像丢落在平静湖面中的一颗石子,慢慢扩散开来,大家都在交头接耳,小声交谈,赞叹着这世上竟有配合如此精妙的阵法,同时也在猜测着,这白衣少年是谁。
而先前不可一世的RIP却站在那不发一言,只是看着那个白衣少年,眼中精光更盛。
这时,一直没有说话的路由老祖出声了:“哈哈,果然英雄出少年,想来我路由领域后继有人了,”他朝白衣少年招了招手,“小兄弟,近前说话。敢问你叫什么名字?师承何处?”
白衣少年走到老祖面前,对着老祖弯腰作揖道:“老祖多誉了,是家师教导的好。小子籍籍无名,家师倒有些名望……”
“呵呵呵呵,这套阵法倒是巧妙,LSDB与SPF配合起来也是相得益彰,”突然,一串柔媚的笑声打断了白衣少年的话。白衣少年循声望去,只见一女子面蒙轻纱,露出的一双摄人心魄的美眸正好奇的打量着自己,身姿极是曼妙。而且她竟然也是师父那样的装扮,难道和师父来自同一个地方?这个女子坐在老祖那一桌,想来身份也很是高贵。“不过,我曾经遇到过一位高人,他说以后路由数量的增长会达到你们难以想象的地步。那时候你这套阵法还能坚持下去吗?”
“这……不知道会增长到多少,姑娘可大概说个数字吗?”白衣少年惊奇道。
“几十万。”
“啊?!”在场众人皆是一惊,白衣少年也不例外。几十万?看来还是低估了这个时代前进的车轮倾轧的速度。那么,LSDB与SPF还可以助我达成伟业吗?想着想着,他心中竟生出了一丝气馁之意。
“哈哈哈,小兄弟不要灰心,古往今来,互联网历经了多少动荡,每一次莫不是涌现出很多协议,通过变革,让互联网重又安定下来。姑娘,你莫要夸大其词。”路由老祖见他神色落寞,温言安慰。
是啊,什么时候自己变的这么不堪一击了?白衣少年重又回复一脸坚毅之色:“老祖教训的是,小子虽路由小辈,亦不愤当下路由格局,遂师从Dijkstra,得上乘心法,愿领各方豪侠,换路由新生!”
“好!小兄弟,刚刚一打断,你还未报出你的名字?你的名字叫?”
“OSPF!”
OSPF?呵呵呵呵,真是个有趣的人。蒙面女子带着一丝玩味的眼神看着他。
嘿嘿,OSPF?我看你怎么换路由新生。RIP的嘴角泛起一丝诡异的笑容。
就这样,路由圣山群英会,白衣少年OSPF横空而出,江湖上又会多一段美妙佳话。
而好戏,
才刚刚开始。
请持续关注问鼎OSPF系列技术贴,更多内容请点解如下汇总链接:
时间: 2015-7-18 22:09
作者: nanyou2009boy
顶起来啊
时间: 2015-7-19 16:19
作者: nanyou2009boy
这么又趣味性的OSPF学习内容大家使劲顶起来啊
时间: 2015-7-21 15:46
作者: 枫露茶
那就跟着顶一下咯
时间: 2015-7-23 13:59
作者: taojian723
前来催更!!!
时间: 2015-7-23 17:58
作者: ltby7321
楼主必须是70后,才会有这么严重的武侠情结。对不,楼主
时间: 2015-7-26 22:23
作者: nanyou2009boy
ltby7321 发表于 2015-7-23 17:58
楼主必须是70后,才会有这么严重的武侠情结。对不,楼主
你猜对了,欢迎持续关注
时间: 2015-7-26 22:24
作者: nanyou2009boy
pzx123pzx 发表于 2015-7-22 12:42
思科吓尿了。。。。。
必须把思科吓趴
时间: 2015-7-26 22:25
作者: nanyou2009boy
taojian723 发表于 2015-7-23 13:59
前来催更!!!
谢谢关注
时间: 2015-7-26 22:28
作者: nanyou2009boy
标题: 【华为原创连载】问鼎OSPF(2)-初涉路由显神通,民主治军四方拥
绿油油的草儿,碧澄澄的溪~
轻飘飘的风儿,迎面吹~
哞嗨嗨的牛儿,青幽幽的堤~
乐陶陶的人儿,哼着歌~~~寐~
“白龙马儿,蹄儿朝西,驮着唐三藏,跟着三徒弟~西天取经不容易,一走就是几万里~”那个乐陶陶的人好不自在。
“主公,这个人真的是那人吗?怎么如此吊儿郎当?”说话的人方脸大耳,膀阔腰圆,一看就是个久经沙场的武将。
“大隐隐于市,交换机,你可莫要小瞧了人家。举凡智计无双的奇人异士,纵有通天彻地之能,大都锋芒内敛,不显山露水。群英会上战RIP,本公是亲眼所见,此子风采,当真了得。”
被唤作主公的那人头戴侯冠,身披银甲,内罩白袍,威严凛凛。
“嘿嘿,那也未必。主公,当日此子确是舌灿莲花,但空有理论,说不定难于践行。”说话的这人天生一双鼠目,任谁看了都觉得一脸奸猾相,“我们三人跟在他后面行了这么久,说不定他也只是故弄玄虚,区区一绣花枕头罢了。”
“呵呵,若能求得一贤才,多行一段路又何妨?”那主公见OSPF渐行渐远,立时催马扬鞭。并辔二人左右对视一眼,亦随即而去。
1 访诸葛三顾茅庐 论运行机制谋治世妙法
“三位跟随我多日,可悟出了什么?”行至一荫凉处,OSPF从牛背上跳了下来,对后面跟着的三人说道。
“…….”要是悟出来了,还能来寻你么?那主公心中如此想,但是脸上却没表现出来。他翻身下马,对着OSPF双手毕恭毕敬道:“先生说笑了,我三人皆是草莽出身,哪能悟得什么?此番前来,也是希望先生能助本公一臂之力,于互联网上开疆拓土,成不世伟业。”
“恩,悟得开了,悟得开了……”OSPF却似是自说自话一般,装出一副高人摸样,心下却笑开了花。
“哼,黄口小儿,我家主公与你这般客气,你好生无礼!”交换机早就憋了一股气,终于忍不住喝道。
“恩,榆木脑袋,悟不开,悟不开……”
“你!”“嗳,”那主公拦下了交换机作势欲挥出去的臂腕,接着对OSPF道:“群英会上,本公听过先生所说的SPF与LSDB,很是钦佩。若真如先生所描绘那样,定当互联网之福,众网元之福。望先生入我麾下,本公必奉先生为上宾。”
“哈哈哈哈,主公谬赞,”OSPF再也不似先前散漫摸样,既而毕恭毕敬道:“主公身旁两员猛将当是交换机、路由器,那主公必是携众网元开拓繁多网点的网管了。今幸得主公如此礼遇,再推脱就是OSPF的不是了。”
“嘿嘿嘿嘿,你这人倒是懂得顺坡骑驴,”路由器一脸奸笑,“SPF与LSDB莫不是一纸空谈吧?”
“呵呵,无妨,主公请看,”说话间OSPF顺手打开随身带的几幅图,“下山前,师父曾赐与我五行八阵图,嘱我多加揣摩,如今终得其精髓。此图在手,定能助主公争霸天下!”
“哈哈!先生快快说与我听!”网管早已按捺不住,忙对OSPF道。
OSPF见此情景,当下再不废话,徐徐与他们道来。
此组图说的,正是OSPF协议的基本运行机制,恰似百尺高楼之基石。其实概括起来,也比较容易理解,包括下面5步:
(1)Hello协议交互-形成邻居关系
图1 Hello协议交互-形成邻居关系
如图1所示,设备运行OSPF协议后,会从所有启动OSPF协议的接口上发出Hello数据包。如果两台设备共享一条公共数据链路,并且能够互相成功协商他们各自Hello数据包中所指定的某些参数,那么他们就成了邻居关系。
(2)LSAs的泛洪-通告链路状态信息
图2 LSAs的泛洪-通告链路状态信息
形成邻接关系的设备之间就可以交互LSA了,如图2所示。通过第一篇我们知道,LSA全称是链路状态通告,它描述了设备所有的链路、接口、邻居及链路状态等信息。设备间正是不断的泛洪交互这些链路信息,来了解整个网络的拓扑信息。由于链路的多样性,OSPF协议定义了许多LSA类型,后面的篇章会详细介绍到。
同时我们可以了解到OSPF比RIP的高明之处在于,路由器之间交互的是LSA信息,而RIP协议交互的是路由。也就是说,OSPF协议中,设备的选路是一种“自主行为”,LSA只不过是一种选路的参考信息;而RIP协议中,设备的选路过度的依赖于邻居设备的路由信息,即使邻居设备传达的信息是错误的。
(3)LSDB的组建-形成带权有向图
图3 LSDB的组建-形成带权有向图
通过泛洪LSA,设备接下来会把收到的LSA汇总记录在LSDB(链路状态数据库)当中,最终,所有设备都会形成同样的LSDB,如图3所示。LSA是对设备周围网络拓扑结构的描述,而LSDB则是对整个自治系统的网络拓扑结构的描述,LSDB是LSA的汇总。
(4)SPF的计算-形成路由
图4 SPF的计算-形成路由
如图4所示,当LSDB同步完之后,每一台设备都将以其自身为根,使用SPF算法来计算一个无环路的拓扑图,以描述它所知道的到达每一个目的地的最短路径(最小的路径代价),如图4所示。这个拓扑图就是SPF算法树,有了这棵“树”,事实上路由器就已经知道了到达网络各个角落的最优路径。
(5)路由表的维护更新
图5路由表的维护更新
最终,经过SPF算法得出了最短路径树,每台设备将SPF算法得出的最短路径装载进路由表形成指导数据转发的路由表项,并且实时更新,如图5所示。同时,邻居之间交互Hello报文进行Keepalive,维持邻居/邻接关系,并且每30min重传一次LSA。如果网络拓扑稳定,那么网络中将不会有什么活动或行为发生。
2 领虎符整饬三军,设RouterID知己知彼
“先生这妙法如此运用,令本公茅塞顿开,我想再复杂的网点也必能攻的下来。先生若入我帐下,本公愿与你调兵虎符,麾下三军尽皆任你调遣!”到现在,网管是愈加的对OSPF佩服的五体投地。
“蒙主公抬爱,微臣自当鞠躬尽瘁,死而后已!”
自那日网管三顾茅庐之后,OSPF便随网管来到了某网点大营之中。借由帐中沙盘,OSPF知道此网点名唤X网点,内里错综复杂,地域辽阔。网点内不同网元鳞次栉比,而且网元间需要交错相连,任什么路由协议见了,肯定都会头疼不已。
“军师,俺叫路由器!”在大营中某一处,一个大头兵正憨憨的答着OSPF的话。OSPF并未急于攻城掠地,来了之后,便先是熟悉三军。
“那么你呢?”OSPF持扇轻摇,转身对另一士兵道。
“军师,俺也叫路由器!”
“俺也叫路由器!”
“……”
“你叫路由器,你也叫路由器,真是叫我有些晕头转向了。”OSPF摇头笑道。
“嘿嘿,军师,俺们本来就都是路由器啊。何况俺们这些大老粗,名讳也不值几个钱,哪能与那些有头有脸的协议比。”
“不然,知己知彼,方百战不殆。也莫要小瞧自己,哪个协议离了你们能玩的转。本军师要了解整网拓扑,亦要靠你们,”OSPF沉吟半晌,既而肃容道:“众将听令!卯时三刻,校场集合,军师来给你们发Router ID了!”
Router ID就是用于在自治系统中唯一标识一台运行OSPF的路由器的32位整数。每个运行OSPF的路由器都有一个Router ID。Router ID的格式和IP地址的格式是一样的,在实际网络部署中,考虑到协议的稳定,推荐使用路由器Loopback0的IP地址做为路由器的Router ID。
Router ID的选取有两种方式:
l 通过命令行手动配置。
l 设备自动设定。
如果没有手动配置Router ID,设备会从当前接口的IP地址中自动选取一个作为Router ID。其选择顺序是:
1、优先从Loopback地址中选择最大的IP地址作为Router ID。
2、如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为Router ID。
只有重新配置系统的Router ID或OSPF的Router ID,并且重新启动OSPF进程后,才会进行Router ID的重新选取。
3 因地域分四路掠城,携天威攻万变贼寇
“9.5.2.7!”
“到!”
“9.5.2.8!”
“到!”
数日过后,三军阵前校场点兵,上至虎虎将尉,下至大头小兵,莫不精神抖擞,焕然一新。OSPF心下了然,便开始排兵布阵,准备拿下X网点。而他根据不同的链路类型,将三军分作了四路,每路阵法不尽相同:
1、 广播(Broadcast)类型
当链路层协议是Ethernet、FDDI时,OSPF缺省认为网络类型是Broadcast。在该类型的网络中,通常以组播形式(224.0.0.5:含义是OSPF路由器的预留IP组播地址;224.0.0.6:含义是OSPF DR的预留IP组播地址)发送Hello报文、LSU报文和LSAck报文;以单播形式发送DD报文和LSR报文。
图7 广播(Broadcast)类型网络
2、 NBMA(Non-Broadcast Multi-Access)类型
当链路层协议是帧中继、ATM或X.25时,OSPF缺省认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
图8 NBMA(Non-Broadcast Multi-Access)类型网络
3、 点到多点P2MP(point-to-multipoint)类型。
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
图9 点到多点P2MP(point-to-multipoint)类型类型网络
4、 点到点P2P(point-to-point)类型
当链路层协议是PPP、HDLC和LAPB时,OSPF缺省认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
图10 点到点P2P(point-to-point)类型网络
4 拔敌寨遭遇险境,举能人解广播/NBMA邻间困局
“哈哈哈,先生真乃神人也!据探子来报,P2P和P2MP网络已被攻破。不出五日,X网点将被全部拿下!”网管坐在马上,抚掌大笑道。
“主公,此话言之尚早,剩下的两路可不好拿。”OSPF一反往日淡然自若,神色中竟带有一丝隐忧。
“报!”正当时,一探子快马加鞭至两人跟前。只见那探子衣衫尽皆血染,满目疲惫之色,“广播链路久攻不下,如不及时驰援,我军危矣!”
“什么!怎会如此!”网管身形一颤,险些跌下马来。
“初时我军攻敌势如破竹。但….”探子回话突地一顿,悲戚中难掩一丝愤恨,“但后来路将军不知与敌贼言语了什么,广播链路上需要连的设备竟越来越多。我军结两两相交之阵,一开始堪堪抵住汹涌来势,及至最后阵法渐露疲相,我军亦深陷泥潭!”
OSPF听罢静默无言,待心绪稍自平复,忙对来人道:“我问你,阵中那白袍小将安在?”
“这……身披白袍的将士有好些个,却不知军师说的是哪一位?”
“就是身边总有个容貌清秀的小兵围着他叽叽喳喳转个不停的那一位。”
“哦,原来是那一位!”探子恍然大悟,“我知道的!幸有此人一马当先,不然只怕我军早已败下阵来。”
“我赐你锦囊一枚,速交于他手!”
“是!”探子接过锦囊,一骑绝尘而去。
“先生,此子是何人物?能替本公拿下这一仗么?”网管言语间很是急切。开始如此顺利,现在若停歇下来,可真是功亏一篑了。
“早先我料到可能有此劫,攻打广播链路/NMBA链路时便定一计,但需营中素有威名之人相助。此子由众人推举而来,原先籍籍无名,现名DR!”
4.1 DR/BDR选举的原因
在广播网和NBMA网络中,任意两台路由器之间都要传递路由信息。如图11所示,网络中有n台路由器,则需要建立n*(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,OSPF定义了指定路由器DR。通过选举产生DR(Designated 路由器)后,所有其他设备都只将信息发送给DR,由DR将网络链路状态LSA广播出去。为了防止DR发生故障时,重新选举DR时会产成业务中断,除了DR之外,还会选举一个备份指定路由器BDR。这样除DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息,这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。这就是OSPF给那白袍小将的锦囊妙计。
图11 DR和BDR的选举
4.2 DR/BDR选举的原则
在广播网和NBMA网络中,为了稳定地进行DR和BDR的选举,OSPF规定了一系列的选举规则,遵循三个基本原则:选举制、终身制、世袭制。下面我们来逐个介绍一下。
1、选举制
图12 DR和BDR的选举-选举制
如图12所示,所谓选举制即DR和BDR不是人为指定的,而是由本网段中所有的路由器共同选举出来的。路由器接口的DR优先级决定了该接口在选举DR、BDR时所具有的资格。本网段内DR优先级大于0的路由器都可作为“候选人”。选举中使用的“选票”就是Hello报文。每台路由器将自己选出的DR写入Hello报文中,发给网段上的其他路由器。当处于同一网段的两台路由器同时宣布自己是DR时,DR优先级高者胜出。如果优先级相等,则路由器 ID大者胜出。如果一台路由器的优先级为0,则它不会被选举为DR或BDR。
2、终身制
图13 DR和BDR的选举-终身制
所谓终身制也叫非抢占制。每一台新加入的路由器并不急于参加选举,而是先考察一下本网段中是否已有DR存在。如果目前网段中已经存在DR,即使本路由器的DR优先级比现有的DR还高,也不会再声称自己是DR了。而是承认现有的DR。因为网段中的每台路由器都只和DR/BDR建立邻接关系,如果DR频繁的更迭,则每次都要重新引起本网段内的所有路由器与新的DR/BDR建立邻接关系。 这样会导致在短时间内网段中有大量的OSPF协议报文在传输,降低网络的可用带宽。终身制有利于增加网络的稳定性、提高网络的可用带宽。实际上在一个多访问网络上,最先初始化启动的两台具有DR选举资格的路由器将成为DR和BDR路由器。
3、世袭制
图14 DR和BDR的选举-世袭制
所谓世袭制就是如果DR故障了,那么下一个当选为DR的一定是BDR,其他的路由器只能去竞选BDR的位置。这个原则都是为了保证DR是比较稳定的,不会经常进行选举的,并且DR是有备份的(BDR),一旦DR失效,可以马上由BDR来承担DR的角色,由于DR和BDR的数据库是完全同步的,这样当DR故障后,BDR立即成为DR,履行DR的职责,而且邻接关系已经建立,所以从角色切换到承载业务的时间会很短。同时,在BDR成为新的DR之后,还会选举出一个新的BDR,虽然这个过程所需的时间比较长,但这个已经不会影响路由的计算了。
4.3 DR/BDR选举的详细步骤
广播链路或者NMBA链路上DR/BDR详细的选举过程如下:
(1)接口UP后,发送Hello报文,同时进入到waiting状态。在waiting状态下会有一个waiting timer,该timer的长度与dead timer是一样的。默认值40s,用户不可自行调整。
(2)在waiting timer触发前,发送的hello报文是没有DR和BDR字段的。在waiting阶段,如果收到Hello报文中有DR和BDR,那么直接承认网络中的DR和BDR,而不会触发选举。直接离开waiting状态,开始邻居同步。
(3)假设网络中已经存在一个DR和一个BDR,这时新加入网络中的设备,不论它的Router ID或者DR优先级有多大,都会承认现网中已有的DR和BDR。
(4)当DR因为故障down掉之后,BDR会继承DR的位置,剩下的优先级大于0的设备会竞争成为新的BDR。
(5)只有当不同Router ID,或者配置不同DR优先级的设备同时起来,在同一时刻进行DR选举才会应用DR选举规则产生DR。该规则是:优先选择DR优先级最高的作为DR,次高的作为BDR。DR优先级为0的设备只能成为DRother;如果优先级相同,则优先选择Router ID较大的设备成为DR,次大的成为BDR,其余设备成为DRother。
江湖小贴士:
看完这一节之后,小伙伴们是不是已经满腹疑问?什么是waiting状态?dead timer又是个什么鬼?不要急,等看了第三篇,再回头看这里,你就会一目了然。
未完待续…………
时间: 2015-7-26 22:32
作者: nanyou2009boy
4.4 DR/BDR选举的实验验证过程 前面给大家介绍了OSPF在广播和NBMA网络中DR/BDR的选举原则和选举步骤,下面我们通过实验来验证一下DR和BDR的选举过程中的一些问题。
图15 实验验证DR和BDR的选举
实验环境如图15所示,五台路由器组成一个广播网络,中间的交换机作为纯二层设备,四周的四个路由器R1、R2、R3、R4作为路由设备。四个路由器都规划在OSPF的Area0区域内,各路由器的IP地址及路由器 ID如图15所示。
R1、R2、R3、R4四台路由设备的关键配置如下:
R1的关键配置
| # ospf 1 Router ID 10.1.1.1 area 0.0.0.0 network 192.168.1.0 0.0.0.255 #
|
R2的关键配置
| # ospf 1 Router ID 10.2.2.2 area 0.0.0.0 network 192.168.1.0 0.0.0.255 #
|
R3的关键配置
| # ospf 1 Router ID 10.3.3.3 area 0.0.0.0 network 192.168.1.0 0.0.0.255 #
|
R4的关键配置
| #ospf 1 Router ID 10.4.4.4area 0.0.0.0 network 192.168.1.0 0.0.0.255# |
配置完成后,待网络稳定后我们来查看一下当前这个广播网络的DR和BDR的选举情况。
在R1上通过display ospf peer命令查看OSPF的邻居信息,显示如图16所示。
图16 R1上通过display ospf peer命令查看OSPF的邻居信息
从上述表项可以看出,目前这个广播网络已经完成了DR和BRD的选举,R1是DR,R2是BDR,R3和R4是DRother。这里R1是DR,R2是BDR跟设备的启动顺序也是直接相关的,本例中我们按照R1、R2、R3、R4的顺序启动设备,所以R1和R2首先完成了初始化,自然成为了DR和BDR。
下面分别在R1、R2、R3和R4上查看OSPF邻居关系的概要信息。
图17 完成DR和BDR选举后的OSPF邻居关系的概要信息
我们可以从图17的表项中看到:R1/R2和其他三个设备的邻居关系都是Full,
而R3和R4之间的OSPF邻居关系是2-Way状态。这表示DR/BDR与邻居间建立的是邻接关系,
而DROther之间建立的只是邻居关系。
说到这儿,小伙伴们是不是又产生了很多新的疑问?为什么Full就表示邻接关系,2-Way就表示邻居关系?邻居关系和邻接关系又有什么区别?嘿嘿,咱们还是等第三篇讲解邻居状态机的时候会详细展开介绍这些内容。
江湖小贴士1:如果广播网络里只存在DR,但并不存在BDR,这时候网络是什么状况? 我们通过实验来回答读者的疑问,我们在R2、R3、R4的接口视图下配置ospf DR优先级 0命令将设备的DR优先级配置为0,那么这个时候这3台设备将失去DR和BDR的选举资格,只能作为DRother,网络中仅存在一台具备DR/BDR选举资格的设备,就是R1。
配置完成后我们查看OSPF邻居状态可以看到,此时DR是R1,BDR显示为None,即网络中不存在BDR,如图18-1所示。
图18-1 网络中只存在DR不存在BDR的情形
此时我们查看四台设备的OSPF简要信息,如图图18-2所示,可以看到R2、R3、R4分别和R1建立了邻接关系(状态为FULL),而R2、R3、R4之间的邻居状态只停留在2-Way的状态。
图18-2 网络中只存在DR不存在BDR的情形
实验过程已经基本看到了这个问题的答案,这里我们总结说明一下:如果在一个多访问网络上只有唯一的一台具有选取资格的路由器相连,那么这台路由器将成为DR路由器,而且在这个网络上没有BDR路由器。其他所有的路由器都将只和这台DR路由器建立邻接关系。聪明的读者此时可能会问另外一个问题,如果这个时候R1故障了,或者失去了DR的资格了呢?请看紧接着的下面第二个小贴士。
江湖小贴士2:如果广播网络里不存在DR和BDR,这时候网络是什么状况? 我们同样用实验来回答这个问题,我们在上面的基础上,继续在R1的接口视图下配置ospf DR优先级 0命令,让R1也失去DR/BDR的选举资格,此时这个广播网络中将没有任何设备具备DR/BDR的选举资格。如图19-1所示,DR和BDR字段都显示None,表示这个网络中不存下DR和BDR。
图19-1 网络中不存在DR和BDR的情形
此时我们查看四台设备的OSPF简要信息,如图图19-2所示,可以看到此时所有的邻居状态都只停留在2-Way的状态,网络不能建立邻接关系,各个设备之间不能完成路由信息的交互。
图19-2 网络中不存在DR和BDR的情形
根据上述实验,我们可以给出这样的结论:如果广播网络上不存在具备DR/BDR选举资格的设备,那么这个网络上将没有DR或者BDR路由器,而且也不会建立任何邻接关系。在这种情况下,网络上所有的路由器的邻居状态都将停留在“2-Way”状态。
5 尾声 残阳如血。
寂寥的苍穹中偶有几只归雁飞过,伴随着一声声悠扬的啼鸣在长空中回荡。
然而,眼前的一众人却无暇他顾,他们都在目不斜视的盯着远方,每个人脸上都像崩了一根弦,似是那里有着什么择人而噬的恐怖怪物在等着他们。
突然,远方的平线上出现了一个小黑点,紧接着,两个,三个…….那些黑点越来越多,也越来越大,及至最后汇聚成一列铁骑,由远及近呼啸而来。
“主公,我们胜了。”
白袍小将,横刀立马。
时间: 2015-7-27 00:05
作者: 家园副管03
楼主好,图片最好是本地上传论坛然后使用,不然容易链接丢失的
时间: 2015-7-28 16:34
作者: 13834163957
顶起!
时间: 2015-7-28 20:13
作者: pandama
内行看门道,外行看热闹,呵呵,不错
时间: 2015-7-28 20:22
作者: pandama
恩,提纲挈领,期待下篇
时间: 2015-7-29 16:43
作者: 天外飞兽
厉害
时间: 2015-7-31 16:33
作者: 天外飞兽
灰常灰常好
时间: 2015-8-3 22:09
作者: 高山流水csu
有才
时间: 2015-8-8 17:08
作者: 兰经理有硬盘
写得不错!
时间: 2015-8-8 17:09
作者: 兰经理有硬盘
我的硬盘收录啦
时间: 2015-8-11 14:00
作者: taojian723
好东西收藏啦
时间: 2015-8-14 20:35
作者: nanyou2009boy
标题: 【华为原创连载】-问鼎OSPF(3)-完善机制沐邻里,帅将兵民如父兄
鲜衣怒马惊草风,
身若劲松气如虹。
一朝踏尽寒霜雪,
剑破长空化游龙。
“这诗说的正是白袍小将。广播链路一战,世人皆识得白袍小将,即便与我们的军师OSPF相比,亦有过之而无不及。那一战,白袍小将恍若天神,携雷霆万钧之势冲入敌阵,好不威风! ”说书人眉飞色舞,口沫横飞。台下看客目瞪口呆,一脸沉醉。
自广播链路大捷已过三日。虽说众人都很高兴,但是连番的几次大战,亦是让不少人生了疲惫之心。网管听得OSPF的报告,便命三军稍作休整,恢复元气。这一日,OSPF与攻打广播链路一众将士相约于X网点有名的醉仙楼,谈天说地,把酒言欢。
“军师,莫要听那说书人瞎说。这种人就一样本事,喜欢夸夸而谈。”说话的人剑眉星目,英武不凡,对军师的语气很是恭敬。
“呵呵,将军莫要自谦,若非有你,我们不知要折损多少将士,才能攻下广播网络。”答话人白衣胜雪,神色如常。
“哎呀哎呀,大哥和军师你们怎么突然都变得如此清高了。哎呦哎呦,冷死了。”这时候突然窜出来一个小姑娘,那小姑娘一身水绿裙裳,扎着个马尾,宛若白玉的小脸上生着一双秀丽的大眼睛,乌黑的眼珠在里边滴溜溜的打着转。而那双顾盼撩人的大眼睛忽闪忽闪,带着微微上翘的长睫毛上下跳动,真是好生俏丽。
“噗。”终于有人忍不住,笑出声来,而席间的氛围也轻松了起来。
“小妹你又胡说,若无军师,我们这些兄弟怎受得主公如此赏识。你这么不懂规矩,以后也不知道哪家小哥敢要你。”白袍小将苦笑摇头。
“哼哼,我谁都不嫁,我…我就一辈子赖上你了!”难得的,小丫头白嫩嫩的小脸上透出了一点红。
“哈哈哈哈,原来我们的小妹心有所属了。”众人哈哈大笑,跟着起哄。
“你们也跟着胡闹!” 白袍小将言间讪讪,为了掩饰尴尬,干咳一声。忽又觉得好久没如此开心过,既而也跟着放声大笑。一时间,众人言笑晏晏,似是忘了Internet上那繁多的战事,那繁多的忧愁。
1 由接口演七般变化 众网元借奇功应不同链路 酒过三巡,白袍小将见时机成熟,便对OSPF正色道:“多谢军师提拔,方有我今日成就。原先籍籍无名一网元,如今却管理一方广播链路,竟然还有了DR这个名号,此等恩情,没齿难忘!”
“呵呵,非也。名利皆虚妄,这是家师教导我的,今天我也对你这样说,”OSPF摆了摆手,然后又对其他众人道:“还有你们也莫要看轻自己。常言道,此一时彼一时,你们可知道我传予你们的功法,人人皆能生出七般变化?将军当得DR、小妹当得BDR,你们也能当得。教你们七般变化,就是让你们顺势而为,莫说广播链路、NBMA链路,P2P/P2MP链路也当应付得了。”
“哦?竟有如此威能?”白袍小将很是惊奇。
“怎么?不信吗?且看看你的OSPF接口状态。”言罢OSPF含笑不语。
白袍小将心怀忐忑,查看了自己的OSPF接口,竟发现其上颜色由赤及紫,七般状态,交错变化,持续时长不一而足。
“军师,这?”
“莫慌,待我慢慢说来…..”
1.1 OSPF接口 通过第一篇&第二篇,我们知道OSPF是链路状态协议,运行OSPF的设备间通过交互链路状态信息(即LSA),最后每台OSPF设备都形成一个链路状态数据库(即LSDB),从而知道整张网络的拓扑信息。而这些链路信息最初的源头肯定都是OSPF设备本身相连的本地链路信息,那么这些信息又是从哪里获得的呢?答案是与链路直连的OSPF接口。
我们可以通过display ospf interface查看OSPF接口信息。
图1 OSPF接口信息
在上面的信息中,通过其中一些描述链路基本状况的字段,就可以了解OSPF接口相连的链路信息。
1)Router ID:设备的ID,第二篇中介绍到的,保证设备在OSPF网络的唯一性。
2)Area:接口所在的区域ID。关于区域ID,在第四篇中会详细介绍。
3)Interface:接口的基本信息,包括接口的IP地址、接口编号。始发于这个接口的OSPF报文将把这个IP地址作为源地址。
4)Cost:接口开销值,即此接口发送出去的数据包在链路中传输需要花费的开销值。
OSPF在生成SPF时,就是依据这些链路开销值,选出最优的数据转发链路。
5)Type:接口类型,即这个接口相连的链路类型,包括P2P、P2MP、广播或NBMA。
当然,还有别的如维持邻居关系相关的等其他的信息,比如第二篇里的Dead Timer。
6)Priority:设备接口在选取DR和BDR时的优先级。其值越大,优先级越高。
7)DesignatedRouter:接口所在广播网络/NBMA网络上的指定设备,即DR。一般用连接这个广播网络/NBMA网络的接口地址表示。比如192.168.23.0/24这个广播网络/NBMA网络的DR是相连接口地址为192.168.3.2的设备。
8)BackupDesignatedRouter:接口所在网络上的备份指定设备,BDR。一般用连接这个广播网络/NBMA网络的接口地址表示。比如192.168.23.0/24这个广播网络/NBMA网络的BDR是相连接口地址为192.168.3.1的设备。
9)Hello:接口发送Hello报文的时间间隔。
10)Dead:接口相连的OSPF邻居失效时间。超过失效时间,如果接口还没有收到邻居设备发来的Hello报文,就表明两端的邻居关系已无效。华为S系列交换机在默认情况下,邻居失效时间为发送Hello报文时间间隔的4倍。
11)Poll:NBMA网络上发送轮询Hello报文的时间间隔。在NBMA网络上,当邻居失效后,设备将按轮询时间间隔定期地发送Hello报文。轮询时间间隔值至少应为Hello报文时间间隔的4倍,华为S系列交换机在默认情况下发送轮询Hello报文的时间间隔是发送Hello报文时间间隔的4倍。
12)Retransmit:接口没有收到来自对端“LSA已经收到”的确认报文,需要重传LSA的等待时间。
13)Transmit Delay:接口发送LSA过程中的传输延迟时间。
1.2 OSPF接口状态机 OSPF设备从接口获取了链路信息后,然后与相邻设备建立邻接连接,交互这些信息。在建立邻接关系之前,邻居设备间需要明确角色分工,才能正常建立连接。那角色分工通过什么来了解呢?其实在图1的接口信息中,我们还有一个非常关键的字段没有介绍,那就是State字段。通过这个字段,我们就可以了解OSPF设备在一段链路中的作用。而这也就是OSPF接口的七般变化。每个设备通过这七般变化,顺势而为,扮演好自己在这段链路中的角色。
接口总共有下面7种状态:
- Down:接口的初始状态。表明此时接口不可用,不能用于收发流量。
- Loopback:设备到网络的接口处于环回状态。环回接口不能用于正常的数据传输,但仍能通过ICMP ping或位错误检测来收集接口信息。
- Waiting:设备正在判定网络上的DR和BDR。在设备参与DR/BDR选举前,接口上会起一个Waiting定时器。在这个定时器超时前,设备发送的Hello报文不包含DR和BDR信息,设备不能被选举为DR或BDR,因为从第二篇可以知道,正常的DR/BDR选举遵循非抢占原则。这可以避免不必要地改变链路中已存在的DR和BDR。仅NMBA网络、广播网络有此状态。
- P-2-P:接口连接到物理点对点网络或者是虚拟链路,这个时候设备会与链路连接的另一端设备建立邻接关系。仅P2P、P2MP网络有此状态。
- DROther:设备没有被选为DR或BDR,但连接到广播网络或NBMA网络上的其他设备被选举为DR。它会与DR和BDR建立邻接关系。
- BDR:设备是相连网络的BDR,并将在当前的DR失效时成为DR。该设备与接入该网络的所有其他设备建立邻接关系。
- DR:设备是相连网络的DR。该设备与接入该网络的所有其他设备建立邻接关系。
每个OSPF接口如何进行七般变化?它是根据不同的情况(即输入事件)在这些状态中进行灵活转换的,这样就形成了一个高效运作的接口状态机,如下图所示。
图2 接口状态机
下面是不同状态切换时的输入事件InputEvent(图中简称IE)。
输入事件
| 详细事件描述
|
IE1
| InterceUP:底层协议表明接口是可操作的。
|
IE2
| WaitTimer:等待定时器超时,表明DR/BDR选举等待时间结束。
|
IE3
| BackupSeen:设备已检测过网络中是否存在BDR。发生这个事件主要有下面两种方式: 1)接口收到邻居设备的Hello报文,宣称自己是BDR; 2)接口收到邻居设备的Hello的报文,宣称自己是DR,而没有指明有BDR。 这都说明邻居间已进行了相互通信,可以结束Waiting状态了。
|
IE4
| 接口所在的设备在网络中被选举为DR。
|
IE5
| 接口所在的设备在网络中被选举为BDR。
|
IE6
| 接口所在的设备在网络中没有被选举为DR/BDR。
|
IE7
| NeighborChange:与该接口相关的邻居关系变化的事件发生,这表明DR/BDR要 重新选举。下面的这些邻居关系变化可能会导致DR/BDR重新选举: 1)接口所在的设备和一个邻居设备建立了双向通信关系。 2)接口所在的设备和一个邻居设备之间丢失了双向通信关系。 3)通过邻居设备发送的Hello报文检测到,邻居设备重新宣称自己是DR/BDR。 4)通过邻居设备发送的Hello报文再一次检测到,邻居设备宣称自己不再是DR/BDR。 5)通过邻居设备发送的Hello报文再一次检测到,邻居设备的DR优先级已经改变。
|
IE8
| UnLoopInd:网管系统或者底层协议表明接口不再环回。
|
IE9
| InterfaceDown:底层协议表明接口不可操作。任何一种状态都可能触发此事件 切换到Down状态。
|
IE10
| LoopInd:网管系统或者底层协议表明接口处于环回状态。任何一种状态都可能触发此事件切换到Loopback状态。 |
2 邻居间奏琴瑟和鸣 八般变化助LSA交互 众人听罢,内心久久不能平歇,军师的功法原来竟有这般变化!想想也是,十四儿郎,少小离家,谁不想从茫茫行伍中脱颖而出,纵不博得个千古美名,总要留下些什么证明自己亦曾得意过。
“初时以为军师给我们都定义好了角色,照着军师给的锦囊去做就好,原来这竟是一门能演绎七般变化的高明心法。”白袍小将似是喃喃自语,又似是对众人说,忽的他抬头对OSPF道:“军师,既然这心法能教人应不同链路,却没有说如何去教我们在这链路上去交互LSA,想必还另有心法,是也不是?!”
“嗯,将军果然聪明,的确如此,”OSPF微微点头,“还有一门心法叫琴瑟和鸣,想来你们从这雅致的名字也可以知道,这需要两人共同修行演绎。而这心法,可是比之前的更复杂了,它有八般变化。”
“八般变化?这不是才多了一般变化么?”
“呵呵,非是多了一般变化那么简单。反正这些你们迟早也要习得,我就先说与你们听听…..”
2.1 OSPF邻居 相邻设备间明确好角色分工,相连接口状态稳定下来以后,下一步就是建立邻接关系,完成链路信息的传输。
江湖小贴士: 1、 邻居关系和邻接关系有什么区别?什么情况下才会出现邻居或者邻接?
图3 邻居关系和邻接关系的区别
1)邻居关系:OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,比如Hello报文发送间隔、网络类型、IP地址掩码等,如果双方一致就会形成邻居关系,两端设备互为邻居。
2)邻接关系:位于邻居关系之上,如果两端需要进一步交换DD报文、交互LSA信息,才建立邻接关系。
这也就解答了第二篇里面广播链路/NBMA链路的一些疑问。在广播链路/NBMA链路里,因为DROther之间不需要交换LSA信息,所以建立的就是邻居关系。而DR与BDR之间,DR/BDR与DROther之间需要交互LSA信息,所以建立的是邻接关系。如上图所示。
而P2P链路/P2MP链路则只有邻接关系。
后面会介绍到邻居状态机,如果根据邻居状态理解,邻居关系是指邻居状态达到了2-way状态,而邻接关系则需要达到Exstart以上状态。
2、 OSPF的五种协议报文。
在介绍OSPF邻居的一些内容之前,有必要讲解下OSPF协议用到的5种协议报文,因为后面的知识点很多都会涉及到这些协议报文。在讲解时,会拿生活中的顾客去饭馆点菜、服务员上菜做类比,加深理解。
Hello报文:最常用的报文,其作用为建立和维护邻接关系,周期性地在使能了OSPF的接口上发送。报文内容包括一些定时器的数值、本网络中的DR、BDR以及已知的邻居。
这类似于顾客去饭馆吃饭,先跟服务员打招呼。
DD报文:两台设备在邻接关系初始化时,用DD报文描述本端设备的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA),即所有LSA的摘要信息。LSA Header只占一条LSA的整个数据量的一小部分,这样可以减少设备之间的协议报文流量,对端设备根据LSA Header就可以判断出是否已有这条LSA。在两台设备交换DD报文的过程中,一台为Master,另一台为Slave。由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。
这里面,DD报文就好比饭馆里面的菜单,顾客先要看下菜单,了解有哪些菜。
LSR报文:两台设备互相交换过DD报文之后,需要发送LSR报文向对方请求更新LSA,内容包括所需要的LSA的摘要信息。
这类似于顾客看完菜单之后,他就知道想要点哪些菜了,就把X桌的菜单写好给服务员。
LSU报文:LSU报文用来向对端设备发送其所需要的LSA或者泛洪本端更新的LSA,内容是多条LSA(全部内容)的集合。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认,对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。
这类似于饭馆根据顾客点的菜单提供对应的菜。
LSAck报文:LSAck报文用来对接收到的LSU报文进行确认,内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。
这类似于服务员上好菜以后,顾客还要确认下是不是他点的那些菜。
考虑到篇幅有限,如果大家希望了解不同协议报文的格式,可以查阅后面会发布的“OSPF-番外篇之协议报文格式”
邻居关系建立和维持都是通过交换Hello报文来完成的。OSPF设备发送的Hello报文会携带有OSPF接口数据结构中保存的信息,来通告给邻居设备。而对于邻居设备来说,也会将这些学习到的信息维护一张邻居数据结构表中。通过display ospf peer命令可以了解这些邻居信息。
图4 OSPF邻居信息
对于OSPF邻居字段信息的详细解释如下。
1)Area:邻居所属的区域。
2)Interface:与邻居相连的接口。
3)Router ID:邻居的Router ID。
4)Address:邻居接口的IP地址。
5)State:邻居状态。
6)Mode: DD交换进程中协商的主从状态。
- Nbr is Master,邻居是Master,主动发送DD报文。
- Nbr is Slave,邻居是Slave,配合Master发送DD报文。
7)Priority:邻居的DR优先级。
8)DR:邻居间指定路由器的IP地址。
9)BDR:邻居间备份指定路由器的IP地址。
10)Dead timer : 邻居失效定时器。如果在超时时间内,还没有收到邻居发来的Hello报文,说明邻居已失效。
11)Retrans timer interval:重传LSA的时间间隔。如果在这个间隔内,没有收到邻居的LSA已经收到的确认报文,LSA会进行重传。
12)Authentication Sequence: 认证序列号。
2.2 OSPF邻居状态机 相信大家也注意到了,邻居信息中也有个State字段。不错,OSPF说的琴瑟和鸣大法正是相邻设备间通过不同的邻居状态切换,最后形成完全的邻接关系,完成LSA信息的交互。
邻居状态机总共有8种状态:
Down:邻居会话的初始阶段。表明没有在邻居失效时间间隔内收到来自邻居设备的Hello报文。除了NBMA网络OSPF路由器会每隔PollIntervla时间对外轮询发送Hello报文,包括向处于Down状态的邻居路由器(即失效的邻居路由器)发送之外,其他网络是不会向失效的邻居路由器发送Hello报文的。
Attempt:这种状态适用于NBMA网络,邻居路由器是手工配置的。邻居处于本状态时,路由器会每隔HelloInterval时间向自己手工配置的邻居发送Hello报文,尝试建立邻居关系。
Init:本状态表示已经收到了邻居的Hello报文,但是对端并没有收到本端发送的Hello报文,收到的Hello报文的邻居列表并没有包含本端的Router ID,双向通信仍然没有建立。
2-way:互为邻居。本状态表示双方互相收到了对端发送的Hello报文,报文中的邻居列表也包含本端的Router ID,邻居关系建立。如果不形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。而且DR/BDR只有在邻居状态处于这个状态或者更高的状态才会被选举出来。
Exstart:协商主/从关系。建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。邻居间从此时才开始正式建立邻接关系。
Exchange:交换DD报文。本端设备将本地的LSDB用DD报文来描述,并发给邻居设备。
Loading:正在同步LSDB。两端设备发送LSR报文向邻居请求对方的LSA,同步LSDB。
Full:建立邻接。两端设备的LSDB已同步,本端设备和邻居设备建立了完全的邻接关系。
其状态切换如下图所示。
图5 邻居状态机
触发不同状态的输入事件如下表所示。
输入事件
| 详细事件描述
|
IE1
| Start:以HelloInterval间隔向邻居设备发送Hello报文,尝试建立邻居关系。仅 NMBA网络适用。
|
IE2
| HelloReceived:从邻居设备收到一个Hello报文。
|
IE3
| 2-WayReceived:从邻居设备收到的Hello报文中包含了自己的RouterID,邻居间 建立了双向通信关系。接下来会进行判断: IE3(Y):如果相邻设备间应当建立邻接关系,会将邻居状态切换为Exstart; IE3(N):如果相邻设备间不应当建立邻接关系,只建立邻居关系,会将邻居状态切换为2-way。
|
IE4
| NegotiationDone:邻居间主从关系已经协商完成,DD序列号已经交换。
|
IE5
| ExchangeDone:邻居间成功交换了数据库描述报文。接下来会进行判断: IE5(Y):如果链路状态请求列表为空,会将邻居状态切换为Full状态,表示链路状态数据已全部交换完成,邻居间建立了完全的邻接关系; IE3(N):如果链路状态请求列表不为空,会将邻居状态切换为Loading状态,开始或继续邻居发送LSR报文,请求还没有接收到的链路状态数据。
|
IE6
| LoadingDone:链路请求状态列表为空。 |
其实,上面的邻居状态机并没有描述完全,只是描述了正常的切换过程,实际的状态机很复杂,会考虑其他很多异常情况,比如链路变化导致的邻居关系和邻接关系只见的切换、链路状态数据传输时出现错误导致重传等。考虑到篇幅有限,如果大家希望了解更全面的状态,可以查阅后面会发布的“OSPF-番外篇之邻居状态机”。
时间: 2015-8-14 20:38
作者: nanyou2009boy
下面介绍一下不同网络的邻接关系建立过程:
广播网络
图6 广播网络邻居关系的建立
1. 建立邻居关系
a. DeviceA的一个连接到广播类型网络的接口上激活了OSPF协议,并发送了一个Hello报文(使用组播地址224.0.0.5)。此时,DeviceA认为自己是DR设备(DR=1.1.1.1),但不确定邻居是哪台设备(Neighbors Seen=0)。
b. DeviceB收到DeviceA发送的Hello报文后,发送一个Hello报文回应给DeviceA,并且在报文中的Neighbors Seen字段中填入DeviceA的Router ID(Neighbors Seen=1.1.1.1),表示已收到DeviceA的Hello报文,并且宣告DR设备是DeviceB(DR=2.2.2.2),然后DeviceB的邻居状态机置为Init。
c. DeviceA收到DeviceB回应的Hello报文后,将邻居状态机置为Exstart状态,下一步双方开始发送各自的链路状态数据库。在广播网络中,两个接口状态是DR Other的设备之间将停留在此步骤。
2. 主/从关系协商、DD报文交换
a. DeviceA首先发送一个DD报文,宣称自己是Master(MS=1),并规定序列号Seq=X。I=1表示这是第一个DD报文,报文中并不包含LSA的摘要,只是为了协商主从关系。M=1说明这不是最后一个报文。
为了提高发送的效率,DeviceA和DeviceB首先了解对端数据库中哪些LSA是需要更新的,如果某一条LSA在LSDB中已经存在,就不再需要请求更新了。为了达到这个目的,DeviceA和DeviceB先发送DD报文,DD报文中包含了对LSDB中LSA的摘要描述(每一条摘要可以惟一标识一条LSA)。为了保证在传输的过程中报文传输的可靠性,在DD报文的发送过程中需要确定双方的主从关系,作为Master的一方定义一个序列号Seq,每发送一个新的DD报文将Seq加一,作为Slave的一方,每次发送DD报文时使用接收到的上一个Master的DD报文中的Seq。
b. DeviceB在收到DeviceA的DD报文后,将DeviceA的邻居状态机改为Exstart,并且回应了一个DD报文(该报文中同样不包含LSA的摘要信息)。由于DeviceB的Router ID较大,所以在报文中DeviceB认为自己是Master,并且重新规定了序列号Seq=Y。
c. DeviceA收到报文后,同意了DeviceB为Master,并将DeviceB的邻居状态机改为Exchange。DeviceA使用DeviceB的序列号Seq=Y来发送新的DD报文,该报文开始正式地传送LSA的摘要。在报文中DeviceA将MS=0,说明自己是Slave。
d. DeviceB收到报文后,将DeviceA的邻居状态机改为Exchange,并发送新的DD报文来描述自己的LSA摘要,此时DeviceB将报文的序列号改为Seq=Y+1。上述过程持续进行,DeviceA通过重复DeviceB的序列号来确认已收到DeviceB的报文。DeviceB通过将序列号Seq加1来确认已收到DeviceA的报文。当DeviceB发送最后一个DD报文时,在报文中写上M=0。
NBMA网络
图7 NBMA网络邻接关系的建立
1. 建立邻居关系
a. DeviceB向DeviceA的一个状态为Down的接口发送Hello报文后,DeviceB的邻居状态机置为Attempt。此时,DeviceB认为自己是DR设备(DR=2.2.2.2),但不确定邻居是哪台设备(Neighbors Seen=0)。
b. DeviceA收到Hello报文后将邻居状态机置为Init,然后再回复一个Hello报文。此时,DeviceA同意DeviceB是DR设备(DR=2.2.2.2),并且在Neighbors Seen字段中填入邻居设备的Router ID(Neighbors Seen=2.2.2.2)。在NBMA网络中,两个接口状态是DR Other的设备之间将停留在此步骤
2. 主/从关系协商、DD报文交换过程同广播网络的邻接关系建立过程。
3. LSDB同步(LSA请求、LSA传输、LSA应答)过程同广播网络的邻接关系建立过程。
点到点/点到多点网络
与广播链路的过程相似,只是少了形成邻居关系判断这一步。
3 X网点大阵终成 少年联手小将再踏征途 草长莺飞,醉柳垂堤,一晃竟过去数月有余。
X网点,点将台。
网管于台上意气风发,心中却颇多感叹。他对台下众人道:“你们随本公南征北战,一路披荆斩棘,个个当有万夫莫敌之勇。然勇者有余,每每遇到X网点这样复杂的网点,却也是无计可施。”他顿了一顿,似是将多年沉积的郁结之气一扫而空:“天佑我三军!幸遇军师!”
“天佑我三军!幸遇军师!”
“天佑我三军!幸遇军师!”
白衣少年微微颔首,然后分别向网管和台下众将士盈盈一拜:
“臣本布衣,自耕野于草莽,苟全性命于乱世。然主公不以臣卑微,三顾臣于草庐之中。
恐有负主公知遇之恩,日日亦殚精竭虑图破X网点。时至今日,终有所成:
一为五行八阵图,定X网点OSPF路由运行机制。
二为巧计分四路,破不同类型网络。
三为奇才举能人,解广播链路/NBMA链路困局。
四为演七般变化,得十八样武器皆通众网元。
五为奏琴瑟和鸣,助邻居间互通LSA有无。”
接着他又朝网管再拜:“终得X网点大阵练成,微臣在此已无必要,特请辞军师,拜别主公。”
全军皆寂然。
“哈哈哈哈!”默然半晌,网管大笑三声,“天下无不散之筵席,军师智绝天下,本公早想到军师会有离开的一天。众将士听令!”随之,他睥睨下首:“本公在此立誓,有我网管一日在,军师变是我军中上宾。三军诸将,尽听其号令!”
“三军诸将!尽听号令!”
“三军诸将!尽听号令!”
翌日清晨。
“怎么,不与她道别吗?”白衣少年拍了拍白袍小将的肩膀。
“不了,见了徒增伤感罢了。”白袍小将定了半晌,然后摆了摆手,转身催马便走。
“大哥慢走!”明晃晃的人儿竟追了过来,见白袍小将慢慢停下,也随之停在他后边不远处。
那明晃晃的人儿仍穿着一身水绿衣裳,俏生生的立在那儿,满目含泪。白袍小将低下了头,心中一阵苦涩。
她见他那副模样,亦知他心中不舍,遂用袖口擦了擦泪水,然后展颜一笑道:“大哥是要去做大事的人,自当不应有所羁绊,我不会追随大哥的。但是总有不舍,所以想见大哥最后一面。”
“……嗯。”
“大哥,我们一起呆了这么久,还不知道你的名字呢。”
“呵呵,很俗气的一个名字,叫华为S系列交换机。”
“一点都不俗气,我觉着特好听。大哥?”
“嗯?”
“不要低着头,我希望你看着我,记着我的模样,永远不要忘记我!”
大哥抬首。
脉脉情眸柔似水,怡然俏立痴佳人。
时间: 2015-8-14 20:42
作者: nanyou2009boy
标题: 【华为原创连载】问鼎OSPF(4)-连绵网络拔地起,划区而治应运生
十四儿郎,少小离娘。
牙牙学语,犹在耳旁。
一战功成,美名远扬。
孰知城下,枯骨高墙。
吾儿吾儿,今在何方。
每逢佳节,倍加思量。
不期名就,锦帽貂裘。
只盼来年,儿能还乡。
一个老兵低声地哼唱着乡谣,背靠着一截被砍断的木板,两眼空洞的望着前方。到处都是断壁残垣,战场上横七竖八的躺着很多尸体,中间来回穿梭着一些大夫,还在为伤者敷药包扎。生还的士兵们大都三三两两的围坐在奄奄一息的篝火旁,耷拉个脑瓜子,伸出一双大糙手取着暖。而还有一些人竟忍受的了这凛冽的寒风,和着冰冷的甲胄,伴随着那一声声乡谣,沉沉睡去。
1 扩疆域陷入死结 左右双少初起争执 阿帕历开元32年,少帅军新立,OSPF被奉为左少帅,华为S系列交换机被奉为右少帅。其后,于互联网上势如破竹,多个网点连连攻克,群雄震慑。
阿帕历开元34年,著名的Y网点之战拉开序幕。此网点幅员辽阔,东临蓝海,西邻僚邦,各方诸侯加入混战。战事已近一年,仍未有停歇的迹象,其间饿殍千里,伏尸百万,战况之惨烈,可见一斑。
阿帕历开元34年冬,Y网A据点少帅军营帐。
“欧少,这一战还要持续多久?”听到外边老兵的乡谣,这个仍内罩镫亮银甲,身披白色罗袍的少帅终于坚持不住向私下里以华少、欧少相称的那个人问了句。他原先英武俊朗的脸上现在已经胡子拉碴,眼睛里充斥着血丝。
“华少,我也不知道,”那个从链路谷下来的少年,依旧白衣翩翩,但却掩饰不了他的疲惫之色,“Y网就像一块基石,成了预示着以后可以握有更多的网点,败了便是绊脚石,在互联网上元气大伤。所以,现在每一路诸侯大军都不会轻易撤离。”
“可是,再这样下去,你我手下的这些将士们就吃不消了。”华少的声音有些沙哑。
“再坚持坚持吧,应该快了。我们这一路走来,危难重重,最后无不化险为夷。哼,”欧少的话语中略带一丝嘲讽,“好比那一次,那个路将军,还不是靠你作为DR破了广播链路吗?RIP?嘿嘿,以为我不知道他与那个路将军以往的关系吗…..”
“欧少!”怒吼的声音打断了欧少继续往下说,“看看外面的兄弟!他们已经精疲力竭了!你没发现单靠你的这一个阵法已达极限了吗?莫不如与其他路由协议联合,多生几个阵法吧。难道还要为了我们一己之私搭上更多人的性命吗?!”
面对日益增大的OSPF网络,双少起先都颇为自得。但是渐渐地,他们却陷入了两难境地,因为随着OSPF网络规模的增大,渐渐出现了三件棘手的问题。
图1 单区域运行的OSPF网络
1、LSDB日益庞大。
随着网络规模日益扩大,当一个大型网络中的路由器都运行OSPF路由协议时,如果所有路由器都运行在同一个区域里,由于OSPF要求同一个区域的所有路由器都具有相同的链路状态数据库,所以此时路由器数量的增多会导致LSDB非常庞大,占用大量的存储空间,并使得运行SPF算法的复杂度增加,导致路由器CPU负担很重。
2、信息传递效率降低。
在大型网络中,拓扑结构发生变化是不可避免的,网络会经常处于“动荡”之中,造成网络中会有大量的OSPF协议报文在传递,这些协议报文占用了业务报文的传输带宽,所以降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的路由器重新进行路由计算。
3、网络稳定性降低。
OSPF单区域运行情况下,任何一台路由器的拓扑发生变化都会导致全网的LSA泛洪,网络中所有其他路由器都要重新计算刷新路由。这样势必会影响整个网络运行的稳定性。比如某条链路质量较差,处于闪断中,那么此时整个网络的路由就会长时间处于动荡之中,严重降低了网络的稳定性。
2 置死地破后而立 划区治理应运而生 “嘿嘿嘿嘿……”欧少略微一顿,似是发现了什么好笑的事,既而放声大笑,苍白的面色上浮现了一抹潮红。
“欧少,我知你心中愤懑,”华少也觉得刚刚有些过了,语气稍缓,“其实谁不想图得大业?但我们不能忘却初衷,让追随你我的那些兄弟白白丢了性命。我们能走到如今的地步,已经很好了。”
“哈哈哈,哈哈哈哈……”欧少恍若未闻,笑声越来越大,离营帐较近的士兵也渐渐朝这边望来,很好奇左少帅何故大笑。
“欧少?”华少心有忧色,难道欧少因我这话语被刺激到,疯了?
“哈哈哈哈,对啊,一个阵法不行,为何不多摆几个阵呢?破后而立,阵阵连环,华少,你真是我命里的福星!”欧少手舞足蹈,兴奋莫名。
“呃?你有驭域之策了?”华少松了口气,原来还没疯。既而反应过来他说的话,忙问道。
“正是!传令官!”
“在!”
“传我手谕与诸位将军,分四路人马居天、地、玄、黄四位,与主力大军结子母连环阵!”
2.1 OSPF区域划分 OSPF说的子母连环阵其实就是将一个OSPF网络分为多个区域。如图2所示,OSPF将自治系统划分成不同的区域。区域是从逻辑上将路由器划分为不同的组,每个组用区域号(Area ID)来标识。区域的边界是路由器,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。
图2 OSPF区域划分
OSPF划分的区域类型主要有骨干区域、标准区域以及特殊区域,详细如下:
骨干区域
OSPF划分区域之后,并非所有的区域都是平等的关系。其中有一个区域其区域号(Area ID)是0,通常被称为骨干区域。骨干区域是连接所有其他OSPF区域的中央区域,骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。对此,OSPF有两个规定:
l 所有非骨干区域必须与骨干区域保持连通;
l 骨干区域自身也必须保持连通。
标准区域
标准区域是最通用的区域,它传输区域内路由,区域间路由和外部路由。
特殊区域
OSPF为了进一步精细化管理LSA的传播,还划分了4个特殊区域:
l Stub区域:Stub区域不允许自治系统外部的路由(Type5 LSA)在区域内传播。
l Totally Stub区域:Totally Stub区域既不允许自治系统外部的路由(Type5 LSA)在区域内传播,也不允许区域间路由(Type3 LSA)在区域内传播。
l NSSA区域:NSSA区域允许引入少量通过本区域的ASBR到达的外部路由,但不允许其他区域的外部路由AS-external-LSA(Type5 LSA)在区域内传播。
l Totally NSSA区域:Totally NSSA区域既不允许其他区域的外部路由ASE LSA(Type5 LSA)在区域内传播,也不允许区域间路由Network-summary-LSA(Type3 LSA)在区域内传播。
关于OSPF特殊区域我们在后面的章节会有详细的介绍。
2.2 OSPF划分区域解决的问题 OSPF通过区域划分的方式将一个大型的网络分解成多个小区域进行管理,这实际上也是一种网络的分层拓扑结构,这种方式解决了OSPF网络的几个难题,详细如下:
1、解决LSDB日益庞大的问题。
划分区域以后,由于LSDB只需要在一个区域内进行维护,因此,大量的LSA泛洪扩散就被限制在一个区域里面了。此时路由器仅仅需要和它所在区域的其他路由器具有相同的LSDB,而没有必要和整个OSPF域内的所有路由器共享相同的LSDB。也就是说,划分区域以后,在一个区域内的路由器将不需要了解他所在区域外部的拓扑细节。因此,在这种情况下LSDB的规模就会大大缩减,降低了对路由器内存和CPU的消耗。同时划分区域以后,可以充分利用路由策略、路由汇总、特殊区域等等各种手段进一步优化网络结构,进一步减少LSA的规模。
2、提高了信息传递效率
划分区域以后,区域之间只交换汇总的路由信息,而不是交换每条详细的路由,这样LSA泛洪的数量就会大大减小,用户维护路由表的协议报文数量就会减少,从而空余出更多的链路带宽供业务报文使用,这对提高信息传递的效率是有好处的。
3、提高了网络稳定性
图3 划分区域后链路震荡的影响范围减小
OSPF网络划分其余以后,一个区域内参与SPF算法的只有区域内的LSA,其他的区域的LSA不参与本区域的SPF算法。例如如图3中,区域1有一条链路质量不好一直处于闪断中,所以区域1的SPF算法会频繁的运算,但是这种影响仅局限在区域1内,其他区域不会因此而重新执行SPF算法,所以这种情况下,网络的震荡被限制在一个更小的范围内,提高了网络的稳定性。
2.3 区域间环路及防环方法 区域的划分解决了OSPF网络的诸多问题,然而任何事情都具有两面性,区域划分也不例外,划分区域后引入了一个需要设计者思考的问题,就是如何避免区域间环路的产生?
OSPF在区域内部运行的是SPF算法,这个算法天然能够保证区域内部的路由不会成环。然而划分区域后,区域之间的路由传递实际上是一种类似距离矢量算法的方式,关注过问鼎OSPF(1)的读者应该还记得RIP协议就是一种基于距离矢量的协议,在问鼎OSPF(1)中我们曾经指出这种方式容易产生环路。
为了避免区域间的环路,OSPF规定直接在两个非骨干区域之间发布路由信息是不允许的,只允许在一个区域内部或者在骨干区域和非骨干区域之间发布路由信息。因此,每个区域边界路由器(ABR)都必须连接到骨干区域。
图4 OSPF区域间环路
假设OSPF允许非骨干区域之间直接传递路由,则可能会导致区域间环路。例如图4所示的网络中,骨干区连接到网络N,这个路由信息会传递至区域1,假设非骨干区之间允许直接传递路由信息的话,那么这条路由信息最终又被传递回去,形成区域间的路由环路。为了防止这种区域间环路,在图4这种网络拓扑中,OSPF禁止Area1和Area3,或者Area2和Areea之间直接交互路由信息,而必须通过Area0这个骨干区域进行路由交互。这样就能防止区域间环路的产生。
2.4 OSPF路由器的角色 划分完OSPF区域之后,根据路由器在不同的区域位置,相应的可以将OSPF域内的路由器划分为如下几种角色,详细如表1所示。
路由器角色
| 含义
|
区域内路由器 (Internal Router)
| 该类路由器的所有接口都属于同一个OSPF区域。
|
区域边界路由器ABR (Area Border Router)
| 该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。
ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
|
骨干路由器 (Backbone Router)
| 该类路由器至少有一个接口属于骨干区域。
所有的ABR和位于骨干区域Area0内部的路由器都是骨干路由器。
|
自治系统边界路由器ASBR (AS Boundary Router)
| 与其他AS交换路由信息的路由器称为ASBR。
ASBR并不一定位于AS的边界,它可能是区域内路由器,也可能是ABR。
|
表1 OSPF路由器类型
2.5 OSPF区域划分案例 图5 OSPF单区域运行案例
图6 OSPF区域划分案例
组网及业务描述
如图5所示,四台路由器R1、 R2、R3以及R4同时运行OSPF,所有路由器运行在一个单区域Area0内。如图6所示,四台路由器运行在不同的OSPF区域内,R1与R2属于Area 1,R2与R3属于Area 0,R3与R4属于Area 2。四台路由器分别都用各自的LoopBack0作为各自的Router ID。
关键配置
实验效果:
1、查看划分区域前后R1上的LSDB信息,详细如下:
图7 单区域运行的时候R1的LSDB信息
图8 划分区域后,R1的LSDB信息
通过对比可以看出,划分区域之前R1上参与区域内路由计算的LSA有7条,而划分区域之后R1上参与区域内路由计算的LSA为3条,另外两条描述的是区域间路由,不参与本区域的路由计算。在更大规模的网络中,划分区域减少LSDB的数量效果更明显。可见通过划分区域,可以达到降低LSDB规模,减少LSA泛洪的作用。
2、划分区域后以R2为例查看OSPF的接口信息,详细如下:
图9 划分区域后以R2为例查看OSPF的接口信息
可以看到,OSPF的区域划分是基于接口的,同一个路由器的不同接口可以属于不同的区域,每个运行OSPF的接口必须指明属于哪一个区域。
3、划分区域后查看R1和R2的LSDB信息,详细如下:
图10 划分区域后查看R1的LSDB信息
图11 划分区域后查看R2的LSDB信息
划分区域后对比R1和R2的LSDB信息可以看到,R1上只有Area1的LSDB信息,而R2上同时有Area0和Area1的LSDB,这是因为R2作为区域边界路由器(ABR)负责传递区域间路由信息,所以ABR必须同时知道骨干区和标准区域的路由信息。
3 再遇难题用虚连接巧解 Y网点终战一触即发 “欧少,你的这个连环阵确实天衣无缝,此役胜算的确大了许多。但是,我总感觉有一点不妥的地方。”华少正目不转睛的盯着桌子上的沙盘,眉头紧皱。
“华少,莫要太担心,成大事都需伴着一定的风险。”欧少一副胸有成竹的样子。
“不对,你看!这一处,没有设备与我们的主力大军有连接之处!”华少顺手一指,的确那一处区域,确实没有与骨干区域有连接的地方。
“这一处么,我已经想到了。”欧少不紧不慢,吐出了一句话。
OSPF随后就跟华为S系列交换机说出了解决的方法-----虚连接。
虚连接(Virtual link)是指在两台ABR之间通过一个非骨干区域建立的一条逻辑上的连接通道。
1、 产生原因
根据RFC 2328,在部署OSPF时,要求所有的非骨干区域与骨干区域相连,否则会出现有的区域不可达的问题。但是在实际应用中,可能会因为各方面条件的限制,无法满足所有非骨干区域与骨干区域保持连通的要求,此时可以通过配置OSPF虚连接来解决这个问题。
图12 OSPF非骨干区没有连接骨干区
如图12中所示,Area2没有连接到骨干区Area0,所以RouterA并不能扮演ABR的功能,因此不会向Area2生成Area0中Network1的路由信息,所以RouterB上没有到达Network1的路由。此时可以考虑部署虚链接来解决这个问题。
2、实现原理
图13 OSPF虚连接实现原理
如图13所示,通过虚连接,两台ABR之间直接传递OSPF报文信息,两者之间的OSPF设备只是起到一个转发报文的作用。由于OSPF协议报文的目的地址不是这些设备,所以这些报文对于两者而言是透明的,只是当作普通的IP报文来转发。
3、规划建议
虚连接相当于在两个ABR之间形成了一个点到点的连接,因此,虚连接的两端和物理接口一样可以配置接口的各参数,如发送Hello报文间隔等。配置虚链接的时候需要注意如下两点:
l 虚连接必须在两端同时配置方可生效。
l 为虚连接两端提供一条非骨干区域内部路由的区域称为传输区域(Transit Area)。
可以看到,虚链接的存在增加了网络的复杂程度,而且使故障的排除更加困难。因此,在网络规划中应该尽量避免使用虚链接,设计者应该仅仅把它用来作为修复无法避免的网络拓扑问题的一种临时手段。虚链路可以看作是一个标明网络的某个部分是否需要重新规划设计的标志。
“如何?你还有什么可担心的么?”欧少边说着边往帐外走去。
华少听完他所说的,又看了沙盘半晌,直到发现再无边边角角有问题的地方,便默然点头。但是他心中的那一丝不妥却仍未有何消减,却也只能跟着走出帐外。
三军将士,尽皆肃立。
“Y网点大战几近一年,我们在这耗的太久了,也知道诸位将士耗不起了。”欧少顿了一顿又对三军将士道,“而今终得破敌连环阵,诸位,成败在此一举!DR!ABR!ASBR!”
“末将在!”
“得我烽火敕令,率军攻敌!”
“是!”
但见得风云色变,尚不知鹿死谁手。
大战,一触即发。
时间: 2015-8-14 20:44
作者: nanyou2009boy
标题: 【华为原创连载】问鼎OSPF(5)-内外疾行烽火令,锦绣山河尽囊中
上一期我们讲到网络中Y网点大战一触即发,此战将是决定中原鹿死谁手的关键一战,夜幕已经降临,军中将士仍然在来回穿梭为即将来临的大战做最后的准备。
营帐中华少和欧少正在对照作战沙盘争论本次作战的战略战术。“华少,在你看来Y网点这一站我军的主要软肋在哪里?”欧少面色凝重的问。华少似乎早已考虑过这个问题,不慌不忙的说到,在我看来,本次作战十分关键,这一战将决定我们是否能够称霸中原,将决定我们能否把锦绣山河尽收囊中,将士们行军打仗这么些年建功立业、改换门庭的机会就在这一战。就实说,我军数量上占优势,地势上也占上风,然而最大的软肋却是本次作战是多战区、多方阵联军作战,战胜的关键在于是否能够协调各方作战的步调,说白了就是怎么解决多个战区之间互相通报作战方略的问题。欧少,你师出名门,看你是否有比较高明的战略?
OSPF对于华少的分析还是非常认同的,他觉得华少点点数语却道出了此次作战的关键所在。欧少转身对华少道,昨夜月明星稀,我卧在榻上想起了老师教给我的七色烽火阵法,运行此阵法时军中无将帅,所有将士全部根据七种烽火令的指挥协同作战。这样,多战区、多方阵作战的情况下战力上和作战速度上将会有极大的提升,如果全军将士熟练掌握这七种烽火令,可保此战八成以上胜算。
华少听了欧少的叙说顿时精神大振“快快详细拆解,说与我和各位将领听听”
OSPF所说的七色烽火阵法即是指的不同类型的LSA。前面曾经提到OSPF划区而治,每个区都维护自己独立的LSDB,网络中的路由设备也会被定义为不同的角色。而必然OSPF最核心的LSA也要根据路由设备的类型被分门别类。下面我们来逐个介绍一下这七种烽火令的使用方法,也请华少告诫军中所有将士,务必熟练掌握七种烽火令含义及使用方法。
图1 划分区域的OSPF网络
如图1是一个被划分区域的OSPF网络:
l 所有设备配置的接口IP地址及Rouer ID如图所示;
l R4上配置静态路由,在R4上将这个静态路由import进OSPF进程。
我们看下R2设备上的LSDB信息,如图2所示。
图2 R2设备上的LSDB信息
其中Tpye就是指LSA的类型,在R2的LSDB信息中有:Router LSA、Network LSA、Sum-Net LSA、Sum-Asbr LSA以及External LSA。这已经占据了7种主要的LSA类型中的5种,下面我们将详细介绍。
一、赤色烽火令Type1:Router-LSA Router-LSA是一种最基本的LSA,即Type 1 LSA,中文名路由器LSA。
OSPF网络里的每一台路由设备都会发布Type 1 LSA。这种类型的LSA主要的目的是做自我介绍,告诉同区域其他路由设备它在此区域中所有的链路状态以及开销。以R2为例,如图3,R2在Area0、Area1会分别发布Router-LSA。
将运行OSPF的网络比作为一个部落,部落划分了很多区域比作村子。那Type 1 LSA就是村子里村民做的自我介绍,这个信息只在这个村子传播,每个村民都了解该村其他村民的信息。
图3 Type 1 Router-LSA
我们来详细看一下Router LSA中包含的信息。如图4,这是通过抓包软件看到的R2在GE0/0/1接口上泛洪的一条LSA。
图4 Router-LSA信息
LSA报文主要分LSA头部和LSA信息字段。所有类型的LSA报文,其LSA头部包含的字段都是一样的,唯一不同的是Link state ID字段含义。在LSA头部中,我们主要关心以下三个字段:
l Link-State Advertisement Type:LSA类型
l Link state ID:链路状态ID。在Router-LSA中代表始发该LSA的设备的Router ID,这里即是R2自己的Router ID。
l Advertising Router:通告路由器
Router-LSA的信息字段有三个,用于将自己连接的所有链路的状况以及开销告诉该LSA泛洪区域的其他路由设备。
该LSA描述的信息就是链路类型为一个传送网络(Transit),DR接口的IP地址为192.168.23.2(ID),和网络相连的通告路由器接口的IP地址是192.138.23.1(Data),到达该网络的花费值是1(Metric)。
(路由设备就是根据这些链路状态的描述从而生成拓扑)。
其中,Link Type有4种类型,并且ID和Data的值会根据Link Type而有不同:
l 1-P2P(点对点):此时Link ID表示邻居路由设备的Router ID,Data表示和网络相连的通告路由器接口的IP地址。
l 2-Transit(传送网络):此时Link ID表示DR接口的IP地址,Data表示和网络相连的通告路由器接口的IP地址。
l 3-Stub(末梢网络):此时Link ID表示IP网络或子网地址,Data表示网络的IP地址或子网掩码。
l 4-Virtual Link(虚链路):此时Link ID表示邻居路由设备的Router ID,Data表示通告路由器接口的MIB-II ifIndex值。
我们可以直接通过命令行查看R2上LSDB中所有的Router-LSA,如图5所示。
图5 R2上LSDB中所有的Router-LSA
根据图中对Area0的详细描述, Area1中的LSA又分别是什么含义呢?
Area1中有两条Router LSA:一条通告路由器是R2,并告知本区域其他路由设备与该区域相连的接口的IP地址为192.168.12.2;另一条通告路由器是R1,告知本区域其他路由设备与该区域相连的接口的IP地址为192.168.12.1。在同一区域中的路由设备,都会收到该区域路由设备发出的自我介绍。
二、橙色烽火令Type2:Network-LSA R2的LSDB中第二种LSA类型是Network-LSA。也就是Type2 LSA,中文名网络LSA。
如图6所示,Network-LSA由DR发布,描述本网段的链路状态,也是在所属的区域内传播。
假设DR是一个村子的村长,负责描述与之交互的所有村民的信息。并将这些信息在整个村子里传播。
图6 Type2 Network-LSA
我们来详细看一下Network LSA中包含的信息,如图7。
图7 Network LSA信息
前面说过,LSA头部的字段都是一样的,只是Link state ID字段的含义不同。在Network-LSA中,Link-State ID字段的含义是DR接口上的IP地址。
在Network LSA中列出了所有与DR形成完全邻接关系的路由设备Router ID,有没有觉得一张以DR为中心的拓扑已经了然于心 !
下面我们来看看R2上LSDB中所有的Network--LSA。(在这之前,各位可以先想象一下,R2上应该有几条Network-LSA呢?)
图8 R2上LSDB中所有的Network—LSA
通过Type 1 Router LSA和Type2 Network-LSA在区域内洪泛,使区域内每个路由设备的LSDB达到同步,这就解决了区域内部的通信问题。那区域之间的通信怎么解决呢?
三、黄色烽火令Type3:Network-Summary- LSA 接下来我们来看看黄色烽火令,即Network-summary-LSA,也叫Type3 LSA,中文名网络汇总LSA。
Network-summary-LSA由区域边界路由器ABR发布,用来描述区域间的路由信息,ABR将Network-summary-LSA发布到一个区域,通告该区域到其他区域的目的地址。实际上就是将区域内部的Type1 Type2的信息收集起来以路由子网的形式扩散出去,这就是Summay的含义,如图9所示,R2作为ABR,将Area0和Area1中的路由信息分别发布对方区域。
ABR相当于通信联络员,负责村子与村子之间的通信。ABR将一个村子的Type1 Type2的信息进行汇总形成路由信息传递到另外一个村子,另外一个村子同样将该村Type1 Type2的信息进行汇总形成路由信息传递到这个村子。
图9 Type3 Network-summary-LSA
我们先看看Network-summary-LSA中包含的信息。如图10,这是在R2的GE0/0/1上发布的一条Network-summary-LSA。
图10 Network-summary-LSA信息
在Network-summary-LSA中,Link-State ID字段代表该LSA所描述的网络的网络地址。从LSA的信息中可以看出,该LSA由R2发布(10.2.2.2),可以到达192.168.12.0,掩码为255.255.255.0的网络;
代价为1。
由此可以看出,R2将Area1中的网络地址在Area0中发布,从而可以让Area0中的路由设备知晓去该网络的路径,实现区域间的通信。我们再通过命令来看看R2上LSDB中所有的Network-summary-LSA。
图11。
图11 R2上LSDB中所有的Network-summary-LSA
由图11可以看到,R2的LSDB中,Area0包含了到达192.168.34.0以及192.168.12.0的网络,Area1包含了到达192.168.23.0及192.168.34.0的网络。
不知大家是否注意到了,Area0和Area1中,同样是到达192.168.34.0的网络,但通告路由器却是不同的,这是什么原因呢?原来如果ABR收到来自同区域其它ABR传来的Type 3 LSA后,会重新生成新的Type3 LSA(Advertising Router改为自己),然后继续在整个OSPF系统内扩散。
江湖小贴士:如果—台ABR在与它本身相连的区域内有多条路由可以到达目的地,那么它将只会始发单一的一条网络汇总LSA到骨干区域,而且这条网络汇总LSA是上述多条路由中代价最低的。
四、绿色烽火令Type4:ASBR-Summary-LSA R2 LSDB中还有一种叫ASBR-summary-LSA,也叫Type4 LSA,中文名为ASBR汇总LSA。
如图12所示,该类型LSA也是由ABR发布,描述到ASBR的路由信息,并通告给除ASBR所在区域的其他相关区域。
ASBR也是通信联络员,与ABR不同的是,ASBR是部落间的通信员,负责部落间的通信。一个部落所有村子里的村民如果想要和其他部落通信,必须经过ASBR。ASBR-summary-LSA的作用就是告诉非ASBR所在村的其他村的村民,ASBR在哪,怎么才能去ASBR。
图12 Type4 ASBR-summary-LSA
图13是R3往R2发布的一条ASBR-summary-LSA,此处的Link State ID表示该LSA所描述的ASBR的Router ID(10.4.4.4),即R4,发布该LSA的路由设备是R3(10.3.3.3),R3到达R4的代价是1。
图13 ASBR-summary-LSA信息
我们可以看下R2上LSDB中的ASBR-summary-LSA信息,如图14所示。
图14 R2上LSDB中的ASBR-summary-LSA
五、青色烽火令Type5:AS-external-LSA 在R2的LSDB中,还有最后一种LSA—External,即AS-external-LSA,也叫Type5 LSA,中文名为AS外部LSA。顾名思义,此种LSA是描述到AS外部的路由,由自治系统边界路由器ASBR发布,在整个AS中泛洪(除了STUB区域和NSSA区域,后面章节会详细介绍到)。如图15,R4作为ASBR发布了一条OSPF AS到外部目的网络的路由信息。
这种很容易理解了,就是部落内任意一个村民到该部落外部的路由。由部落间通信联络员ASBR发布。
图15 Type5 AS-external-LSA
看下AS-external-LSA中包含的信息,如图16所示。
图16 AS-external-LSA信息
在AS-external-LSA中,Link State ID代表外部网络目的IP地址,转发地址是指到达该外部网络的数据包应该被转发到的地址。此处的转发地址为0.0.0.0,意思是数据包将被转发到始发ASBR上。
如图17是R2上LSDB中的AS-external-LSA信息。
图17 R2上LSDB中的AS-external-LSA
六、紫色烽火令Type7:NSSA-LSA 目前为止,我们一共讲解了5类LSA,分别是Router-LSA、Network-LSA、Network-summary-LSA、ASBR-summary-LSA、AS-external-LSA。还有一种比较特殊的LSA, Type7 NSSA LSA,接下来我们就一起看下。
我们将文中开头的组网图,Area2配置为NSSA区域。看下R4的LSDB,如图18,该LSDB中包含了两条NSSA LSA,其中一条就是ASBR始发的。
江湖小贴士:不知道大家是否还记得,我们在第四篇时介绍过几种特殊区域。NSSA区域允许本区域ASBR引入的外部路由在该区域内传播,但不允许其他区域引入的外部路由在本区域内传播。
图18 配置NSSA区域后R4的LSDB
图19是R4 GE0/0/0接口上始发的NSSA LSA。NSSA LSA所有的字段与AS-external-LSA字段均相同。
图19 NSSA LSA
但他们泛洪的区域不同,AS-external-LSA是在整个AS泛洪,而NSSA LSA仅仅是在NSSA区域中泛洪。
如图20,从R3的LSDB中可以看出,NSSA LSA只存在于Area 2(NSSA区域)中。
图20 配置NSSA区域后R3的LSDB
在图18 R4的LSDB中,还有一条NSSA LSA(LinkState ID:0.0.0.0),这是在ABR(R3)上会自动产生缺省的Type7 LSA到NSSA区域,关于OSPF中的缺省路由后续会详细讲解。
NSSA区域允许引入外部路由,但外部路由信息的NSSA LSA只能在本区域泛洪,那外部路由如何能传递给整个自治域呢?
大家可以看下R3的LSDB即图20,在“AS External Database”中,有一条Tpye5的AS-external-LSA,目标网络是10.44.44.44,通告路由器是R3,这是因为Type7 LSA在ABR(R3)上转换成Type5 LSA,并且泛洪到骨干区直至整个自治域中。这样就将外部路由引入到了除NSSA区域的其他区域。
为了证实这一点,我们再看下R1上的LSDB,如图21所示。
图21 配置NSSA区域后R1的LSDB
R1上同样有一条Type5的LSA,目标网络是10.44.44.44,通告路由器是R3。
欧少似乎有种如释重负的感觉道,我要说的七色烽火阵法就是这样一个运行机制,众将士都听明白了吗?华少第一个急切的问:“你命名说的是七色烽火阵法,这才说了6种烽火令嘛,缺了一种蓝色烽火令Tpye6嘛”。此战至关重要,欧少你可勿要马虎大意啊。
欧少缓缓道:华少莫要着急,我在山中听老师讲解时确实是七色烽火阵法,只不过这蓝色烽火令Tpye6老师也没给我看过。老师只说这蓝色烽火令Tpye6 LSA为group-membership-LSA,是在MOSPF中用于标识组播组成员用的,用户组播路由。可惜MOSPF基本被淘汰。哎。。。另外,还有Type9/Type10/Type11,提供用于OSPF的扩展的通用机制,此处就不介绍了。
听完欧少的讲解,华少及众将士有种豁然开朗的感觉,特别是华少,对此次作战的信心大增,大有跃跃欲试的冲动。众将士也是你一言我一语开始躁动起来。
欧少见状说:众将士莫要躁动,我这里有几张张老师赠予我的铭牌,上面详细罗列了这七色烽火阵法的使用方法,众将士请各领一个回去带全军兄弟们操练该阵法的使用方法,此战胜负在此一举了,欧少深深一躬到底,拜托各位将士了。……
七、无声奇战旷古未闻,锦绣山河尽收囊中 寥寥数日,大战果然开打,然而这确实异常旷古未闻的奇战、恶战。大战开始却听不到任何鸣金声、没有任何杀喊声,军中仿佛没有了将帅一般,唯见朦胧月下七色烽火此起彼伏,而将士们却像入了魔一样听从这七色烽火的指挥打仗。对方军中将士直感叹这打法真是奇特、真是从未见过。将士们跟随七色烽火令的指挥神出鬼没一般冲入敌军营地,及至东方发白,战事逐渐结束。
华少兴奋撤回将士们,兴冲冲的来到帐中,欧少,你这阵法真是奇特,运筹帷幄之中却决胜千里之外,我们几大战区联军作战全都大获全胜,此次作战中原各地全数拿下,我们扫平四海,称霸中原的日子快到了!
时间: 2015-8-14 20:53
作者: nanyou2009boy
谢谢各位关注。
时间: 2015-8-15 17:46
作者: nanyou2009boy
时间: 2015-8-17 10:04
作者: candy_guo
高人,怒顶
时间: 2015-8-30 21:30
作者: nanyou2009boy
标题: 【华为原创连载】问鼎OSPF(6)-因地巧施张良计,宏图霸业指日统
寒星似铁,如钩月,几度离人肠。
醉卧沙场,红尘叹,何苦问苍茫。
和歌剑舞,自嘲弄,凭添一惆怅。
但却为何,忘忧梦,总拂过绿裳。
俊俊的人儿准是梦到了什么好事,平日那脸上的一丝沧桑,那眉间的一抹忧愁都化开了。
真好看。
“阿兰,再瞧你就要成一朵花了。”突然从背后冒出来一句话,吓了阿兰一跳。待她看清来人是谁,正待臭骂那白衣无赖,那个华阿哥叫他做欧少的人一顿,那人却做了一个噤声的手势,然后正色道:“阿兰,和你阿爹谈的如何了,边疆地域特殊,我们不能像一般的中原地域去征讨这里。而你们世世代代居于此,我们亦不希望打破此间平和。”
“说了,我阿爹是个明事理的人,他知道什么对族人好,什么对族人不好,只不过多了个封号,却还是我们自己管自己。”阿兰说道,“现如今他正在联络其他几个部族的人,这需要些时日。”
“哦…..那就好。”欧少长吁了一口气,由我所定的四个特殊区域,分封这四族为镇守,应无后顾之忧了。他看了看远处的华少,又对阿兰认真的道:“阿兰,其实你的华阿哥已经有喜欢的人了,你知道么?”
“知道……”阿兰咬了咬嘴唇,像他这样的人,除了喜欢的人,能有什么让他化不开忧愁的呢?“但我不在乎,我只做华阿哥的一个小阿妹就好。”
欧少正待再劝她,但见她神色郁郁,却又有点不忍。
静立半晌,欧少转身欲走。突地又想起了一件事,回头对她说:“哦,对了,刚你瞧的像个痴人花。”
“痴人花?痴人….花?吃人花?!回来!你给我回来!”待得反应过来,哪里还有白衣飘飘的影子,她却也只得恨恨的跺了跺脚……
因地巧设特殊区域,引四族襄助大业
在上一期问鼎OSPF中,我们介绍了OSPF的各种类型的LSA,OSPF网络依靠各种不同类型的LSA完成LSDB的同步,从而计算出整个网络的拓扑结构。然而,对于OSPF区域,并不每种LSA都是必须有的,有些比较特殊的区域需要有一些特殊的手段进行管理,本期我们详细介绍一下OSPF的特殊区域,以及不同特殊区域里LSA的管理规则,也就是华少与小阿妹商讨的四族自治四个特殊区域的事。
1 OSPF为什么需要划分特殊区域1.1 OSPF的Stub区域和Totally Stub区域的由来 图1 OSPF的Stub区域和Totally Stub区域
我们来看一下图1所示的网络,OSPF划分了Area 0和Area 2,同时在Area 0内有的ASBR引入了外部路由。通常,为了保证网络的路由可达性,可能把网络的各个角落的路由全都发布进了OSPF,此时虽然各路由设备都能够到达网络的各个角落了,但是如果网络越来越大,设备越来越多,那么每台设备的路由表项就会越来越大,而维护一个大规模的路由表项是需要消耗很多CPU及内存资源的。特别是对于一些边缘区域,设备性能可能比较低,如果也需要维护这么大规模的路由表项的话可能是一种巨大的压力。
从网络优化的角度考虑,我们通常在保证网络可达性的同时尽量减小路由表项的规模,尽量减少网络中LSA报文的泛洪。对于图1所示的网络,Area 2如果作为一个常规区域,那么可能存在Type1、Type2、Type3、Type4、Type5共计5中类型的LSA,但是实际上Area 2中的设备真的需要这么多种类型的LSA吗?对于Area 2中的路由器,无论他们想到达的域外的哪个网络,都必须首先到达到ABR路由器,也就是说这个时候Area 2中的路由器并不需要了解外部网络的细节,它仅需要通过ABR路由器到达外面的世界就可以了。这种情况下,就产生了OSPF的第一种类型的特殊区域——Stub区域。 配置Stub之后,自治系统外部的路由就不会在本区域内传播了,这样就减少了Area 2中LSA数量。
细心的读者可能会问一个问题,如果Area 2中的路由器想进一步减少自己的路由表项的规模呢?仔细分析一下可以看出,对于Area 2中的路由器来说,其实区域间的明细路由它也没必要都了解,仅保留一个出口让Area 2中的路由器的数据包能够出去就足够了。这就产生了OSPF的第二种类型的特殊区域——Totally Stub区域,也叫完全Stub区域。配置了Totally Stub区域以后,既不允许自治系统外部的路由在区域内传播,也不允许区域间路由在区域内传播。这样就能达到进一步减少区域内LSA数量的目的。
1.2 OSPF的NSSA区域和Totally NSSA区域的由来 图2 OSPF的NSSA区域和Totally NSSA区域
如图2所示,假设Area2原来作为一个Stub区域运行,但是某一天有个外部网络需要通过Area2接入到这个OSPF网络。也就是需要将自治域外部路由引入并传播到整个OSPF自治域中,此时可以在RTA上将外部路由注入到OSPF域,但是这种配置将使RTA成为ASBR,因此,Area2也就不是Stub区域了。 针对这种场景,OSPF定义了NSSA区域(Not-So-Stubby-Area NSSA) ,为了容易记忆,大家可以把它叫做“不那么Stub区域”,意思是在Stub区域的基础上做了一定的变通(允许引入外部路由了),所以就变得“不那么Stub”了。类似的,如果想进一步减少LSA数量,可以配置成Totally NSSA区域。
2 OSPF特殊区域详解 上一小节我们介绍了OSPF的四种特殊区域的产生背景,但是各位读者是否还是对OSPF特殊区域有点云山雾绕的感觉?没关系,接下来我们结合一个实验,来详细介绍一下OSPF的4种特殊区域的LSA及路由管理规则,同时介绍一下不同区域的缺省路由产生规则。
图3 OSPF特殊区实验网络拓扑
组网如图3 所示:
l 所有设备都配置LoopBack0,地址如图3所示,该地址不在OSPF内发布,只作为OSPF Router ID使用;
l R4上配置LoopBack1接口地址作为测试网段,在R4上将这个直连路由import进OSPF进程,通过路由策略控制只引入这一条直连路由。
2.1 标准区域 按照上述拓扑,完成关键配置,此时没有划分特殊区域,Area1和Area2都是标准区域,我们看一下标准区域的路由及LSA管理规则。以R1为例,路由表及LSDB如下:
图4 Area1为标准区域的时候R1的IP路由表
从图4可以看到,此时R1的路由表中有OSPF区域间路由,并且有一条自治系统外部路由10.44.44.44/32。
图5 Area1为标准区域的时候R1的LSDB
可以看到,此时R1的LSDB里面有Type1、Type2、Type3、Type4、Type5类LSA。
下面根据上述实验详细讲解一下不同特殊区域的缺省路由发布原则。
2.2 Stub区域 图6 Stub区域的LSA管理规则
Stub区域不允许自治系统外部的路由(Type5 LSA)在区域内传播,也不允许到达ASBR的Type4 LSA在区域内传播。因此这些区域中路由设备的路由表规模以及路由信息传递的数量都会大大减少。这样一来Stub区域内的路由器除了ABR外没有自治系统外部路由,如果它们想到自治系统外部时该怎么办呢?为保证到自治系统外的路由依旧可达,Stub区域的ABR将生成一条缺省路由,并发布给Stub区域中的其他非ABR路由器。
一般情况下,Stub区域位于自治系统的边界,是只有一个ABR的非骨干区域。配置Stub区域的时候需要注意:
l 骨干区域不能配置成Stub区域。
l Stub区域内不能存在ASBR,因此自治系统外部的路由不能在本区域内传播。
l 虚连接不能穿过Stub区域。
下面我们来通过实验验证一下。配置Area1为Stub区域,需要做一些配置更改,具体如下:
实验效果:
图7 Area1为Stub区域的时候R1的IP路由表
通过图4和图7的对比可以看到,配置Area1为Stub区域以后,R1上自治系统外部路由消失了,取而代之的是一条ABR(R2)自动下发的缺省路由,是Type3 LSA描述的。
图8 Area1为Stub区域的时候R1依靠缺省路由的指引到达AS外部
如图8所示,此时R1上虽然没有了到达10.44.44.44/32的明细路由,但是依然能ping通10.44.44.44/32这个地址,这是因为此时有一条ABR自动下发的缺省路由,这条缺省路由能够指引R1的数据流到达自治系统外部。
图9 Area1为Stub区域的时候R1的LSDB
可以看到,此时Type5 LSA(External)、Type4 LSA(Sum-Asbr)已经消失,取而代之的是一条ABR(R2)自动下发的缺省路由Type3 LSA。此时R1上仅有Type1、Type2、Type3以及Type3缺省路由这几种LSA。
2.3 Totally Stub区域 图10 Totally Stub区域的LSA管理规则
Stub区域能够起到减少区域内路由表项规模的作用,但是这似乎还不够彻底,实际上也可以不关心区域间的路由细节,而仅预留一个到达其他区域的出口即可。这种情况下可以将这个区域配置成Totally Stub区域。
Totally Stub区域既不允许自治系统外部的路由在区域内传播,也不允许区域间路由在区域内传播。区域内的路由设备必须通过ABR学到自治系统外部和其他区域的路由。实现方法是配置Totally Stub区域后,ABR会自动产生一条缺省的Summary LSA(Type3 LSA)通告到整个Totally Stub区域内。这样,自治系统外部的路由和其他区域间的路由都可以通过ABR到达。
现在将Area1配置为Totally Stub区域。将配置修改为如下:
实验效果:
图11 Area1为完全Stub区域的时候R1的IP路由表
通过图7和图11的对比可以看到,Area1为完全Stub区域的时候R1上外部路由和区域间路由消失了,取而代之的是一条ABR(R2)自动下发的缺省路由,是Type3 LSA描述的。
图12 Area1为完全Stub区域的时候R1依靠缺省路由的指引到达AS外部
此时R1上虽然没有了自治系统外部路由,也没有了区域间的路由,但是ABR会自动下发一条缺省路由,用于指引R1的数据流到区域外部或者自治系统外部,所以此时R1仍然能够ping通10.44.44.44这个地址,R1仍然能够全网可达。
图13 Area1为完全Stub区域的时候R1的LSDB
可以看到,此时R1的LSDB里面Type5 LSA(External)、Type4 LSA(Sum-Asbr)、以及描述区域间路由的Type3 LSA都已经消失,取而代之的是一条ABR(R2)自动下发的缺省路由Type3 LSA。
2.4 NSSA区域 图14 NSSA区域的LSA管理规则
NSSA区域允许引入少量通过本区域的ASBR到达的外部路由,但不允许其他区域的外部路由ASE LSA(Type5 LSA)在区域内传播。ABR自动产生一条缺省的NSSA LSA(Type7 LSA),通告到整个NSSA区域内。这样,除了某少部分路由通过NSSA的ASBR到达,其它路由都可以通过NSSA的ABR到达。在ASBR上手动通过命令进行配置,使ASBR产生一条缺省的NSSA LSA(Type7 LSA),通告到整个NSSA区域内。这样,外部路由也可以通过本区域NSSA的ASBR到达。Type7 LSA缺省路由不会在ABR上转换成Type5 LSA缺省路由泛洪到整个OSPF域。
现在将Area2区配置成NSSA区域。将配置修改为如下:
实验效果:
图15 Area2为NSSA区域的时候R3的IP路由表
从图15中可以看到,此时R3的路由表中学习到了一条10.44.44.44/32的自治系统外部路由,这条路由被标记为O_NSSA类型,表示这条路由是由Type7 LSA计算出来的。
图16 Area2为NSSA区域的时候R4的IP路由表
从图16中可以看到,R4上有一条缺省路由并且协议类型为O_NSSA,表示是由Type7 LSA描述的,这条缺省路由是由ABR(R3)自动产生的。
图17 Area2为NSSA区域的时候R4的LSDB
从图17中可以看到,此时R4的LSDB里面存在Type1 LSA,Type2 LSA,Type3 LSA,Type7 LSA,同时R4的LSDB里面存在一条由R3产生的Type7 LSA,描述了一条缺省路由。
对于NSSA区域的ASBR(R4),手动通过命令进行配置,也可以使ASBR也产生一条缺省的NSSA LSA(Type7 LSA)。注意在ASBR上只有当路由表中存在缺省路由0.0.0.0/0,才会产生Type7 LSA缺省路由。
R4的配置修改如下:
#
acl number 2000
rule 5 permit source 10.44.44.44 0
#
ospf 1 router-id 10.4.4.4
import-route direct route-policy RP
area 0.0.0.2
network 192.168.34.0 0.0.0.255
nssa default-route-advertise
#
route-policy RP permit node 10
if-match acl 2000
#
ip route-static 0.0.0.0 0.0.0.0 NULL0
//必须路由表中存在缺省路由0.0.0.0/0,才会产生Type7 LSA缺省路由
#
实验效果:
图18 R4作为NSSA区域的ASBR通过nssa default-route-advertise下发缺省路由
可以看到,此时R4的LSDB里面存在两条描述缺省路由的Type7 LSA,一条是ABR(R3)自动产生的,另外一条是NSSA区域的ASBR(R4)手动配置nssa default-route-advertise命令以后产生的。
我们再来看一下此时R2的路由表项及LSDB信息:
图19 Area2为NSSA区域的时候R2的IP路由表
图20 Area2为NSSA区域的时候R2的LSDB
可以看到10.44.44.44/32这条路由在Area0区域被标记为O_ASE路由,表示这条路由在NSSA区域的ABR(R3)进行了Type7 LSA转换成Type5 LSA;但是R2上并没有学习到O_ASE缺省路由,也没有描述缺省路由的LSA,所以Type7 LSA缺省路由不会在ABR上转换成Type5 LSA缺省路由泛洪到整个OSPF域,只会在NSSA区域内部泛洪。
2.5 Totally NSSA区域 图21 Totally NSSA区域的LSA管理规则
Totally NSSA区域既不允许其他区域的外部路由ASE LSA(Type5 LSA)在区域内传播,也不允许区域间路由(Type3 LSA)在区域内传播。区域内的路由器必须通过ABR学到其他区域的路由。实现方法是配置Totally NSSA区域后,ABR会自动产生缺省的Type3 LSA和Type7 LSA通告到整个Totally NSSA区域内。这样,自治系统外部路由和区域间路由都可以通过ABR到达。
现在将Area2区域配置成Totally NSSA区域。将配置修改为如下:
实验效果:
图22 Area2为Totally NSSA区域的时候R4的IP路由表
图23 Area2为Totally NSSA区域的时候R4的LSDB
可以看出,R4上存在一条由Type3 LSA描述的缺省路由,但是R4的LSDB里面存在两条描述缺省路由的LSA,都是ABR(R3)产生的,一条是Type3 LSA,一条是Type7 LSA。
3 OSPF各种特殊区域允许出现的LSA总结 OSPF各种特殊区域允许出现的LSA总结如下表所示
征蛮荒终得大统,出塞外恐再遇佳人
蛮荒殿,朝圣台。
英武小将和清秀小生端站台前,下边立着一众衣饰各异的人。
欧少朝这些不同着装的人躬身一拜,华少亦随之,然后朗声道:“自立少帅军伊始,与华少帅中原逐鹿已三年有余,一路势如破竹,秀美山河尽收囊中。然国无百族不荣,四方内外皆我天朝上国子民。今幸诸族入我治下,收我万里边疆得大统!”
四族振奋,礼乐齐名。
“愿入左右少帅治下。”四族族长单膝跪地,右臂横于胸前。
“今封东夷族长为Stub区域边陲大将!”
“今封南蛮族长为Totally Stub区域边陲大将!”
“今封西戎族长为NSSA区域边陲大将!”
“今封北青丘族长为Totally NSSA区域边陲大将!”
“慢!”待得听封这最后一位族长时,欧少却被这位族长给打断了话,“呵呵呵呵,左少帅果真是一个英俊倜傥的人儿。此番来,我并不是来受封的,我是想你去见一个人。”
欧少细细打量了一下这个族长,但见她轻纱抚面,碧眼琼鼻,却怎么这么熟悉?
“人?要见得什么样的一个人?”
“呵呵呵呵,去塞外你就知道了,那个让你朝思暮想的人……”说完,她已飞出殿外,踪影难寻。
朝思暮想?
难道是她?
附件: 002.PNG (2015-8-30 21:35, 174.01 KB) / 下载次数 1
https://www.txrjy.com/forum.php?mod=attachment&aid=MjY3MDIzfDllNWI5NjI2fDE3MzIxNzk2NTB8MHww
时间: 2015-8-30 21:39
作者: nanyou2009boy
标题: 【华为原创连载】问鼎OSPF(7)-联手VPN智破环,塞外扬威俱相荣
少年英俊潇洒,仗剑天涯,
结豪侠逍遥江湖,朝生暮醉。
又谁忆起,寒楼高阁红影,夜夜垂泪?
弹指红颜老,郎君可期?
转瞬已白首,伊人何在?
一世风光荣华,到头来,却羡鸳鸯,不羡仙。
富丽堂皇逍遥宫,佳肴琼浆美人伴,左右少帅掉进了红粉窟。
那一日,他们一路追随青丘族长,到了边疆塞外,便被一群人请到了这里。
想那时候那个人见到生人都会羞的躲在师父的背后,现如今却变成这样了么?
舞娘慢慢从大殿中央退下,施施然的从偏殿走出了一众人,中间簇拥着一个面蒙轻纱,美眸慑人心魄,身披华贵貂绒外衣,姿段曼妙的佳人。
“是你?!”欧少诧异不已。
“呵呵,可不是我么?当日路由圣山一别,今日再见,我当称呼你是大战RIP的白衣少年,OSPF,还是图得万里江山的左少帅,欧少帅呢?”佳人声若魔音,柔媚不已。
“当日,便知姑娘必是位贵人,原来不知竟是这样的人物,”欧少恢复以往的泰然自若,“啊不,称呼统管四方私网通信的VPN为姑娘,真是大不敬,还望宫主赎罪。”
“呵呵,真是一如既往的伶牙俐齿。免你大不敬之罪,而且,”VPN那双美眸还挑衅似地像他眨了眨,“不许你叫我宫主,叫我V姑娘。”
“呃,那么……V姑娘,”欧少还了身旁仍在云里雾里的华少一个歉意的眼神,然后道“你叫你的族人找我所为何事呢?”
“愿与我联手么?不过VPN网络可不是那么简单的哦。”
欧少早已了然于胸,遂笑道:“V姑娘可是担心OSPF应用于VPN场景下的环路问题?这我早已有计议。”
路由破环显神威
在上一期问鼎OSPF中,我们介绍了OSPF特殊区域的设立,以及这些特殊区域中可以使用的LSA。从前几期的介绍中,我们知道,OSPF拥有一个最为人津津乐道的能力,就是能够计算出无环的路由。不管是区域内的路由(Intra-Area Route)还是区域间(Inter-Area Route)路由,在OSPF设计之初就考虑到路由环路的问题,所以OSPF各种区域在处理Type1、Type2、Type3、Type4、Type5和Type7 LSA时,能够确保路由无环。
当然,在OSPF多实例场景中,也存在一套避免路由环路的方法,也就是OSPF所说的计议。介绍之前,我们先了解两个概念。
1 OSPF多实例1.1 多实例 BGP/MPLS IP VPN场景中PE和CE之间需要进行路由传递,就要得到各路由协议的支持。由于传统路由器只有一张路由表,为了不影响原来的路由信息,各路由协议必须扩展其功能才能在BGP/MPLS IP VPN场景中使用。
OSPF对其自身协议进行扩展,创立OSPF VPN多实例。支持在BGP/MPLS IP VPN场景的PE和CE之间运行,进行路由的学习和发布。在多实例场景中,路由器上会存在多个独立的路由表,之间的路由信息相互隔离。
1.2 Domain ID 我们知道,BGP/MPLS IP VPN本质是通过MPLS骨干网,将本端PE与CE之间的路由传递到对端PE。这个传递过程不再详细描述,有兴趣的小伙伴可以去搜索第一期华为悦读汇有关BGP/MPLS IP VPN的介绍。这里值得指出的是,PE之间是通过MP-BGP协议传递的路由信息。那这又跟我们这里OSPF多实例有什么关系呢? 从多实例的定义中,PE和CE之间运行路由协议,相互学习路由。其实这里可以使用的路由协议有很多,诸如静态路由、RIP、OSPF、BGP等协议。在OSPF多实例场景中,PE将OSPF路由引入BGP,从而传递到对端PE;当然,对端PE发过来的BGP路由,也会引入OSPF中。这样,在两端的PE设备上,分别存在一个OSPF区域,Domain ID则用于区分这两个区域是否属于同一个OSPF域。如果属于同一个OSPF域,PE则把BGP传来的远端路由通过Type3 OSPF路由发布给CE,否则发布Type5或Type7的OSPF路由。
这里插播一下: PE和CE之间运行路由协议虽然有很多,但是最常用的还是EGBP。那么为什么还要有OSPF VPN多实例呢?也许是因为其他路由协议都支持了,OSPF不能不支持的心理在作祟;也许是网络发展进程中,PE和CE已经习惯使用OSPF了吧。对这一点感兴趣的小伙伴不妨跟帖回复你认为的原因,可能有意想不到的惊喜哟!
2 巧破OSPF多实例路由环路 图1 OSPF多实例典型组网
上图是典型的OSPF多实例组网,从前面的原理我们知道,PE1通过BGP从PE2收到关于CE2的OSPF路由,将这些路由的产生者的地址修改成自己,然后发布相关的Type3、Type5或Type7的OSPF路由给CE1。CE1再向其他区域发布这些路由时,会将PE1作为ASBR,这样就能实现跨越MPLS骨干网的两个私网之间进行路由互通了。
2.1 遇到问题 路由协议最怕的就是产生路由环路。不过OSPF天赋异禀,为保证区域间传递的路由不会产生环路而制定了规则:
1. 所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。
2. 使用SPF算法。
在实践中,OSPF的确达到了无环的目的。以至于一提到OSPF,就会提到OSPF能够计算出无环的路由。
但是,自从加入了OSPF多实例功能之后,由于BGP/MPLS IP VPN网络改变了原有的拓扑结构,使得第一条规则不再有效。而且在跨越了MPLS/IP骨干网之后一般都是Type3、Type5或Type7类型的OSPF路由,这三种LSA实际上在OSPF计算产生路由的时候和距离矢量算法很接近,在某些场景中很有可能产生路由环路。比如下图所示的场景:
图2 OSPF VPN路由环路
PE1上OSPF引入了目的地址为10.1.1.0/24的BGP路由,产生5类或7类LSA发布给CE1,CE1上学到一条目的地址为10.1.1.0/24,下一跳为PE1的OSPF路由,并发布给PE2,这样PE2上就学到一条目的地址为10.1.1.0/24,下一跳为CE1的OSPF路由。
同理,CE1上也会学到一条目的地址为10.1.1.0/24,下一跳为PE2的OSPF路由,PE1上学到一条目的地址为10.1.1.0/24,下一跳为CE1的OSPF路由。
此时,CE1上存在两条等价路由,分别指向PE1和PE2,而PE1和PE2上到10.1.1.0/24的下一跳也都指向CE1,环路就产生了。
2.2 巧计破环 既然产生了环路,总要有个破环方法。要知道,OSPF多实例场景中,PE将路由发送给CE时,使用的是Type3、Type5或Type7类型的OSPF路由。那我们就分别针对这三类路由指定破环之策。
2.2.1 破环良策之一——DN-bit PE在生成Type3、Type5或Type7 LSA发布给CE时,都将DN位置位(值为1),其他类型LSA的DN位不置位(值为0)。
PE的OSPF多实例进程在进行计算时,忽略DN置位的LSA。这样就防止了PE又从CE学到发出的LSA而引起的环路。
2.2.2 破环良策之二——VPN Route Tag VPN路由标记(VPN Route Tag),PE根据收到的BGP的私网路由产生的Type5或Type7类型LSA中必须包含这个参数。
当PE发现LSA的VPN路由标记(LSA的Tag值)和自己的一样,就会忽略这条LSA,因此避免了环路。
至此,CE双归属场景下的路由环路的问题消失的无影无踪。
3 破环虽好,偶有误伤 虽然OSPF多实例场景下路由破环获得奇效。不过,待看完下面这个案例,你又有什么样的想法呢?
3.1 案例 图3 MCE组网图
3.1.1 组网需求 如上图所示,某公司需要通过MPLS VPN实现总部和分支间的互通,同时需要通过VPN隔离多种不同的业务。为节省开支,希望分支通过一台MCE设备接入PE(此处仅以其中一个vpna为例说明问题)。
3.1.2 场景描述 1、PE1和PE2是MPLS VPN骨干网。CE1和MCE同属于vpna,通过骨干网进行私网互通。
2、PE1和CE1通过OSPF交互私网路由。
3、PE2和MCE通过OSPF多实例交互私网路由。
4、在PE的OSPF视图下引入BGP路由,发布PE的私网路由给CE或者MCE;在PE的BGP视图下引入该OSPF进程,发布私网路由信息给对端PE。
3.2 关键配置 PE1的关键配置: # ip vpn-instance vpna ipv4-family route-distinguisher 100:1 vpn-target 200:1 export-extcommunity vpn-target 200:1 import-extcommunity # interface GigabitEthernet0/0/1 ip binding vpn-instance vpna ip address 10.1.1.2 255.255.255.0 # bgp 100 peer 2.2.2.2 as-number 100 peer 2.2.2.2 connect-interface LoopBack1 # ipv4-family vpnv4 policy vpn-target peer 2.2.2.2 enable # ipv4-family vpn-instance vpna import-route ospf 100 # ospf 1 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 172.1.1.0 0.0.0.255 # ospf 100 vpn-instance vpna import-route bgp area 0.0.0.0 network 10.1.1.0 0.0.0.255 #
| PE2的关键配置: # ip vpn-instance vpna ipv4-family route-distinguisher 100:1 vpn-target 200:1 export-extcommunity vpn-target 200:1 import-extcommunity # interface GigabitEthernet0/0/1 ip binding vpn-instance vpna ip address 10.2.1.2 255.255.255.0 # bgp 100 peer 1.1.1.1 as-number 100 peer 1.1.1.1 connect-interface LoopBack1 # ipv4-family vpnv4 policy vpn-target peer 1.1.1.1 enable # ipv4-family vpn-instance vpna import-route ospf 100 # ospf 1 area 0.0.0.0 network 2.2.2.2 0.0.0.0 network 172.1.1.0 0.0.0.255 # ospf 100 vpn-instance vpna import-route bgp area 0.0.0.0 network 10.2.1.0 0.0.0.255 #
|
CE1的关键配置: # ospf 1 area 0.0.0.0 network 10.1.1.0 0.0.0.255 #
| MCE的关键配配置: # ip vpn-instance vpna ipv4-family route-distinguisher 100:1 vpn-target 200:1 export-extcommunity vpn-target 200:1 import-extcommunity # interface GigabitEthernet0/0/1 ip binding vpn-instance vpna ip address 10.2.1.1 255.255.255.0 # ospf 100 vpn-instance vpna area 0.0.0.0 network 10.2.1.0 0.0.0.255 #
|
2.1 故障现象 按照上述配置完成以后发现MCE侧学习不到对端的私网路由,但是存在OSPF的LSDB。
1、MCE侧的VPN实例里面学习不到CE侧的10.1.1.0/24网段的私网路由。
2、CE1上能正常学习到MCE侧10.2.1.0/24网段的私网路由。
3、MCE的OSPF LSDB信息中存在External类型的10.1.1.0网段路由。
3.3 根因分析 由于防环检测机制的存在,所以我们在PE经常会发现存在LSA但路由计算不出来。
特别是在PE和MCE对接的场景下,PE在生成Type3、Type5或Type7 LSA发布给MCE时,都将DN位置位(值为1),其他类型LSA的DN位不置位(值为0)。MCE的OSPF多实例进程在进行计算时,忽略DN置位的LSA。所以就会出现OSPF邻居状态是Full的,也存在LSDB,但是无法计算出路由的现象。
验证一下,检查MCE上这条LSA是否存在DN-Bit。
“E DN”表示LSA带DN-Bit,正常时候显示“(DC)”。可以确认是由于OSPF的防环机制,导致这个LSA设置DN-Bit标志位,从而导致这条LSA不会参与到路由计算中,所以最终MCE侧学习不到CE侧的10.1.1.0网段的路由。
3.4 解决方法 由于MCE设备并不是PE设备,所以可以不检查DN-Bit而直接计算出所有OSPF路由。
在MCE的OSPF视图下输入vpn-instance-capability simple即可禁止路由环路检测。
上述命令配置完以后,查看MCE上,学习到了CE侧的10.1.1.0网段的路由了。
需要注意的是,这个命令只建议配置在MCE设备上,因为配置这个命令后OSPF将不再能够引入IBGP路由(import from IBGP)。
扬威塞外一白衣,昔日少年耀九天
信马由缰自驰骋,北野茫茫青草天。
“啊!!!!”停缰勒马,仰天长啸。
华少听了那一人的长啸,又似看到了这多年的颠沛流离,这多年的南征北战,这多年少帅军的窘境,都随着这一声长啸,这多年的沉郁都一扫而空。
“啊!!!!”他也跟着放空大啸。
两个疯疯癫癫的人,路过的人都这么认为。管这两个人干什么,新帝登基,去凑凑热闹去。
“发泄好了么,欧少?都等着你呢。”大啸过后,华少脸含笑意。
“这,华少,要不你来当这皇帝好不好,我怕我做不来。”平日风轻云淡的一个人,现在竟然打起了退堂鼓。
“哈哈哈哈,你这说的什么话?我管设备,你管路由,怎么能乱了套呢?你啊,就别矫情了,快些走吧。”
“那……走吧。”
北青丘,白岐宫外。
路由领域登新帝,四方群豪竞相来。
如果有人好奇为什么在这边疆塞外办这么隆重的事儿,那就去问问那柔音媚骨,神秘莫测的女宫主吧。
卯时三刻到,钟鼎齐和鸣。
新帝到。
白衣飘飘,风度翩翩,气象雍容万千。
过广场,平民尽皆跪拜。
上大殿,宾客离席站起。
路由各诸侯垂首微拜。新帝颔首,回礼。
当然,独独缺了RIP不在。
互联网其他众协议再拜首。新帝亦颔首,回礼。
少帅军右少帅拜首。新帝颔首,回礼。
啊,那个整天围着白袍小将的绿衣姑娘也在。
新帝上师微拜首,含笑不语。新帝颔首,回礼。
师父也来了?咦?他旁边的人?莫非是?!那么师妹也来了么?
礼毕。授册印。
老祖端站殿上,朗声宣读,新帝聆听:“阿帕自立三十载,路由各方展宏图。后有白衣一少年,群英会上破空出。先辅网管,助大业成。再联S,立少帅军,统万里江山。今修得正果,特封OSPF成帝,苍天鉴!”
新帝接册印,礼成。
“呵呵呵,也不算太晚,路由新帝登基,我这个宫主怎能不来拜贺呢?”摄人美眸藏轻纱,衣着锦缎尽奢华。
“新帝,你难道不好奇我长什么样子么?”宫主秋波若含春风,众人皆醉,“其实,这轻纱可以摘得。只不过,我曾许过诺,我这轻纱只为倾心之人而揭。你要我揭开吗?”
揭得?揭不得?新帝脑立两小人,来回厮杀,挣扎不已。
“哈哈哈,由不得你了,我看上的人儿,怎能逃出我的手掌心呢?”
轻纱缓缓揭起。
五殿琉璃尽失色,九天玄女妒红尘。
请持续关注问鼎OSPF系列技术贴
时间: 2015-8-31 10:42
作者: gzljp
啥啥啥,混乱了
时间: 2015-9-1 16:43
作者: czl0594
受益受益
时间: 2015-9-1 16:43
作者: czl0594
受益受益
时间: 2015-9-4 07:57
作者: ShinyGold
闷声啃贵司HCIE的童鞋表示给楼主跪了…教程神马的应该让LZ这样的人才编写啊。
时间: 2015-9-5 14:28
作者: nanyou2009boy
ShinyGold 发表于 2015-9-4 07:57
闷声啃贵司HCIE的童鞋表示给楼主跪了…教程神马的应该让LZ这样的人才编写啊。
谢谢您的关注,请持续关注后续OSPF系列技术贴。会有更多实战篇的OSPF技术贴哦
时间: 2015-9-20 08:54
作者: nanyou2009boy
问鼎OSPF(8)-千古一帝终大成,路由天下群雄颂(如何规划OPSF网络)新帝立,群雄服,IGP进入新时代。
与兄弟,入园区,各领风骚数百年。
结佳人,闯私网,再续VPN不了缘。
至此时,终大成,徒留余香与君勉。
前面7篇问鼎OSPF系列技术贴已经跟大家介绍了OSPF的基础知识,例如OSPF的基本运行机制、OSPF邻居建立过程、OSPF的LSA详解、OSPF特殊区域、OSPF防环机制等等。看过这些OSPF基础知识以后您是否想尝试实际规划部署一个OSPF网络呢?在OSPF典型网络是如何规划部署的呢?OSPF在典型网络中是如何应用的呢?本篇问鼎OSPF我们以一个典型OSPF网络规划部署案例来给您介绍OSPF网络规划设计原则及部署注意事项。
1. OSPF网络规划设计原则OSPF路由协议在所有内部网关协议中是比较复杂的一种,这种复杂性和OSPF协议的原理密切相关,那么在设计典型OSPF网络的时候我们具体需要考虑哪几方面的问题呢?在本节中将会为您一一介绍。
1.1 保持OSPF网络的稳定性:Router ID的规划在典型OSPF网络设计和实施中我们需要考虑的第一点,就是Router ID的选择。
这是因为OSPF作为一种链路状态路由协议其计算路由的依据是LSA(链路状态通告),每个运行OSPF的路由器都会发送并泛洪LSA报文到整个网络,这样网络中每个运行OSPF的路由器都会收集到其他设备发送过来的LSA并且放入LSBD(链路状态数据库),然后开始进行SPF(最短路径算法)运算,计算出一棵以自己为根到其他网络的无环树。由此可以看出保持每个路由器LSDB的稳定性是保证OSPF网络稳定的前提。那么在LSDB中对于不同OSPF设备发送来的LSA是如何进行区分的呢,答案就是使用Router ID。如果一个路由器的Router ID发生变化,那么此路由器会重新进行LSA泛洪,从而导致全网OSPF路由器都会更新其LSDB并且重新进行SPF计算,使得OSPF网络发生振荡。因此选择一个稳定的Router ID是OSPF网络设计的首要工作。
了解了Router ID的重要性后,我们来看看一个OSPF路由器是如何选择Router ID的。
路由器的Router ID可以手工配置,如果没有通过命令指定Router ID,系统会从当前接口的IP地址中自动选取一个作为路由器的Router ID。其选择顺序是:优先从Loopback地址中选择最大的IP地址作为路由器的Router ID,如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为路由器的Router ID。只有当被选举为Router ID的接口IP地址被删除或修改后,才会进行Router ID的重新选举。
在实际工程中,推荐手工指定OSPF路由设备的Router ID。具体做法是首先规划出一个私有网段用于OSPF的Router ID选择。例如:192.168.1.0/24。在启用OSPF进程前就在每个OSPF路由器上建立一个Loopback接口,使用一个32位掩码的私有地址作为其IP地址,这个32位的私有地址即作为该路由设备的Router ID。如果没有特殊要求,这个Loopback接口地址可以不发布在OSPF网络中。
1.2 层次化的网络设计:OSPF区域的规划OSPF是一个需要层次化设计的网络协议,在OSPF网络中使用了一个区域的概念,从层次化的角度来看区域被分为两种:骨干区域和非骨干区域。骨干区域的编号为0,非骨干区域的编号从1到4294967295。处于骨干区域和非骨干区域边界的OSPF路由器被称为ABR(区域边界路由器)。
实际上OSPF区域的规划也就是把网络中的OSPF路由器做归类的过程。在设计OSPF区域时,我们首先需要考虑的第一点是网络的规模,对于小型的典型网络,例如只有几台路由设备作为核心和汇聚的网络可以考虑仅规划一个骨干区域Area 0。但是在大型的OSPF网络中,网络的层次化设计是必须要考虑的。
对于大型的OSPF网络,一般在规划上都会遵循核心,汇聚,接入的分层原则,而OSPF骨干路由器的选择必然包含两种设备,一种是位于整网核心位置的核心设备,另一种是位于区域核心的汇聚设备,通常都是高端路由设备,例如华为NE系列高端路由器,或者华为S77&97系列高端路由交换机。非骨干区域的设计则是根据地理位置和设备性能而定,如果在单个非骨干区域中使用了较多的低端三层交换产品,由于其产品定位和性能的限制,应该尽量减少其路由条目数量,把区域规划得更小一些或者使用特殊区域。
实际工程中对于非骨干区域的Area编号的规划也是有讲究的,尽量不要使用类似Area1、2、3……这种连续的编号,推荐使用Area 10 、20 、30……这种递增方式,这样主要是考虑提供Area编号上的冗余,在后期网络扩容的时候便于用户增加区域编号。
1.3 非骨干区域的路由表项优化:特殊区域的使用在问鼎OSPF(6)中我们曾经讲过,特殊区域的使用可以达到优化非骨干区域的路由表项的目的。实际上对于非骨干区域,一般可能存在如下两种诉求需要减少路由表项的规模:
1、 非骨干区域仅有一个ABR做出口,任何访问区域外的流量都要经过这个出口设备,此时其实这个区域内的路由器没必要了解外部网络的细节,仅需要有个出口能够出去即可。
2、 有些时候非骨干区域的设备可能使用了一些较为低端的三层交换机,其产品定位使得其不可能承受过多的路由条目,为了精简其路由条目数量可以采用配置特殊区域的方法进行路由表项的优化。
华为路由器和交换机产品支持OSPF协议中定义四种特殊区域类型:Stub区域,Totally Stub区域,NSSA区域,Totally NSSA区域。各种特殊区域的LSA及路由管理规则在问鼎OSPF(6)中已经有详细的介绍,这里就不再赘述。
在绝大部分的情况下,典型OSPF网络的非骨干区域中都仅仅需要知道缺省路由出口在哪里,因此建议把非骨干区域统一规划成Totally NSSA区域,这样将极大的精简非骨干区域内部路由器的路由条目数量,并且减少区域内部OSPF交互的信息量。对于少数存在特殊需求的网络,请根据实际情况灵活使用几种区域类型。
1.4 骨干区域的路由表项优化:非骨干区域IP子网规划和路由汇聚由于OSPF骨干区域需要负责区域之间的路由交互,所以骨干区域设备的路由表规模往往会比较大,因此骨干区域的路由表规模同样需要考虑精简和优化的问题。
对于OSPF的非骨干区域来说,使用特殊区域能够精简其内部路由器的路由表,那么对于OSPF骨干区域的路由器来说又是如何优化其路由表的呢?答案就是对非骨干区域使用的IP网段作出合理规划以便于区域边界的路由汇聚。
建议新建OSPF网络能够在前期就作出利于路由汇总的IP网络设计,对于扩建的网络尽量进行IP地址的重新规划,通过区域汇总能精简骨干区域路由器的路由表,减少骨干区域内OSPF交互的信息量。同时,路由汇总以后,单点的链路故障或者网络震荡不至于影响整个网络的路由更新,因此路由汇聚还可以提高网络的稳定性。
1.5 上行流量的引导:OSPF缺省路由的引入和选路优化对于一个大型OSPF网络来说,很大一部分的业务流量并不在网络内部,而是通往Internet出口,因此缺省路由的设计也是典型OSPF网络的一大设计要点。
在实际的大多数工程案例中,典型网络的出口往往不止一个,如何有效的将出口流量分担到多条链路上就成为了OSPF设计中的一个难点。虽然有很多种手段能够达到分担流量的目的,但是最简单也是最安全的方法是使用OSPF内在的选路机制。因为OSPF路由器对一条路由的优劣衡量是通过计算其cost值来实现的,cost值小的路由会被路由器优先放入路由表。通过调整OSPF接口的cost值可以使得路由器选择不同的链路出口来达到负载分担的目的。
不过在调整cost值之前还有一项必须要做的工作。因为OSPFv2出现的时间较早,没有考虑到带宽的飞速发展,因此缺省情况下,OSPF计算cost值使用的参考带宽为100M,也就是说缺省情况下,OSPF把100M带宽以上的端口统统认为其cost是1。很明显,在网络骨干带宽迈向10T的今天已经显得非常的不合时宜。幸运的是设备提供了更改参考带宽的功能,使用bandwidth-referencevalue命令选择一个合适的参考带宽成为OSPF网络建设中必须要做的一项工作。对于OSPF网络的选路优化,推荐首先选择合适的参考带宽,然后通过调整OSPF接口cost值来实现。
1.6 路由汇总场景下的防环设计:黑洞路由的使用图1 路由汇总场景下的防环设计:黑洞路由的使用
宇宙中的黑洞被科学家定义为一个连光线都吸食的魔鬼。而在路由器中黑洞路由类似于宇宙中的黑洞,凡是命中黑洞路由的报文都统统被丢弃,而且不向发送者反馈任何差错信息。
黑洞路由的这种巨大魔力使得它在防止路由环路方面有着广泛的应用。在很多场景下路由聚合确实能够做到精简路由,提高网络稳定性的作用,但是任何事物都具有两面性,路由聚合也不例外,路由聚合带来的缺陷就是容易产生路由环路,而黑洞路由可以用来弥补这种缺陷。所以典型OSPF网络设计中,路由聚合和黑洞路由往往是配合使用的,这个我们会在下面的OSPF网络规划部署案例中给出详细的设计方法,请读者继续往下看。
1.7 OSPF网络基本安全:OSPF静默接口的使用对于一个大型OSPF网络来说,安全性是必须要考虑到的问题。在OSPF网络设计中,通常会禁止将OSPF报文发往用户端,这是为什么呢?这主要是为了防止终端用户窥探OSPF报文信息,因为如果用户能截获OSPF报文,那就意味着他可能知道如何加入此OSPF网络。此时要破坏这个OSPF网络已经是轻而易举的事,例如接入一台路由器到OSPF网络中,并且使得该路由器的OSPF进程处于不稳定的状态中,就会导致OSPF网络发生振荡甚至瘫痪。
在实际工程中,为了保证OSPF网络的安全与稳定,推荐在OSPF网络的边缘设备上使用静默接口的的方式来阻止通往用户侧的OSPF报文。具体做法是在OSPF网络的边缘设备上配置silent-interface命令,用来禁止该接口接收和发送OSPF报文。禁止接口收发OSPF报文后,该接口的直连路由仍可以发布出去,但接口的Hello报文将被阻塞,接口上无法建立邻居关系。这样用户侧就无法窥探到网络中的OSPF报文。
2 OSPF网络设计部署案例俗话说“纸上得来终觉浅,绝知此事要躬行”。上一节中我们对典型OSPF网络设计的七个基本原则作出了详细说明,下面我们通过一个案例来看看在实际工程中是如何运用这七个基本原则对OSPF网络进行设计和部署的。
图2 典型园区网络的拓扑图
图2是一个典型园区网的拓扑图,可以看到这是一个大型园区网络,核心、汇聚、接入三层分明,有多出口到Internet,网络内部存在双链路冗余,核心、汇聚交换机部署集群保护等。这种大型园区网络,园区出口设备一般选用华为NE系列高端路由器,核心交换机选用华为S9700交换机集群,汇聚交换机选用S7700交换机集群。用户网关部署在汇聚层上,汇聚层作为二层和三层的分界点。
对于这种比较典型的大型园区网络, OSPF的设计与部署工作是怎样一步一步进行的呢?下面将根据上一节提出的七条基本原则逐步进行此网络的设计和部署。
由于上述典型园区网络中核心交换机和汇聚交换机都属于集群系统,因此他们在逻辑上相当于一台设备,多链路捆绑在逻辑上也属于一条链路。由于集群和链路聚合的内容不在本帖的讨论范围内,因此为了简化问题的描述我们把上述网络拓扑经过抽象形成图3所示的逻辑拓扑图,园区网中可能存在很多幢楼,这里我们以3幢为例进行描述。
图3 典型园区网络的逻辑扑图
2.1 保持OSPF网络的稳定性:Router ID的规划部署OSPF的首要工作就是设计和部署Router ID,一般情况下,使用一个合适的私有IP地址段即可。在此案例中我们选用的Router ID地址段为10.0.0.0/24。
选取完Router ID地址段后,接下来需要做的工作是在每个OSPF设备上创建相应的Loopback接口并配置接口IP为10.0.0.X/32。具体配置以核心交换机S9700集群为例:
| |
[S9700]interface LoopBack 0 | |
[S9700-LoopBack0]ip address 10.0.0.3 32 | |
| |
[S9700] ospf 1 router-id 10.0.0.3 | 创建OSPF进程1并设置Router ID为10.0.0.3 |
注意:如无特殊要求,建议不要在OSPF进程中发布loopback0的接口地址,以减少无用的OSPF信息交互报文
规划Router ID 以后的网络拓扑如图4所示:
图4 规划Router ID 以后的网络拓扑
2.2 层次化的网络设计:OSPF区域的规划在分配完Router ID后,接下来的工作就是对于整个OSPF网络进行区域划分。对于这种层次分明的网络,OSPF的区域划分是非常容易的,直接把核心和汇聚交换机包含到Area 0,再按照地理位置来区分非骨干区域。唯一需要注意的是非骨干区域Area编号的冗余性,在实际工作中经常被忽视。本案例中我们按照地理位置,把出口路由器和汇聚交换机划分到骨干区域,把每栋楼的汇聚交换机划分为一个非骨干区域,图5是做了Area划分后的OSPF网络拓扑图:
图5 规划区域以后的网络拓扑
具体配置以核心交换机S9700集群的Area 0和Area 10的配置为例:
| |
| |
| |
[S9700-ospf-1-area-0.0.0.0]network 10.200.10.0 0.0.0.3 | |
[S9700-ospf-1-area-0.0.0.0]network 10.200.20.0 0.0.0.3 | |
[S9700-ospf-1-area-0.0.0.0]quit | |
| |
[S9700-ospf-1-area-0.0.0.10]network 10.100.10.0 0.0.0.3 | |
从配置命令中可以清楚的看到OSPF区域是以路由器为边界的,例如此拓扑中核心交换机S9700集群上行接口属于Area 0 ,下行接口属于Area 10,也就是说,此路由器跨越了两个区域,是一个区域边界路由器ABR。
注意:在单个区域包含过多的低端路由器或者三层交换机是一种不好的设计,如果出现这种情况应该考虑缩小区域范围。
2.3 非骨干区域的路由表项优化:特殊区域的使用划分完OSPF网络区域,我们可以看到非骨干区域的路由表项的规模相对较大,而如果非骨干区域的设备性能较低的情况下,用户不希望路由表项规模过大,此时可以考虑特殊区域的运用了。本案例具有很强的代表性,像此类典型网络,推荐非骨干区域一律采用完全NSSA区域 (Totally NSSA 区域)具体拓扑如图6所示:
图6 非骨干区域划分特殊区域以后的网络拓扑
Totally NSSA 区域具体设备配置以Area 10 的S9700集群和S7700-1为例。
S9700集群的关键配置如下:
| |
| |
| |
[S9700-ospf-1-area-0.0.0.10] nssa no-summary | |
S7700-1的关键配置如下:
| |
| |
| |
[S7700-1-ospf-1-area-0.0.0.10] nssa | |
下面我们看一下配置Totally NSSA 区域前后,非骨干区域路由表项的优化效果:
图7 非骨干区域优化前S7700-1的路由表
图8 非骨干区域优化后S7700-1的路由表
通过图7与图8的对比可以明显看出,配置了Totally NSSA 区域以后,Area 10的路由表的规模得到了明显的降低,说明在非骨区域通过配置Totally NSSA 区域可以达到降低路由表项规模的作用。
2.4 骨干区域的路由表项优化:非骨干区域IP子网规划和路由汇聚在非骨区域通过配置Totally NSSA 区域后,非骨干区域内部路由器的路由表得到极大的精简并且减少了区域内部OSPF路由器之间的信息交互量。在骨干区域我们也需要作出适当的操作来达到同样的目的,这就要对非骨干区域使用的IP子网作出合理规划并在ABR(区域边界路由器)进行汇总操作。
在下图中显示了区域10作出合理的IP规划后往区域0通告的路由汇总表项:
图9 通过路由汇总实现骨干区域的路由表项优化
区域路由汇总会抑制明细路由条目的通告,这样区域10的ABR 就只会向区域0 内注入一条汇总路由10.10.0.0/16,这样可以精简骨干路由器路由表项,减少Area 0 的OSPF报文交互量和保证其路由表的稳定。建议在设计OSPF网络时就合理规划IP地址,已方便进行路由汇总。
路由汇总的配置以Area 10的ABR设备S9700集群为例如下:
| |
| |
| |
[S9700-ospf-1-area-0.0.0.10] abr-summary 10.10.0.0 255.255.0.0 | |
注意:abr-summary命令只能用在ABR(区域边界路由器)上,区域内部路由器上不要使用此条命令,否则会造成路由表项的错误。
下面我们通过查看路由表项来对比一下路由汇总前后的效果。
图10 路由汇总前骨干区域有用户网段的明细路由
图11 路由汇总后骨干区域仅有用户网段的汇总路由
通过图10和图11的对比可以看出路由汇总之前骨干区域内有用户网段的明细路由,在ABR上做路由汇总以后骨干区域的NE40E-1设备上只有一个16位掩码的汇总的用户网段路由,这样在用户网段很多的情况下通过汇总能在很大程度上精简骨干区域的路由,同时减少了骨干区域和非骨干区域的LSA交互数量,提高了网络的稳定性。
未完待续………………
时间: 2015-9-20 08:56
作者: nanyou2009boy
本帖最后由 nanyou2009boy 于 2015-9-20 08:59 编辑
续前节
2.5 上行流量的引导:OSPF缺省路由的引入和选路优化 在第一节的OSPF典型网络规划原则的时候我们曾经提到过,对于一个园区网络,很大一部分流量是流向Internet的,因此对于这种多出口的网络拓扑,引入缺省路由和多出口流量分担是必须要考虑的问题。
引入缺省路由的方式有多种,这里我们建议的做法是在边界路由器上通过OSPF非强制下发缺省路由来实现。
江湖小贴士: 一般推荐使用OSPF“非强制”下发缺省路由的方式,即只有边界路由器自身的IP路由表中存在缺省路由的时候才能发布缺省路由,否则就不能发布,之所以这样要求主要是防止在特殊场景下产生环路或者次优路由,这个问题我们会在OSPF番外篇-OSPF的缺省路由综合应用案例中详细讲解,请持续关注。
在本案例中两个边界路由器发布缺省路由以后,对于核心交换机S9700集群来说会收到两条缺省路由,下一跳分别指向两个出口路由器。此时核心交换机S9700集群可以选择其中一条链路作为上行,也可以选择两条上行链路负载分担,具体项目中如何分配流量,请根据实际的网络情况灵活配置。S9700集群的缺省路由和流量的走向如图12所示。
图12 通过缺省路由引导核心交换机S9700集群的上行流量
NE4-E-1和NE40E-2上发布缺省路由的具体配置如下,以NE40E-1为例,NE40E-2上需要做类似的配置。
命令 | 含义 |
[NE40E-1] ip route-static 0.0.0.0 0.0.0.0 202.10.10.1 | 首先在NE40E-1上手工配置一条下一跳指向电信运营商的公网地址的缺省路由 |
[NE40E-1] ospf 1 | 进入OSPF进程视图 |
[NE40E-1-ospf-1] default-route-advertise | 发布缺省路由,注意不要携带always参数,即非强制下发缺省路由。 |
上述配置完成以后,S9700上将会学习到两条等价的缺省路由,此时S9700的上行流量将会采取负载分担的方式进行,详细如图13所示:
图13 S9700集群上有两条等价的缺省路由
如果用户想让S9700上行的两条链路采取主备份的形式,正常情况下走NE40E-1这边上行,当NE40E-1故障的时候流量自动切换到NE40E-2这边。这个需求怎么实现呢?根据第一节的介绍,最简单直接的方法就是使用OSPF自身的选路机制,通过修改cost值来影响S9700集群的选路。
为了实现路由的主备份,可以修改S9700到达NE40-2这条链路的cost,使得S9700到达NE40-2这条链路的cost值大于S9700到达NE40-1这条链路。详细配置如下:
S9700侧的配置如下:
命令 | 含义 |
[S9700] interface vlanif 50 | 进入OSPF接口视图 |
[S9700-Vlanif50] ospf cost 10 | 修改该接口的OSPF cost值为10 |
NE40E-2的配置如下:
命令 | 含义 |
[NE40E-2] interface GigabitEthernet 0/0/1 | 进入OSPF接口视图 |
[NE40E-2-GigabitEthernet0/0/1] ospf cost 10 | 修改该接口的OSPF cost值为10 |
由于缺省情况下百兆带宽以上的链路OSPF的cost默认为1,所以我们将S9700到NE40E-2之间的链路的OSPF cost值修改为10以后,S9700将优选NE40E-1这边的链路作为上行流量的出口,此时S9700的IP路由表中将会仅存在一条指向NE40E-1的缺省路由。详细如图14所示:
图14 S9700集群上有仅有一条缺省路由
江湖小贴士: 在做OSPF选路调整时注意:如果需要调整cost值来影响OSPF的选路,则在链路两侧的设备上需要作出同样的cost调整,否则会形成不对称路由,引起网络故障。
2.6 路由汇总场景下的防环设计:黑洞路由的使用 经历了上述5个步骤的规划与部署,这个典型OSPF网络的基本功能已经具备了,而且我们也通过了一些手段进行了路由表项的优化,但是这个网络现在是否还存在问题呢?是否还需要做进一步的优化呢?
答案是肯定的,这个网络中当前是存在一种产生环路的风险的,第一节的规划原则中我们也曾经提到过,路由汇总通常容易产生环路,而黑洞路由通常可以用来和路由汇总相结合来防止路由环路。
下面我们来看一下这个环路是如何产生的。
对于园区网来说,来自内部的网络攻击是很常见的,假设1号楼内的某台主机受到病毒攻击,这种攻击会导致主机扫描访问10.0.0.0网段的IP地址。那么此时就有很大的风险产生环路。假设主机扫描到10.10.50.1这个地址(1号楼实际上不存在这个地址)。
1、 这个数据包将会发送至主机的网关即S7700-1。
2、 S7700-1上不存在这个目的地址的明细路由,所以会匹配默认路由发送至S9700集群。
3、 由于10.10.50.1这个地址在整个园区网中根本不存在,所以数据包到达S9700上以后只能匹配缺省路由发送只NE40E-1。
4、 而NE40E-1上学习到的路由却是S9700通过路由汇总发布出去的,所以会匹配到10.10.0.0/16这条路由,所以数据包又重新发回S9700.
至此S9700和NE40E-1之间的一条环路就形成了,如图15所示。一旦形成路由环路将会严重影响网络的运行,甚至导致整网的瘫痪,所以做路由汇总的场景下,如何防止路由环路是一个必须考虑的问题。
图15 S9700集群和NE40E-1之间形成路由环路
形成环路的主要原因是在S9700集群上把目的地址为一个园区网内不存在的地址的数据包匹配默认路由发送给和骨干区域,同时骨干区域又通过汇总的回程路由回送回来。
因此解决这个环路的方法就是在S9700上阻断目的地址为一个园区网内不存在的地址的数据包,推荐使用的方法就是配置黑洞路由。
详细配置如下:
[S9700] ip route-static 10.10.0.0 255.255.0.0 NULL0
完成这个黑洞路由的配置以后,回程到10.10.0.0这个网段的数据包都会有明细路由引导回到用户网段,如果找不到这个明细路由则证明园区网内不存在这个主机地址,此时即会匹配这条黑洞路由而将数据包丢弃。这样就不会形成环路了。其他区域也需要做跟Area 10类似的配置,即路由汇总的同时做黑洞路由用来防止路由环路的产生。
2.7 OSPF网络基本安全:OSPF静默接口的使用 在网络攻击“道高一尺魔高一丈”的当下,网络的安全也是一个必须要考虑的问题。
对于本案例来说,做完上面6个步骤,实际上整个OSPF网络已经能够正常的运行,但是这个网络存在一个较大的安全漏洞。即用户侧能够接收到OSPF的hello报文,使用Sniffer等网络嗅探工具可以很轻易的获得基本的网络信息,并作出下一步的攻击行为。
为了实现OSPF网络的基本安全,在实际工程中推荐使用静默接口的方式来阻止发往用户的OSPF报文。如图16所示:
图16 使用静默接口的方式来阻止发往用户的OSPF报文
具体配置以Area 10中的S7700-1为例:
命令 | 含义 |
[S7700-1] ospf 1 | 进入OSPF进程视图 |
[S7700-1-ospf-1] silent-interface vlanif100 | 将所有用户侧接口设置为静默接口 |
[S7700-1-ospf-1] silent-interface vlanif200 | 将所有用户侧接口设置为静默接口 |
[S7700-1-ospf-1] silent-interface vlanif300 | 将所有用户侧接口设置为静默接口 |
江湖小贴士: 注意:silent-interface命令会禁止接口接收和发送OSPF报文,一般只会用于用户侧接口上,千万不要应用于OSPF路由器之间的链路,这将导致OSPF邻居无法建立。
至此这个典型OSPF网络就规划部署完毕,我们来做一个总结:
通常一个网络的规划设计需要同时考虑网络的有效性、可靠性、安全性等几个方面。所以在部署一个网络的时候仅实现网络的基本功能只是一个方面,更多的需要考虑如何优化这个网络,如何提高这个网络的有效性、可靠性、安全性等方面的问题。
3 题外话 至此问鼎OSPF系列技术贴的8篇正传已全部完结,不知道本系列技术贴描绘出来的金戈铁马、快意恩仇的网络江湖,有没有唤起读者心中那曾经的一个武侠梦,如白衣少年那样,在通信领域这个沙场上重燃那颗争胜好强的心呢?当然书写本系列技术贴的初衷还是希望读者能够学习这个技术贴的精华—OSPF的技术细节,而后续也还会有更多关于OSPF的典型应用、典型故障处理等方面的介绍,所以也请大家继续关注“问鼎OSPF番外篇”。
好了,最后谢谢大家对OSPF系列技术贴的关注:)
时间: 2015-9-23 06:07
作者: 13567564040
食用
时间: 2015-9-28 15:55
作者: gemini_yy
好文,先马再看~
时间: 2015-10-2 14:31
作者: k798chinalxk
写的不错,顶一个
-----------华为今年裁员两万
时间: 2015-10-13 12:50
作者: stock70
学习一下,谢谢!!!
时间: 2015-10-24 21:20
作者: lxc0
好深奥
时间: 2015-10-28 16:33
作者: 思偌雨
大侠,请受我一拜,学习了!谢谢!
时间: 2015-11-16 21:19
作者: ktvcc
非常好,学习了
时间: 2015-11-26 16:57
作者: txrfreely
太牛了,根本听不懂,以后慢慢学吧
时间: 2015-12-3 15:34
作者: ohy308544880
顶起来
时间: 2015-12-16 16:45
作者: wang2015cn
你好,楼主,我已看了你的文章,真的是写的太好了。看完以后,我觉得你在OSPF方面讲的非常好,从宏观的角度来分析,真的是分析的太好了。我是计算机软件方向的硕士,开发过大量网络程序,CCNP,对TCP/IP方面非常熟悉。但是看完你的文章后,非常困惑,那就是像我们搞计算机这块的人,对TCP/IP的代码和实现是非常清楚的,同时,市面上介绍TCP/IP用C语言实现的书和资料也非常多。可我就不明白,你们通信领域的那么多协议,比如SIP协议、GTP协议、SCTP协议、GPRS协议、3G协议,还有很多你在文中提到的通信协议,可是我为什么从来没有在市场上看到过有书介绍用C语言来实现这些协议的??还是说我没找到,还是说你们通讯领域的很多协议不用C语言来实现。请楼主指正。或者能不能向我推荐介绍用C语言实现这些通讯协议的书,谢谢(我本人尝试用C语言实现过OSPF,已成功,成功实现了一个OSPF进程)
时间: 2015-12-21 17:06
作者: Sen_Ce
说的好有意思啊!
时间: 2015-12-27 14:40
作者: c-jim
看下热闹
时间: 2016-3-12 19:34
作者: 530077705
看看
时间: 2016-3-21 18:31
作者: yfgo
学习,写的内容相当好
时间: 2016-4-8 09:16
作者: 13789515515
牛!
时间: 2016-4-13 20:20
作者: 赤脚平安
改天楼主可以说说OSPF 的一奶同胞ISIS ,要是能编程一本大话路由协议那就太好了
时间: 2016-5-3 16:54
作者: lxjucdos124
挺详细的,多谢~
时间: 2016-5-6 16:53
作者: jian_123
就跟着顶一下咯
时间: 2016-5-10 15:21
作者: 思偌雨
真好
时间: 2016-5-23 09:15
作者: crazy01
把枯燥乏味的路由经典协议能写出如此“武侠”,真是佩服佩服。
时间: 2016-5-24 22:51
作者: 鹿密林
枫露茶 发表于 2015-7-21 15:46
那就跟着顶一下咯
思科吓尿了。。。。
时间: 2016-5-24 22:51
作者: 鹿密林
枫露茶 发表于 2015-7-21 15:46
那就跟着顶一下咯
思科吓尿了。。。。
时间: 2016-5-25 15:04
作者: lixiao123456
好贴,写的很好很有趣
时间: 2016-7-24 00:20
作者: ateng001
很佩服这类对技术已经炉火纯青,到达完全可以随心所欲演绎的境界的高人!佩服!
时间: 2016-8-1 08:08
作者: coolsun124
顶起来
时间: 2016-8-2 07:08
作者: leeel
一个比一个牛逼,太多牛人来
时间: 2016-8-5 14:29
作者: LANmm
时间: 2016-8-7 22:39
作者: chenglei6363
写的不错
时间: 2016-8-14 12:19
作者: leaf_0102
写的好
时间: 2016-9-18 10:10
作者: 1314159000
谢谢楼主分享,先回复,再学习
时间: 2016-10-30 22:57
作者: mytxrjy1
写成小说了,有创意
时间: 2016-11-28 17:06
作者: goodremark
神人,学习了
时间: 2016-12-9 17:40
作者: 轩陌雨竹
跟顶咯
时间: 2016-12-20 13:19
作者: suyan2014
膜拜啊!!!
时间: 2016-12-28 09:40
作者: wufenglangzi
顶起!
时间: 2017-1-24 15:45
作者: bigjohn1987
多谢分享!
时间: 2017-2-3 11:35
作者: pinky119
有才
时间: 2017-2-21 17:53
作者: testtcl
mark
时间: 2017-2-23 09:35
作者: 三言二拍
学习了,很风趣!
时间: 2017-2-24 09:30
作者: Deniss
时间: 2017-3-1 06:28
作者: lili_s_3
nanyou2009boy 发表于 2015-7-26 22:23
你猜对了,欢迎持续关注
哈哈,我身为女儿身,都是从小不爱看琼瑶,爱看武侠。家国天下的豪气远超那种哀哀怨怨的小家子气。
时间: 2017-3-17 16:39
作者: txysh
写得太棒了 谢谢楼主的分享
时间: 2017-3-28 21:56
作者: 13565755577
不错,总结的好
时间: 2017-6-16 08:41
作者: 宏宏宏
可以出版了,顶一下,支持
时间: 2017-7-5 09:37
作者: qqppjjll
学习学习
时间: 2017-7-9 16:29
作者: 18979117577
赞一个
时间: 2017-7-13 15:34
作者: zl_good
看了好几遍,认真学习了
时间: 2017-7-18 13:42
作者: wanghr32
写的太棒了,还有一些需要慢慢吸收领会。
时间: 2017-7-31 09:57
作者: xingyu651324
写的很好,谢谢分享
时间: 2017-8-22 12:56
作者: 疑如既往
学习了。
时间: 2017-8-23 15:36
作者: aries远
真有才
时间: 2017-8-29 19:13
作者: ssrssr
感谢楼主分享
时间: 2017-10-5 06:28
作者: shenqiang
拜读!!!
时间: 2018-2-9 10:15
作者: gaoke2016
感谢分享
时间: 2018-2-21 09:06
作者: mamatu
楼主你的全集我怎么下载不了啊
时间: 2018-2-21 09:54
作者: shenqiang
时间: 2018-7-1 23:40
作者: sooooo
厉害了
时间: 2018-7-5 15:28
作者: steel_pan
支持
时间: 2018-7-6 20:56
作者: 虔诚的基督徒
绝对好文
时间: 2019-6-9 20:10
作者: 不懂就多学
厉害
时间: 2019-6-11 22:18
作者: 不懂就多学
谢谢分享
时间: 2019-7-7 12:58
作者: xiaoma110
ding
时间: 2019-7-21 14:10
作者: suyk
通信人家园 (https://www.txrjy.com/) |
Powered by C114 |