OSPF进程号的意义及多进程OSPF—吴锦霖分享
1. OSPF进程号的概念安全
在配置OSPF时,咱们采用的是router ospf命令,在该命令后面须要加上这个OSPF进程的进程号(Process-Id),进程号用于在一台路由器上区分不一样的OSPF进程。这就有点像人格分裂的感受 —— 一个天然人有多种不一样人格,每种人格之间相互独立,互不影响。进程号的取值范围是1-65535。
上图所示的拓扑中,R1使用进程号10建立了一个OSPF进程,同时激活了本身的直链接口FE0/0,而R2使用进程号20建立了一个OSPF进程,同时也在本身的直链接口上激活了OSPF。虽然这两个进程号不同,可是R1-R2之间的邻居关系创建是彻底没有问题的。由于OSPF进程号只具备本地意义,路由器之间交互的全部OSPF报文中,都不会体现任何关于进程号的信息。进程号只在一台路由器上用于区分多个OSPF进程,所以对于R1而言,它并不关心它的直连OSPF邻居R2使用的是什么OSPF进程号,10也号,20也罢,这就有点像“本身的事本身知道就行“ -- 本地意义。服务器
固然,在实际的网络部署中,除非有特定的需求,咱们仍是建议全网使用统一的进程号,虽然每台设备使用不一样的进程号对OSPF的运行没什么影响,可是却给网络的管理和维护带来了多余的成本,你不会这么干的,对吧?
网络
2. 多个OSPF进程
上面的拓扑颇有意思,在R2上,常规的作法是用一个进程号建立一个OSPF进程,同时将本身的两个直链接口都宣告进这个OSPF进程,可是为了讲解OSPF进程ID的本地意义,我这里在R2上使用两个进程号分别建立了两个OSPF进程,而且分别宣告了R2的两个直链接口,换句话说,R2使用OSPF进程12与R1创建邻居关系,使用OSPF进程23与R3创建OSPF邻居关系。如此一来,R2在本地就有了两个OSPF进程,使用进程号12及23进行区分。整个网络中也就出现了两个OSPF域(OSPF Domain)。这两个OSPF进程,都会各自从其邻居R1和R3学习到OSPF路由,可是值得强调的是:学习
· 这两个OSPF进程相互独立和隔离(两个OSPF Domain),两个进程独立维护各自的LSDB。换而言之R2经过OSPF进程12从R1学习到的OSPF路由(严格的说,应该是LSA),例如描述1.1.1.0/24的LSA,缺省时不会传递到进程23的(这是由于在R2,这两个OSPF进程互相独立互相隔离),固然,从R3学习过来的OSPF路由,R2虽然本身能学习到,可是照样不会传递给R1,这就好像,这两个进程虽然都在R2上,可是彼此之间有着一道鸿沟,世界上最遥远的距离,莫过于此啊。设计
· 再者,R2这两个OSPF进程虽说彼此隔离,可是均可觉得R2自身贡献路由,例如若是R1更新过来一条路由1.1.1.0/24,R3更新过来一条3.3.3.0/24,那么在R2的全局路由表里都是能看到这两条路由的。但这两条路由不会互相灌进对方的OSPF进程(形成的直接结果是R1没有R3的路由,R3没有R1的路由),除非 -- 对了,路由重发布,你懂的。router
3. OSPF进程之间的路由重发布接口
同一台路由器上的不一样OSPF进程相互独立,各自维护本身的LSDB。若是要把一个OSPF进程内的路由注入到另外一个进程中,就须要部署路由重发布,例如上图所示,R2做为一台ASBR,要把进程12中的路由注入到进程23中,配置如上。固然,若是要实现全网路由互通,则还须要在OSPF进程12中,将进程23的路由重发布进来。进程
4. 何时会使用不一样的OSPF进程路由
咱们知道一台路由器能够建立多个OSPF进程,并且进程之间相互隔离。通常状况下,当咱们在作网络建设时,整个网络就是一个统一的路由选择域,若是选用OSPF做为路由协议,则全部的OSPF路由器使用一个OSPF进程便可。
上图展现了一个大型企业的网络拓扑,R一、R二、R3及R4是省公司的设备,SW一、SW2及往下是市公司的设备,R5是区县站点设备(实际上有多个区县站点,此处只显示了一个)。为了实现市公司与各区县站点的网络互通,咱们在市公司全部设备,以及区县站点的全部路由器上都配置了OSPF而且进行了多区域的规划。因为整个企业数据网络的规模较大,要想打通整个网络的路由,使用一个OSPF域直接从区县站点往上拉到省公司,显然是不靠谱的,一来整个域太大,路由前缀数量太多,二来OSPF的多区域设计在面对这么大规模网络的时候显得仍是有点力不从心,三来总公司并不但愿看到分公司以及下面的子站点的路由明细,路由汇总势必是要考虑的,加之对流量的走向还有严格的要求,策略部署上如何考虑?所以为省公司网络规划了另一个OSPF域,在省公司的边界设备R三、R4上建立两个OSPF进程,进程1面向总公司,进程2面向下面的市公司及区县站点。两个进程相互独立不互相干扰,而R3及R4又可以学习到省公司、分公司及各个区县站点的路由,两个OSPF域能够独立规划,域内Area的设计又变得更加宽松和灵活。文档
固然,省公司、总干以及地市公司是须要相互通讯的,这时候因为省公司的网络属于OSPF进程1,而市分公司及区县站点的网络属于OSPF进程2,相互独立,为了把路由打通,就须要在R3和R4上执行OSPF进程之间的路由相互重发布。一旦把R三、R4设计为路由重发布的执行点,他俩瞬间就变得很是重要和牛逼了,由于在重发布的过程当中,能够执行路由策略、能够作路由过滤,更能够作路由汇总,网络的设计和规划就变得很是有弹性了。
下面再来看多进程OSPF的另外一个例子:
在上图所示的网络中,存在两个不一样的业务。生产及办公,两个业务各有本身的服务器网络,两台Router分别链接着这两个业务的服务器网络。而终端用户则链接在SW上,如今终端用户须要访问各自业务的服务器,那么SW固然是须要有相应的路由的。咱们但愿将生产及办公的业务进行隔离,可是这两个业务的终端用户又都是链接在SW上,如何隔离?很简单,在SW上建立两个OSPF进程,其中进程1用于生产业务,进程2用于办公业务。在OSPF进程1中,激活VLAN10及VLAN20对应的SVI,并激活与SC-Router对接的三层接口;在OSPF进程2中,激活VLAN30、40对应的SCI,并激活与BG-Router对接的三层接口,如此一来办公及生产服务器网段的路由经过这两个OSPF进程在SW上进行了隔离。
这的确是一种好方法,可是虽然OSPF进程是隔离的,SW的全局路由表中却拥有者生产及办公两个业务的路由,也就是说两个业务的路由实际上在SW这个点上是打通的,显然不够安全,若是有人从办公网络登到办公终端,而后再从办公终端跳转,去访问生产服务器就麻烦了。因此,咱们又引入了另外一个概念——VRF(Virtual Routing Forwarding,虚拟路由转发),所谓的VRF你能够理解为虚拟设备,经过在SW上建立VRF实例,而且将生产的OSPF进程关联到一个VRF实例中,从而完全将生产路由与办公路由进行隔离(办公路由及业务跑在根设备上,生产路由及业务跑在VRF实例上,二者彻底隔离,能够想象为两台SW)。关于VRF的进一步内容,请查阅相关文档,这里篇幅所限,不作详细探讨。