OSPF简介:
OSPF:一个基于链路状态的内部网关协议。
OSPF具有以下优点:
-
OSPF采用组播形式收发报文,这样可以减少对其它不运行OSPF路由器的影响。
-
OSPF支持无类型域间选路(CIDR)。
-
OSPF支持对等价路由进行负载分担。
-
OSPF支持报文加密。
OSPF基础:
OSPF协议具有以下特点:
-
OSPF把自治系统AS(Autonomous System)划分成逻辑意义上的一个或多个区域;
-
OSPF通过LSA(Link State Advertisement)的形式发布路由;
-
OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一;
-
OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。
Router ID
一台路由器如果要运行OSPF协议,必须存在Router ID。Router ID是一个32比特无符号整数,是一台路由器在自治系统中的唯一标识。
Router ID的选取有两种方式:
- 通过命令行手动配置。
- 设备自动设定。
如果没有手动配置Router ID,设备会从当前接口的IP地址中自动选取一个作为Router ID。其选取顺序是:
- 优先从Loopback地址中选择最大的IP地址作为Router ID。
- 如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为Router ID。
只有重新配置系统的Router ID或者OSPF的Router ID,并且重新启动OSPF进程后,才会进行Router ID的重新选取。
区域
随着网络规模日益扩大,当一个大型网络中的设备都运行OSPF路由协议时,设备数量的增多会导致链路状态数据库LSDB(Link-State Database)非常庞大,占用大量的存储空间,并使得运行SPF算法的复杂度增加,导致设备负担很重。在网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“动荡”之中,造成网络中会有大量的OSPF协议报文在传递,降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的设备重新进行路由计算。
OSPF协议通过将自治系统划分成不同的区域解决LSDB频繁更新的问题,提高网络的利用率。区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。区域的边界是设备,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。
OSPF的区域类型包括普通区域、Stub区域、NSSA区域,如表1所示。
区域类型 |
作用 |
说明 |
---|---|---|
普通区域 |
缺省情况下,OSPF区域被定义为普通区域。普通区域包括:
|
|
Stub区域 |
Stub区域是一些特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,因此这些区域中设备的路由表规模以及路由信息传递的数量都会大大减少。一般情况下,Stub区域位于自治系统的边界,是只有一个ABR的非骨干区域,为保证到自治系统外的路由依旧可达,Stub区域的ABR将生成一条缺省路由,并发布给Stub区域中的其他非ABR设备 Totally Stub区域允许ABR发布的Type3缺省路由,不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。 |
|
NSSA(Not-So-Stubby Area)区域 |
NSSA是Stub区域的一个变形,它和Stub区域有许多相似的地方。NSSA区域不允许存在Type5 LSA。NSSA区域允许引入自治系统外部路由,携带这些外部路由信息的Type7 LSA由NSSA的ASBR产生,仅在本NSSA内传播。当Type7 LSA到达NSSA的ABR时,由ABR将Type7 LSA转换成Type5 LSA,泛洪到整个OSPF域中。 Totally NSSA区域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。 |
|
路由器类型
根据在自治系统AS中的不同位置,OSPF协议中常用到的路由器类型如图1所示。
路由器类型 |
含义 |
---|---|
区域内路由器(Internal Router) |
该类 |