OSPF动态路由协议入门简介

——随着Internet技术在全球范围的飞速发展,OSPF已成为目前Internet广域网和Intranet企业网采用最多、应用最广泛的路由协议之一。OSPFOpen Shortest Path First)路由协议是由IETFInternet Engineering Task ForceIGP工作小组提出的,是一种基于SPF算法的路由协议,目前使用的OSPF协议是其第二版,定义于RFC1247RFC1583<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

——OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。

——作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSALink State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。

直接相连的邻居路由器:失去与邻居路由器的联系后,路由器通过Hello信息来确定邻居的存活状态。10秒内如果没有收到邻居的Hello信息,或者路由器向邻居所发送的Hello信息没有返回,路由器就会将该路由在路由表删除然后发送LSA通告区域内的其他路由器。

网络或区域内的其他路由器及其相连的网络:路由器通过LSA来获悉其他路由器和网络,LSA被扩散到整个网络,他存储在拓扑表(LSDB)中。

前往每个目的的最佳路径:使用SPF算法来计算前往网络中每个目的地的最佳路径。SPF算法是OSPF路由协议的基础。SPF算法有时也被称为Dijkstra算法,这是因为最短路径优先算法SPFDijkstra发明的。SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中,被称为最短路径树。在OSPF路由协议中,最短路径树的树干长度,即OSPF路由器至每一个目的地路由器的距离,称为OSPFCost,其算法为:Cost = 100×106/链路带宽。在这里,链路带宽以bps来表示。也就是说,OSPFCost 与链路的带宽成反比,带宽越高,Cost越小,表示OSPF到目的地的距离越近。举例来说,FDDI或快速以太网的Cost1,<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2M串行链路的Cost4810M以太网的Cost1056K串行线路的链路开销为1785。然后将根路由器到达每一个目的地的Cost值相加,最小值确定为最佳路径。
区域的概念:OSPF路由协议会把大规模的网络划分成多个小范围区域,以避免大规模网络所带来的弊病,从而提高网络性能。
   
中转区域(骨干区域Area0):主要功能为快速、高效的传输IP分组的OSPF域。中转区域将其他类型的OSPF区域连接起来,通常,中转区域中没有终端用户。根据定义,OSPF区域0(骨干区域Area0)为中转区域。
   
常规区域:主要功能为连接用户和资源的OSPF区域。常规区域通常是根据职能或地理位置划分的。默认情况下,常规区域不允许另一个区域使用其连接将数据流传输到其他区域。来自其他区域的所有数据流都必须经过中转区域(如区域0)。
    OSPF
协议推荐每个区域不超过50台机器。全网最多支持1024台路由器。

运行OSPF所维护的三个表:
邻居表:凡是路由器认为和自己有邻居关系的路由器,都会出现在这个表里。只有形成了邻居表,路由器才可能向其他路由器学习网络拓扑。
拓扑表:当路由器建立了邻居表之后,运行OSPF路由协议的路由器会互相通告自己所了解的网络拓扑建立拓扑表。在一个区域里,所有的路由器应该形成相同的拓扑表。只有建立了拓扑表之后,路由器才能使用SPF算法从拓扑表里计算路由。
路由表:路由器依靠路由表来为数据包进行路由操作。在运行OSPF路由协议的路由器中,当完整的拓扑表建立起来之后,路由器便会按照链路带宽的不同,使用SPF算法从拓扑表例计算出路由,记入路由表。

路由器标识(route ID):路由器标识不是我们为路由器起的名字,而是路由器在OSPF路由协议操作中对自己标识。一般来说,在没有配置回环接口(Loopback interface,一种路由器上的虚拟接口,它是罗杰存在的,路由期上并没有这种物理接口,它是永久开启的。)时,路由期的所有物理接口上配置的最大的IP地址就是这台路由器的标识。如果我们在路由器上配置了环回地址接口,则不论环回地址上的IP地址是多少,该地址都自动成为路由器的标识。当我们在路由器上配置了多个环回接口时,这些环回接口中最大的IP地址将作为路由器的标识。

OSPF基本配置

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 
 
Router1:

interface ethernet 0

ip address 192.1.0.129 255.255.255.192

!

interface serial 0

ip address 192.200.10.5 255.255.255.252

!

router ospf 100
//100
OSPF协议的进程号,范围是1-65535。在同一个使用OSPF路由器协议的网络中的不同的路由器可以使用不同的进程号。一台路由器可以启用多个OSPF进程。

network 192.200.10.4 0.0.0.3 area 0
//network
发布加入OSPF协议中的接口的网段地址。
  Area 0
将该端口发布在区域0中。

network 192.1.0.128 0.0.0.63 area 1

!

Router2:

interface ethernet 0

ip address 192.1.0.65 255.255.255.192

!

interface serial 0

ip address 192.200.10.6 255.255.255.252

!

router ospf 200

network 192.200.10.4 0.0.0.3 area 0

network 192.1.0.64 0.0.0.63 area 2

!

Router3:

interface ethernet 0

ip address 192.1.0.130 255.255.255.192

!

router ospf 300

network 192.1.0.128 0.0.0.63 area 1

!

Router4:

interface ethernet 0

ip address 192.1.0.66 255.255.255.192

!

router ospf 400

network 192.1.0.64 0.0.0.63 area 1

!

相关调试命令:
show ip ospf
show ip ospf interface
show ip ospf neighbor
show ip route

 

项目:
荣新外企IT培训中心在上海成立了两家分支机构,需要与北京的两家分支机构互联。为了良好的拓展性,两个分支机构的路由器需要先分别连接到总公司的两台核心设备,然后再将两台核心设备互联。使用OSPF路由协议进行互联。
项目要求:

规划网络拓扑结构并配置设备。

 

多域的OSPF应用virtual-link
1.       某一个域与骨干域不相连需要使用virtual-link
2.       在一个OSPF网路中不能存在多个OSPF域如果存在2个以上的OSPF域需要启用virtual-link
3.       virtual-link命令表达方法:
area area-id virtual-link router-id
area-id应使用需要将两个area串联的中间那个areaidrouter-id使用对端设备的router-id

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux磁盘冗余阵列

RAID防止硬盘物理损坏以及增加存储设备的吞吐量&#xff0c;RAID常见的组合有0、1、5、和10RAID0:至少需要两块硬盘&#xff0c;可以有效提高硬盘的性能和吞吐量&#xff0c;但没有数据的冗余和错误修复能力将多块硬盘通过硬件或软件的方式串联在一起&#xff0c;成为一个大的卷…

关于管理的经典故事(员工激励)

员工管理和激励是一个复杂的事情&#xff0c;有时让管理者摸不着头脑&#xff0c;甚至感到头疼。销售管理往往并非现场管理&#xff0c;遥控管理无形之中增加了管理的难度。轻松一下&#xff0c;看看以下的十个经典故事&#xff0c;也许你会领略到管理的另一种意境。 一、 分工…

解决 413 Request Entity Too Large(请求实体太大)

今天做上传视频&#xff0c;报错413 Request Entity Too Large 我们可以看到请求的body的大小&#xff0c;在Content-Length后显示&#xff0c;Nginx默认的request body为1M&#xff0c;小于我们上传的大小 解决方案 找到自己主机的nginx.conf配置文件&#xff0c;打开 在http…

YUV422 转换成 RGB

#define CLIPVALUE(x, minValue, maxValue) ((x) < (minValue) ? (minValue) : ((x) > (maxValue) ? (maxValue) : (x))) #define YUVToR(Y, U, V) ( (Y) 1.4075 * ((V) - 128) ) #define YUVToG(Y, U, V) ( (Y) - 0.3455 * ((U) - 128) - 0.7169 * ((V) - 128) ) #de…

带参数的方法

1.语法&#xff1a; <访问修饰符>放回值类型<方法名><(形式方法列表)>{ //方法的主体 } 2.调用带参方法 语法&#xff1a;对象名.方法名&#xff08;参数1&#xff0c;参数2.....参数N&#xff09; 转载于:https://www.cnblogs.com/zyani/p/6…

【oracle灾备方案系列】基于DDS的Oracle复制容灾方案(三)

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />【oracle灾备方案系列】基于DDS的Oracle灾备方案&#xff08;三&#xff09;1. 数据查询应用平台方案1.1. 构建企业的第二数据中心在基于DataGrid DDS产品实现灾备架构中&am…

MFC 让界面点击无效

把 Disableed 设置为 True 就是让界面不再接受鼠标等控制。

关于 There is no getter for property named ‘id‘ in ‘class java.lang.Integer‘

errMsgorg.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named parentId in class java.lang.Integer 加上 Param("")注解

HTML5录音控件

最近的项目又需要用到录音&#xff0c;年前有过调研&#xff0c;再次翻出来使用&#xff0c;这里做一个记录。 HTML5提供了录音支持&#xff0c;因此可以方便使用HTML5来录音&#xff0c;来实现录音、语音识别等功能&#xff0c;语音开发必备。但是ES标准提供的API并不人性化&a…

关闭 MFC 界面程序控制台输出窗口

MFC 界面控制台界面窗口&#xff0c;在运行程序的时候会弹出来&#xff0c; 为了调试可以显示输出 printf 或 cout 信息&#xff0c;要关闭的话在程序入口处添加freeconsole() 函数进行设置。 避免多个窗口显示影响操作 CMainFrame::CMainFrame() {// TODO: 在此添加成员初始化…

SVN更新的时候报断言失败解决办法

解决办法&#xff1a;没啥好方法&#xff0c;重新检出代码就好使了。 转载于:https://www.cnblogs.com/yuanchaoyong/p/6999496.html

高德 ASIC 256 模组快门状态实时获取方案

1、快门状态命令 这个状态是由 ASIC 程序操作快门后记录的&#xff0c;如果是断电下的意外振动关闭是无法记录的 2、快门状态获取解决办法 根据快门闭合后的特征: 1) 温度均匀&#xff0c; 目标物体温度基本等于快门温度 2) 图像无轮廓线条和角点 3、快门状态实时检测线程 实…

C#委托

委托是一种引用方法的类型。委托定义出它想要代表的方法的原型&#xff0c;然后它可以和任何符合它所定义的方法的原型相关联。但使用委托时就犹如你在调用一个方法。委托使你动态的调用方法变成可能。而动态调用方法的意义就在于你可以在任意的地方插入任意的代码//using Syst…

JS 倒计时插件

剩余时间 <span class"djtime"><i id"t_h"></i><span>:</span><i id"t_m"></i><span>:</span><i id"t_s"></i></span></span> <script type"…

c++ 简单抽象工厂实现方法

实现基类 Shape实现 Shape 基类子类 两个实现创建子类对象的工厂类 #include <iostream> #include <map> using namespace std; class Shape //接口 { public:Shape() {cout << "Shape" << endl;}virtual ~Shape(){cout << "~Sh…

mysql使用 BETWEEN AND 查询

例子&#xff1a;查询1000到1020区间的数据 BETWEEN AND

在观念上进行大的转变

第二代 google排名搜索引擎虽然比第一代在搜索速度、针对多种语言信息的扩展等方面有所改进&#xff0c;在以自然语言为查询语言方面也做了一些探索。然而&#xff0c;随着Internet的强势发展&#xff0c;网上庞大的数字化信息和人们获取所需信息能力之间的矛盾日益突出。IDC在…