之前我有文章详细描述了OSPF Router ID的功能,它是一台OSPF路由器的身份证,用来唯一的标识一台路由器!在整个OSPF网络中,Router ID都不能相同(常规),因为OSPF路由器发送任何信息时,都会携带Router ID的,如果Router ID相同,则其它的路由器就没有办法区分到底是哪台路由器发送的信息!
关于Router ID的详细介绍,还可以参加我之前的文章:Router ID, OSPF路由器的身份证:重要,但不需要可达。
我们今天主要来介绍Process ID。
OSPF Process ID只具有本地意义各位小伙伴在学习OSPF时,是一定会对Process ID产生疑问的,因为我们配置第一条OSPF命令,就会用到Process ID, 如下图中的“1”,就表示OSPF的Process ID:
启用OSPF协议的两种方式
如上图,是OSPF协议的两种启用方式,不论以哪种方式启用,都会涉及到Process ID。(关于OSPF协议的两种启用方式,如果有疑问,可以参加我专栏第3节内容:启用OSPF协议的两种方式:曾经推荐和现在推荐。)
Process ID的取值访问是1-65535,很多小伙伴的第一个疑问就是:两个OSPF路由器要形成邻居关系,它们的process ID需要相同吗?
Process ID取值范围
这里明确的告诉大家:两个OSPF路由器形成邻居关系,不要求Process ID相同,Process ID只具有本地意义!
那“只具有本地意义”代表什么意思呢?就是OSPF路由器之间交互信息的过程中,不会携带Process ID,更不会协商Process ID。
这点和Router ID是不相同的,我们知道OSPF路由器之间交互信息,会包含Router ID;并且如果两个Router ID相同的路由器,是没有办法形成邻居关系的。
OSPF路由器可以配置多个OSPF Process ID,每一个都是独立的LSDB如下图所示,在一个OSPF路由器上,可以配置多个Process ID,每一个Process ID都会单独的维护一个LSDB。
独立的LSDB
上面的说法可能有点玄乎,很多初学的小伙伴不能理解!没关系,我们后面会有课程会专门介绍LSDB,先有这个概念就行。
其实很多小伙伴的第二个疑问就是:如果本地配置多个OSPF Process ID,路由器收到OSPF报文,该放到哪个Process ID里呢?
其实小伙伴完全不用担心,如下图,一个网段已经在Process 1中发布了,
在Process 1中发布
如果还想在其它的Process 中发布,就会提示错误:
在Process 2中再次发布
错误信息如下:
"Error: The specified network command has been occupied by another area or proces
s."
各位小伙伴这样明白了吧?一个网段只能发布在一个Process ID中,当OSPF路由器收到不同网段发送的报文以后,肯定就知道把报文上送到哪个Process ID中了!所以我的们担心是多余的!
估计有的小伙伴还会有第3个问题:不同的Process ID之间能进行信息交互吗?
答案是肯定的!如果两个不同的OSPF Process ID之间要交互信息,就要执行 “引入”(redistribute)的操作,就像把其它路由协议(RIP、ISIS、BGP)引入OSPF一样。
执行引入操作
引入的路由,在OSPF中也是属于外部路由,和其它路由协议待遇也是一样的。
外部路由
Router ID vs Process ID经过上面的描述,各位小伙伴应该明白了,Router ID和Process ID是两个完全不一样的内容!
- Router ID用来唯一的标识一台路由器,会在交互的报文里携带;
- Process ID代表一个LSDB数据库,只具有本地意义,不会在交互的报文里携带;
建议一台路由器上,尽量不要配置多个Process ID,因为每多一个Process ID,就会多一个LSDB,路由器维护LSDB是会耗费很多资源的。
给大家留一个小作业:你认为一台路由器上不同Process ID可以配置相同的Router ID吗?
不同Process ID能配置相同的Router ID吗? 单选 0人 0% 可以配置 0人 0% 不能配置
最后给大家推荐一个关于思科模拟器的专栏,包含最常见的3种思科模拟器的部署方法:Cisco Packet Tracer,GNS3,EVE-NG!内容非常详细!