一、OSPF ProcessID本地有效
 

 
    首先明确一下,OSPF ProcessID,范围为1-65535,用于在路由器本地标识OSPF进程。
看上图,R1使用进程号10创建了一个OSPF进程,同时宣告了自己的直连接口;而R2使用进程号20创建了一个OSPF进程,同时也宣告了自己的直连接口。虽然这两个进程号不一样,但是我们说,OSPF进程号只是本地有效,这句话的意思是,对于R1而言,它并不关心它的直连OSPF邻居-R2使用的是什么OSPF进程号,10也号,20也罢,这就有点像“自己的事自己知道” - 本地有效。
    当然,在实际的部署中,我们还是特别建议全网使用一样的进程号(虽然你可以试着在每台路由器上使用不同的进程号,这当然不影响网络的运行,但是……你特么不会真这么干吧?)
 
二、一台路由器可创建多个OSPF进程,使用OSPF ProcessID进行区分,不同的进程相互独立
 
我们再看下图,
 
    这个图很有意思,在R2上,常规的做法是,用一个进程号创建一个OSPF进程,同时将自己的两个直连接口宣告进这个OSPF进程,但是为了讲解OSPF进程ID的本地意义,我这里在R2上使用两个OSPF ProcessID创建了两个OSPF进程,并且分别宣告了R2的直连接口,换句话说,R2使用OSPF进程20与R1建立邻居关系,使用OSPF进程30与R3建立OSPF邻居关系。
 
    如此一来,R2在本地就有了两个OSPF进程,使用ProcessID 20及30进行区分,这就是进程号的本地意义。  
    那么这两个进程,都会各自从其邻居R1和R2学习到OSPF路由,但是值得强调的是:
  • 这两个OSPF进程相互独立,换而言之,R2通过OSPF进程20从R1学习到的OSPF路由(严格的说,应该是LSA),例如1.1.1.0/24,默认不会直接更新给R3(这是因为在R2,这两个OSPF进程互相独立互相隔离),当然,从R3更新过来的OSPF路由,R2虽然自己能学习到,但是,照样不会传递给R1,这就好像,这两个进程,虽然都在R2上,但是有那么点隔阂,世界上最遥远的距离,莫过于此啊。
  • 再者,R2这两个OSPF进程虽然说彼此隔离,但是都可以为R2自身贡献路由,例如如果R1更新过来一条路由1.1.1.0,R3更新过来一条3.3.3.0,那么在R2的全局路由表里都是能看到这两条路由的。而且我们上面说了,这两条路由,不会互相灌进对方的OSPF进程(造成的直接结果是R1没有R3的路由,R3没有R1的路由),除非 -- 对了,路由重发布 你懂的
  • 上面说了,这两个进程都可以为R2的全局路由表贡献路由条目,但是有一点要注意,如果R1及R3都向R2来更新,同一条OSPF的路由呢?R2将会优选谁? 回忆一下我们在单一进程的情况,R2会根据COST来选,如果等价,R2会对这两条路由进行负载均衡对吧?但是这里不一样了,在这个环境中,R2会以“先到先得”的原则,谁的路由先过来,我就优选谁,所以跑的快还是能抢到妹纸的。
 
三,总结
 
  • OSPF ProcessID只是本地有效,用来在本地区分不同的OSPF进程
  • 虽然OSPF ProcessID本地有效,但是我们仍然建议,除非有特殊需求,否则全网使用一致的OSPF进程ID,这将方便网络管理和维护
  • 什么情况下需要用到多OSPF进程呢?这个问题可就大了,一般而言,一台路由器创建一个OSPF进程,可以实现网络的需求,但是在一些特殊的、复杂的环境当中,单一的OSPF进程可能无法满足要求,因此在一台路由器上创建多个OSPF进程,这样一来的直接好处是,这台路由器从原先的屌丝角色--OSPF interArea Router,华丽丽的变成了一台ASBR,它可以在进程之间重发布、可以过滤路由或LSA、可以操控路由、可以做基于route-map的策略、可以做路由汇总等等。

OSPF ProcessID(进程号)详解的更多相关文章

  1. linux进程地址空间详解(转载)

    linux进程地址空间详解(转载) 在前面的<对一个程序在内存中的分析 >中很好的描述了程序在内存中的布局,这里对这个结果做些总结和实验验证.下面以Linux为例(实验结果显示window ...

  2. IIS:连接数、并发连接数、最大并发工作线程数、应用程序池的队列长度、应用程序池的最大工作进程数详解

    Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务.最初是Windows NT版本的可选 ...

  3. IIS连接数、并发连接数、最大并发工作线程数、应用程序池的队列长度、应用程序池的最大工作进程数详解

    IIS:连接数.并发连接数.最大并发工作线程数.应用程序池的队列长度.应用程序池的最大工作进程数详解 iis性能指标的各种概念:连接数.并发连接数.最大并发工作线程数.应用程序池的队列长度.应用程序池 ...

  4. Linux进程退出详解(do_exit)--Linux进程的管理与调度(十四)

    Linux进程的退出 linux下进程退出的方式 正常退出 从main函数返回return 调用exit 调用_exit 异常退出 调用abort 由信号终止 _exit, exit和_Exit的区别 ...

  5. linux进程控制函数详解

    进程控制 fork函数 创建一个子进程. pid_t fork(void); 失败返回-1:成功返回:① 父进程返回子进程的ID(非负) ②子进程返回 0 pid_t类型表示进程ID,但为了表示-1, ...

  6. linux之进程管理详解

    |-进程管理        进程常用命令        |- w查看当前系统信息        |- ps进程查看命令        |- kill终止进程        |- 一个存放内存中的特殊目 ...

  7. Linux进程管理详解

    何谓进程?进程,就是正在执行的一个程序或命令,每一个进程都是一个运行实体,有自己的地址空间,并占用一定的系统资源.简而言之,进程就是运行中的程序.在Linux中,诸如ls等命令都是进程,只不过某些命令 ...

  8. Linux进程数据结构详解

    1.Linux的进程简介: 支持多线程的操作系统中,进程是资源分配的最小单位,线程是调度的基本单位.Linux是现代的32位或64位的支持多线程的操作系统,不过Linux是一种以轻量级进程作为线程,多 ...

  9. linux ps查看进程命令详解

    http://linux.net527.cn/Linuxwendang/xitongguanliyuan/39094.htmlLinux操作系统PS命令详细解析 要对系统中进程进行监测控制,用 ps ...

  10. Linux-信号详解

    1.Linux支持的所有信号: $ kill -l ) SIGHUP ) SIGINT ) SIGQUIT ) SIGILL ) SIGTRAP ) SIGABRT ) SIGBUS ) SIGFPE ...

随机推荐

  1. jQuery中filter(),not(),split()的用法

    filter(),not(): <script type="text/javascript"> $(document).ready(function() { //输出 ...

  2. kafka_2.9.2-0.8.1.1分布式集群搭建代码开发实例

    准备3台虚拟机, 系统是RHEL64服务版. 1) 每台机器配置如下:$ cat /etc/hosts    # zookeeper hostnames:       192.168.8.182    ...

  3. jquery常用代码集锦

    1. 如何修改jquery默认编码(例如默认GB2312改成 UTF-8 ) 1 2 3 4 5 $.ajaxSetup({     ajaxSettings : {         contentT ...

  4. Codeforces 435 A Queue on Bus Stop

    题意:给出n队人坐车,车每次只能装载m人,并且同一队的人必须坐同一辆车,问最少需要多少辆车 自己写的时候想的是从前往后扫,看多少队的人的和小于m为同一辆车,再接着扫 不过写出来不对 后来发现把每一队的 ...

  5. Servlet的页面跳转

    Servlet的跳转    内部跳转 req.getRequestDispatcher()        Server--->AServlet--->BServlet        两个S ...

  6. BZOJ 1617 渡河问题

    普及组dp. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ...

  7. CI在CentOS中的部署与实践LNMP

    1. 平台:lnmp CentOS6.4 (64bit) nginx1.2.4+php5.5.7配置过程中遇到的问题与处理方式: 1. 404错误: 原因:nginx中的配置请求路径的问题 2. 40 ...

  8. dede栏目调用大全

    A:侧边栏常用的当前栏目的父栏目调用(5.7) 1.在include/common.inc.php增加函数 function getTopCategoryName($cid=0) { global $ ...

  9. SeuRain的归来

    不知不觉二十载寒窗苦读要结束了,还没有到回顾过去的时候.马上进入研三了,现在要努力加油了.还记得曾经的那个在凌晨两点奋战的宇么?归来吧!

  10. Java多线程-工具篇-BlockingQueue

    前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列 类,为我们快速搭建高质量的多线程程序带来极大的 ...