OSPF(链路状态路由协议)路由协议概述
按照AS分类
As是指由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
【1】按自治系统分为
IGP:内部网关路由协议,运行在As内部的路由协议,主要解决As内部的选路问题,发现、计算路由。
主要:RIP1/RIP2、OSPF、ISIS、EIGRP(思科私有协议)
EGP:外部网关路由协议,运行在As与As之间的路由协议,他解决As之间选路问题。通常有BGP
【2】按协议类型分类
距离矢量路由协议:RIP1/2、BGP(路径矢量协议)、EIGRP(高级距离矢量协议)
路由器对全网拓扑不完全了解。是"传说的路由",A发路由信息给B,B加上自己的度量值又发给c,路由表里的条目是听来的。
OSPF
在链路状态路由协议中路由器对全网拓扑完全了解。是"传信的路由",a将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给c,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是LSDB。然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree(即到达目的地的各个方案),选出最佳路径,放入路由表中。
工作过程:
邻居列表,链路状态数据库,路由表
形成路由:
OSPF接口发送Hello包,建立邻居关系,之后学习链路状态信息(互相发送LSA链路状态通告相互通告路由),形成链路状态数据库。再通过Dijkstra算法(SPF算法),计算最短路径树(cost最小)后放入路由表。
OSPF区域
为了适应大型的网络,OSPF在AS内划分多个区域,每个OSPF路由器只维护所在区域的完整链路状态信息,然后将一个区域的LSA简化和汇总后由边界路由(ABR)转发给另一个区域。
- 区域的ID可以表示为十进制的数字或者是一个IP。
- 区域的划分上,一般Area 0是骨干区域,其他为非骨干区域,非骨干区域无法直接通信,所有通信必须经过骨干区域。
Router ID :
OSPF区域内唯一标识路由器的IP地址
Router ID选取规则:
选取路由器loopback接口上数值最高的IP地址
如果没有loopback接口,在物理端口中选取IP地址最高的
上面两个都是自动选取的,下面这个是手动选取的规则:
使用router-id命令指定Router lD
DR和BDR:
当多台OSPF路由器连到同一个多路访问网段时,如果每两台路由器之间都相互交换LSA,那么该网段将充满着众多LSA条目,为了能够尽量减少LSA的传播数量,这时候需要一个路由器和所有的路由器互换LSA,减少LSA的数量,那么这个路由器被称为DR;在选DR的时候,也会选出一个作为备份,称为BDR;最后其他路由器(DRothers)只和DR和BDR形成邻接关系。
DR和BDR的选举方法:
自动选举DR和BDR:
网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR
手工选择DR和BDR:
优先级范围是0~255,数值越大,优先级越高,默认为1·
如果优先级相同,则需要比较Router lD
如果路由器的优先级被设置为0,它将不参与DR和BDR的选举
DR和BDR的选举过程:
路由器的优先级可以影响一个选举过程,但是它不能强制更换已经存在的DR或BDR路由器
在OSPF中使用224.0.0.5和224.0.0.6作为组播地址,选举时,大家都是用组播地址224.0.0.5发送Hello包(这个时候路由器都认为自己是DR),当DR和BDR选出来后,DR和BDR使用224.0.0.5发送,其他路由器使用224.0.0.6发送。
OSPF的度量值为COST
COST=108/BW
最短路径是基于接口指定的代价(cost)计算的
接口类型 | COST(108/BW) |
---|---|
Gigabit Ethernet | 0.1 |
fast Ethernet | 1 |
Ethernet | 10 |
电话线56K | 1785 |
OSPF的5个数据包:
承载在IP数据包内,使用协议号89
OSPF的包类型 | 描述 |
---|---|
Hello包 | 用于发现和维持邻居关系,选举DR和BDR |
数据库描述包(DBD) | 用于向邻居发送摘要信息以同步链路状态数据库 |
链路状态请求包(LSR) | 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息 |
链路状态更新包(LSU) | 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA |
链路状态确认包(LSAck) | 确认已经收到DBD/ LSU,每个LSA需要被分别确认 |
OSPF的7个状态
状态 | 作用 |
---|