目录
前言
一、OSPF产生背景
二、动态路由协议的分类
三、OSPF底层原理四大步骤
四、OSPF基本术语:Router-ID/度量值/区域
五、OSPF基础配置命令
相信大家能点开这篇文章就代表着多多少少对静态路由都有一定的了解,静态路由具有不适用大型网络以及难以控制网络状态等弊端,所以才催生出了OSPF动态路由协议这项技术,OSPF这个协议十分的重要,应用很广泛,希望大家可以好好看一看
之前电脑比较少还没有普及的时候,当时电脑之间通信采用的是静态路由
静态路由工程师手动配置和维护路由条目,命令行结构简单准确,但是只适用于小型网络(原因嘛,很好理解,就是需要手动进行配置,三五台还可以接受,但是三五百台呢?),并且无法动态的响应网络结构的变化,无法自动收敛网络(就是不明确物理网络链路的状态信息,链路都坏了,路由器还傻乎乎的一直发送数据),必须工程师进行手动修改
工程师忙不过来就想着创造一种新的协议,来解决此问题,于是就催生了出了OSPF动态路由协议,OSPF能够支持更大规模的网络
• 动态路由协议因其灵活性高、可靠性好、易于扩展等特点被广泛应用于现网。在动态路由协议之中, OSPF(Open Shortest Path First ,开放式最短路径优先)协议是使用场景非常广泛的动态路由协议之一。• OSPF 在 RFC2328 中定义,是一种基于链路状态算法的路由协议。
相信大家初学者看到这些应该是有点蒙的,不要慌,一步一步慢慢来嘛,我在这里就给大家粗略的介绍一个协议,那就是BGP协议
• BGP 使用一种基于距离矢量算法修改后的算法,该算法被称为路径适量( Path Vector )算法。因此在某些场合下, BGP 也被称为路径矢量路由协议。
既然说到这里就随便给大家提一下什么叫距离矢量路由协议,这方面知识对于初学者来说了解就好
距离矢量路由协议--路由表泛洪:
• 运行距离矢量路由协议的路由器周期性的 泛洪自己的路由表 。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中。• 对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的方向在哪里,距离有多远(通过一层层的交互得来的)。这即是距离矢量算法的本质。
这种协议虽然可以达到互通的目的,但是对网络整体结构并没有一个清楚的认知,不是太智能
链路状态路由协议--LSA泛洪:
• 与距离矢量路由协议不同,链路状态路由协议通告的的是链路状态而不是路由表。运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互 LSA(Link State Advertisement,链路状态通告) 。
链路状态路由协议可以理解为每个路由器都互相发送一个包(LSA),来描述自己直连接口状态(状态包括端口的度量值/开销值、直连的网段/与相邻路由器之间的关系等等)
1.建立相邻路由器之间的邻居关系
2.邻居与邻居之间交互LSA(Link State Advertisement)以及同步LSDB
3.计算最优路径
4.将最优路径添加到路由表内
接下来我们就逐一讲解这几大步骤
1.建立邻居关系:
这个好理解,就是路由器之间互相先认识认识,方便后面交互信息
2.邻居与邻居间交互LSA以及同步LSDB:
上面讲到过邻居关系建立后就会交互LSA,但是交互完成的LSA放在哪里呢? 答案就是放入到LSDB(Link State DataBase,链路状态数据库)里面,路由器通过LSDB,就可以知道全网的拓扑结构
3.计算最优路径:
在有路径数据库(LSDB)的基础上使用SPF(Shorest Path First,最短路径优先)算法进行计算,每台路由器都可以基于此算法算出一颗以自己为根的、无环的、具有最短路径的一颗 ”树“ ,有了这棵树,你去哪里都可以,而且是路径最短
4.将最短路径加入路由表内
这里只需要记住一点那就是只加入一条,这一条就是SPF计算出来的那一条路径最短的路线
总结
链路状态路由协议有四个步骤:第一步是建立相邻路由器之间的邻居关系。第二步是邻居之间交互链路状态信息和同步 LSDB 。第三步是进行优选路径计算。第四步是根据最短路径树生成路由表项加载到路由表。
Router-ID:
• Router-ID(Router Identifier,路由器标识符) ,用于在一个 OSPF 域中唯一地标识一台路由器。• Router-ID 的设定可以通过手工配置的方式,或使用系统自动配置的方式(初期可以不配置,但是学深了就知道必需要进行配置)。• 在实际项目中,通常会通过手工配置方式为设备指定 OSPF Router-ID 。 请注意必须保证在 OSPF 域中任意两台设备的 Router-ID 都不相同。通常的做法是将 Router-ID 配置为与该设备某个接口(通常为 Loopback 接口)的 IP 地址一致(因为IP地址不会重复呀)。
度量值:
• OSPF 使用 Cost (开销)作为路由的度量值。 每一个激活了 OSPF 的接口都会维护一个接口 Cost 值,缺省时接口 Cost 值 = 100 Mbit / s 接口带宽"100 Mbit/s " /"接口带宽" 。其中 100 M bit / s"Mbit/s" 为 OSPF 指定的缺省参考值,该值是可配置的。• 笼统地说,一条 OSPF 路由的 Cost 值可以理解为是从目的网段到本路由器沿途所有入接口的 Cost 值累加。
区域:
• OSPF Area 用于标识一个 OSPF 的区域。• 区域是从逻辑上将设备划分为不同的组,每个组用区域号( Area ID )来标识。
1.在系统视图下创建并运行ospf进程
#例如:ospf 1
#router暂时还不用进行配置
[Huawei] ospf [ process-id | router-id router-id ]
porcess-id用于标识OSPF进程,默认进程号为1。
OSPF支持多进程,在同一台设备上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。
router-id用于手工指定设备的ID号。如果没有通过命令指定ID号,系统会从当前接口的IP地址中自动选取一个作为设备的ID号。
2.在ospf视图下创建并进入ospf区域
例如:area 0
[Huawei-ospf-1] area area-id
area命令用来创建OSPF区域(目的就是把同样使用ospf协议的其他路由器划分到同一个组),并进入OSPF区域视图。
area-id可以是十进制整数或点分十进制格式。
采取整数形式时,取值范围是0~4294967295
3.在ospf区域视图下指定运行ospf的接口
#切记这里是反掩码
宣告网段地址方法
Huawei-ospf-1-area-0.0.0.0] network network-address wildcard-mask
#可以宣告网段地址加反掩码,也可以宣告网关地址加反掩码
宣告网关地址的好处是--网关地址是已经确定的,网关地址的反掩码是不变的,都为0.0.0.0
宣告网关地址方法
Huawei-ospf-1-area-0.0.0.0] network 网关地址 0.0.0.0
network命令用来指定运行OSPF协议的接口和接口所属的区域。network-address为接口所在的网段地址。wildcard-mask为IP地址的反码,相当于将IP地址的掩码反转(0变1,1变0),例如0.0.0.255表示掩码长度24 bit。