admin 管理员组文章数量: 1087652
2024年8月28日发(作者:1kb是多少字节)
多进程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的运行没什么影响,但是却给网络的管理和
维护带来了多余的成本,你不会这么干的,对吧?
1. 多个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的路由),除非 -- 对了,路由重发布,
你懂的。
2. OSPF进程之间的路由重发布
同一台路由器上的不同OSPF进程相互独立,各自维护自己的LSDB。如果要把一个
OSPF进程内的路由注入到另一个进程中,就需要部署路由重发布,例如上图所示,R2
作为一台ASBR,要把进程12中的路由注入到进程23中,配置如上。当然,如果要实现
全网路由互通,则还需要在OSPF进程12中,将进程23的路由重发布进来。
3. 什么时候会使用不同的OSPF进程
我们知道一台路由器可以创建多个OSPF进程,而且进程之间相互隔离。一般情况
下,当我们在做网络建设时,整个网络就是一个统一的路由选择域,如果选用OSPF作为
路由协议,则所有的OSPF路由器使用一个OSPF进程即可。
展示了一个大型企业的网络拓扑,R1、R2、R3及R4是省公司的设备,SW1、SW2
及往下是市公司的设备,R5是区县站点设备(实际上有多个区县站点,此处只显示了一
个)。为了实现市公司与各区县站点的网络互通,我们在市公司所有设备,以及区县站点
的所有路由器上都配置了OSPF并且进行了多区域的规划。由于整个企业数据网络的规模
较大,要想打通整个网络的路由,使用一个OSPF域直接从区县站点往上拉到省公司,显
然是不靠谱的,一来整个域太大,路由前缀数量太多,二来OSPF的多区域设计在面对这
么大规模网络的时候显得还是有点力不从心,三来总公司并不希望看到分公司以及下面的
子站点的路由明细,路由汇总势必是要考虑的,加之对流量的走向还有严格的要求,策略
部署上如何考虑?因此为省公司网络规划了另外一个OSPF域,在省公司的边界设备R3、
R4上创建两个OSPF进程,进程1面向总公司,进程2面向下面的市公司及区县站点。
两个进程相互独立不互相干扰,而R3及R4又能够学习到省公司、分公司及各个区县站
点的路由,两个OSPF域可以独立规划,域内Area的设计又变得更加宽松和灵活。
当然,省公司、总干以及地市公司是需要相互通信的,这时候由于省公司的网络属于
OSPF进程1,而市分公司及区县站点的网络属于OSPF进程2,相互独立,为了把路由
打通,就需要在R3和R4上执行OSPF进程之间的路由相互重发布。一旦把R3、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)。
版权声明:本文标题:多进程OSPF及进程号的意义 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1724824929a840247.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论