ospf做为igp中典型的link-state routing protocol,(所谓的link-state就是router知道本区域的所以拓扑状态,我知道你的连接的是谁,是什么网段与对方连接着,然后以自己为根,计算出到达目的地的最佳路径)大家从学习R&S开始就知道了他。做为高级的路由协议,支持vlsm与cldr,采用层次化的网络设计,采用互相发送hello packet的形式来建立邻居关系,通过ls update来达到本区域ospf database的同步,然后以自己为根,通过spf算法,计算路由流向的入接口的cost值,算出到达目的地的最佳路径放进路由表。
ospf的优点:
1、对网络发生变化迅速响应
2、支持多种网络类型
3、采用周期性更新(每半小时flood lsa)与触发式更新(网络发生变化)
4、方便管理(一个区域的问题不会影响到另外一个区域,当然在配置汇总而非传输区域的情况下)
说完ospf的好处,今天就谈谈ospf的多区域与不规则区域。其实ospf是深得管理的精髓,增加了职能部门的作用(ABR),而减小高层(area 0)管理,协调个部门的精力(cpu与mem)与时间以及各个部门之间协调精力(cpu与mem)与时间。
先来topology:
R1与R2:12.1.1.0/24
R2与R3: 23.1.1.0/24
R3与R4:34.1.1.0/24
R1与R5:15.1.1.0/24
R5与R6: 56.1.1.0/24
R3 loopback 0:3.3.3.3/24
R4 loopback 0:4.4.4.4/24
R5 loopback 0:5.5.5.5/24
R6 loopback 0:6.6.6.6/24
先是多区域
看ospf多区域让我想起公司的组织架构,来一幅常见公司的组织结构途:
与总经办区域相连接的就是各部门经理(ABR),他们负责协调自己部门事情(常规区域),并与总经办联系(area0),总经办只要负责与各个部门相联系就可以了,如果技术部要与行政部联系,就会由总经办下发公司内部消息(type-3 LSA)告诉他,甚至经理办只要告诉他,你要联系直接找经理,由他来联系(下发一条默认路由,减轻了技术部记行政部的人员的负担)不需要技术部直接与行政部联系,节省技术部与行政部的资源。如果财务部内部出现了问题,总经办直接找财务经理,其他部门也不需要关心该部门,该部门的事宜由该部门自行解决(路由汇总)
现在有外部客户(eigrp)要与公司(ospf)进行联系(redistribute),看我上面的topology中eigrp部分,R5所在area 2就是行政部(先不考虑nssa),行政部一前台mm(R5)与客户进行相互沟通(redistribute)。
看看过程(R5的配置)
让我们看看各个部门(各个area)得到情况吧:
先是总经办R1与R2
R1的路由表:
R1收到的type-5 LSA:有前台mm(R5)宣告出来的,客户是6.6.6.0与56.1.1.0
R2的路由表:
R2的ospf database(R1怕R2不知道怎么到达客户那里,特意告诉R2前台mm的位置:type-4 LSA,然后R2又去转告与他直连的部门[area1]人员)
技术部其他人员(R3)的路由表与数据库
我们来观察下这位技术部员工(R3)的路由表:
有部门经理(R2)宣告的:
6.6.6.0/24与56.1.1.0/24的客户信息(第一外部路由)
5.5.5.5/32、12.1.1.0/24、15.1.1.0/24的其他部门信息(域间路由)
在看ospf database:
area 1共有3种LSA:
分别是
type-1 LSA ---当前同一部门(区域)的其他同事宣告的(域内的topology与 route)
type-3 LSA ---由本部门经理(ABR)宣告的公司其他部门(其他区域,包括传输区域与常规区域的route,也就是internal route)
type-4 LSA ---由本部门经理(ABR)宣告的前台(ASBA)是谁,在什么位置。
以及type-5 LSA(5类不属于任何一个区域)
5类宣告者是那个将外部信息(external 路由)引进公司(整个ospf这个AS)的前台(ASBA),宣告者在那里都会是前台(ASBA)本人。
OSPF 汇总与特殊区域的强项就是:
1、减少LSA的Flood
2、减少一个区域(当然不是传输区域)的拓扑发生变化影响到其他区域
3、节约各个router的cpu与mem资源(谁让运行OSPF的router是靠cpu来计算出以自己为根到达目的的最佳路由, 而节约mem就是减少路由表与数据库的大小)
先复习一下ospf汇总:
1、ospf的汇总是在进程下(这个ospf公司的规则制度,不同于eigrp,rip公司啊,大家注意)
2、会出现一条指向null接口的默认路由
3、当最后一条明细路由消失默认路由才会失效
4、明细路由中最小的cost值做为默认路由的cost值
ospf的特殊区域
1、末梢区域(stub area)
被配置成末梢区域的要求:
1、整个内的所以路由器都需要被配置成stub,不然neighbor关系都建立不了
2、该Area不能是传输区域(Area 0)(本来就是为了过滤type 4/5的LSA ,area0都过滤了,其他区域还知道么)
3、该area不能有ASBA(本来就是为了过滤type 4/5的LSA ,过滤了,你发能传出去么)
4、不能有virtual-link穿过本区域
现在将area1配置成stub area
R3的数据库发生了变化,减少很多LSA,没有发现type- 4/5的LSA了。
而多一条路由为0.0.0.0,宣告者为2.2.2.2(ABR)的type-3的LSA。
路由表:
在R3上面看看ospf的骨干路由器:
至于stub区域的内运行ospf的router之间是怎么联系的请参考:
简述ospf的各种报文
2、完全末梢区域(Totally stub area)
既然R3不管去往外部区域,还是去往ospf其他区域,都是交于R2转发,干嘛R3还需要去往ospf其他区域的明细路由,既耗费了传输Type-3 LSA 的带宽,有得计算出最优路由,还得防范其他区域的链路发生变化,直接将Type-3 LSA也给过滤掉就是了,我一技术部门员工只管自扫门前雪,不管其他部门瓦上霜,有事直接由部门经理(R2)好了。那么R2就过滤掉Type-3 LSA(当然这时cisco公司才可以,其他公司怕出事,不支持)
R3的变化:
跟前面相比,R3的路由表与数据库大为精简啊,哈哈,节省了大量的men与cpu损耗啊。
3、非典型末梢区域(Non-so-stubby area)
nssa区域,正规文档上面翻译为次末梢区域,我个人理解为非典型末梢区域,为什么我会有这样的理解?其实呗,就是他打破stub area不能有ASBA存在的概念,其他不一样与stub area相似,就好比,技术部的员工与行政部的员工,不一样都是后娘养的。只不过行政部的员工可能要与公司外部人员进行联系呗。
从行政部经理(R1)与行政部员工(R5)以及外部人员(R6)之间的关系来阐述nssa。
其实nssa区域也是过滤type-4/5 LSA的,关键是该区域也连接运行其他路由协议的路由器,当有了重分布的动作后,自身就会产生type-5的LSA,咋办?
改个名称就是,我自身产生的,我不叫type-5的LSA,我叫他type-7的LSA,只能在我的势力范围(NSSA)进行传播,行了吧,够狡猾的啊,远端非本区域直连的产生的type-5 LSA,嘿嘿,我过滤的就是你啊。大家注意了,你们在公司的时候,也可以学学,如果本公司明令禁止的东西,你就为他换个名字,与你的上司合谋就可以了。其实呢,都是一样的东西。
先是行政部经理(R1)的配置:
再是行政部员工(R5)的配置:
看行政部内部(R5与R2)是如何沟通的:
area2被配置成NSSA之前,R5发的hello packet:
area2被配置成NSSA之后,R5发的hello packet:
注意:被打上个flag NP:NSSA is supported以及 E: NO External Routing Capability。哈哈,支持NSSA以及不支持外部路由。这也是为什么被配置成NSSA后,非配置成NSSA的路由器邻居关系建立不起来的原因。flag不一致啊。
行政部员工(R5)的路由表与数据库:
看到type-7 as external link states没有?只属于行政部(area 2)啊,type-5 LSA可是不属于那个部门(area)啊
看R5并没有像stub area那样收到一条0.0.0.0的type-3 LSA,看来NSSA并不会主动下放一条默认路由啊,得加参数。
要加什么呢,因为R5需要与公司其他部门打交道,而不是与其他啥的啰嗦,所以这个是由他的经理(R1)来下发的:
当然下发的只能是行政部(NSSA)的默认路由,当然这里是收不到type-4/5的LSA了。
咳咳,为了验证这条NSSA的默认路由,我让技术部经理(R2)自己联系一条路由,(lookback 2,ip add=111.111.111.111),并且在R2上面重分布直连。
并在行政部经理(R1)上面no掉area 2 NSSA default-information-originate ,
后配置area 2 NSSA default-information-originate
4、完全非典型末梢区域( Totally Non-so-stubby area)
既然能下发默认路由,过滤type-4/5的LSA,干脆连3类也一起过滤,咱下面的人不需要知道太多其他部门的事情,反正都由经理(ABR)转发,浪费资源(mem,cpu,link bandwidth)干嘛
让行政部经理(R1)加一条命令(no-summary)干掉type-3的LSA flood在area2区域,并下放一条type-3 的默认路由.既然先有一条7类的默认路由,干嘛会出现3类的呢,谁叫公司内部的等级高呢,你部门内部out了。
特殊区域完了,到不规则区域了,xx公司突然准备搞一个海外事业部,并搞笑的是,让技术部与之联系,而不是让其经理直接入住总经办。
海外事业部(area3),原来技术部门只好去除stub flag。但是海外事业部没有与总经办联系(area0)联系,他如何获得公司各个部门的联系方式,部门员工不干那是可以的,但不不能不发钱,不吃饭,不养家糊口吧。好在公司(ospf)想出一条妙计,来3种方法解决问题:
1、多进程重分布:
你技术部(area1)与海外事业部(area3)以及总经办(area0)都有联系,你上面开2个进程,让2者都能联系到对方,这个任务就交给R3了(升级了,成ASBR了)
技术部员工(R3)成ASBR了,与行政部员工(R5)差不了多少
只要是重分布,那就认为是external route,是通过type-5 LSA传过来的。真理啊
总经办(area 0)里面的家伙(R2|| R1)会如何认为:
看来ospf公司的人,都是认死理:只要你是重分布,你就是外部进来的。可能不是我们公司的,看人家可能有排外心理啊,但是技术部员工(R3)心里清楚,自己既有type-5 的LSA与type-1/3的LSA Flood一样的路由条目,怎么可能是外部的啊,明明是一个公司么,将一个公司的路由放进自己的路由表里面:
当然大家都不知道,技术部员工(R3)玩的多进程这把戏,因为进程在ospf公司都是本地有效。这样,技术部员工(R3)就相当充当了2个虚拟公司ASBA,将2个虚拟公司的信息(路由)传给直连的区域。
2、tunnel:
那ospf公司总经办(area 0)就不满了,你小子不过是一小p员工,可能资质浅(mem与cpu比较差,路由器平台差),你如果因为多进程出问题了,海外事业部公司还不管了。而且这样海外事业部内部员工建设有问题,企业文化难的认同了。咱自己有办法:开个隧道:tunnel(其实ospf的virtual-link也是一样的,开的隧道,只不过是封装不一样罢了,谁让tunnel是人家GRE的东西)
技术部经理(R2)发现没有技术部员工(R3)这小子不行,封他个副经理,让他狐假虎威好了。 R3通过tunnel混成了ABR啦
o(∩_∩)o 哈哈,海外事业部的知道总经办了(获得Type-3的LSA flood 路由信息了)
R4对技术部员工(R3)那是相当看重,R3终于摆脱后娘养的命运了,成海外事业部(area3)的管理层了。
其实这里另外tunnel的封装原理,tunnel封装了2层ip 头部。
看到没有,多了GER与一个新ip头部。将tunnel地址network进ospf进程的时候,当ospf发出hello packet,他会将查看路由表,当然是这样:
R2发现下一跳是tunnel接口,而从tunnel的source与destination那里得知自己要从那里出去和到那个地方。这个可以查看路由表,source:23.1.1.2直连,从这个接口发出,目的是23.1.1.3.而真正的源ip地址是192.168.1.2,目的是组播:224.0.0.5.当R3收到该报文后,解封装发现是GRE的,继续解,得到R2的hello包,自己也这样封装发送,中间以及他们路由器都不知道这个过程。
3、virtual-link:
ospf公司又认为tunnel总是人家GRE的东西,还要几层封装,自己的virtual-link应该更好。有自己的干嘛用人家GRE呢。
技术部员工(R3)的配置,应该是海外事业部经理兼技术部员工了:
数据裤的摘要有所减小。主要减去type-4 的LSA。
ok,到这里over。
转载于:https://blog.51cto.com/fengyun/504515