OSPF的基本概念:

OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(
OSPF区域:为了适应大型网络,OSPF在AS内划分多个区域,
每个OSPF 路由器只维护所在区域的完整链路状态信息。
区域ID:可以表示成一个十进制的数字,也可以表示成一个IP。
骨干区域的Area 0:负责区域间路由信息的和传播
非骨干区域:必须通过骨干区域0 才能通信。

OSPF的工作原理:

1.  建立邻居表
    a)  链路互通
    b)  正常发送报文——确保启用了OSPF,报文比较(hello)
2.  同步数据库(邻居的状态如果是 full ,就表示数据库同步)
    OSPF的邻居状态:
    Down————此状态还没有与其他路由器交换信息。
    init ———表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立。
    two-way——双向会话建立,而RID彼此出现在对方的邻居列表中。
    Exstart——信息交换初始状态,确定 Master,路由器ID大的的成为Master。
    exchange —信息交换状态,本地路由器和邻居交换一个或多个DBD分组
                        (也叫DDP),DBD包含有关LSDB中LSA条目的摘要信息。
    loading ——信息加载状态,收到DBD后,将收到的信息同LSDB中的信息进行比较。
    Full————完全邻接状态,邻接间的链路状态数据库同步完成。
3.   计算路由表(每一个路由器基于自己的数据库,单独计算出来)
        同一个区域中的所有路由器的数据库,是完全同步的。

DV 和 LS对比:

1.每一个路由器对整个网络都有一个独立的认识,不依靠其他路由器
2.LS协议在路由器之间传递的不是路由条目,而是计算路由条目
        时所用到的基本的链路状态信息。所以呢,理论上来说,
        OSPF网络是没有任何规模限制的;
3.LS协议支持网络的层次化设计,DV协议是不支持的;

OSPF 报文:

Hello: 建立 维护 拆除OSPF的邻居关系的。
BDB:数据库描述报文,用于快速,高效实现数据库
LSU:链路状态更新报文,用于传输数据库的具体条目
LSR:链路状态请求报文,用于主动请求数据库条目
LSack:链路状态确认报文,确保LSU/LSR的可靠传输。

DR与BDR的选举原则:

1.  当网络类型为 broadcast / nbma  的时候,才会选;
2.  首先比较优先级,如果优先级都为0,则都没有自资格参与选举(DRother)
3.  其次,如果优先级相同,比较 RID ;越大越好 
4.  DR 和 BDR 仅仅是一个“接口”的概念;每一个网段一定有一个DRBDR可有可无

OSPF 的路由的类型:

内部路由 - 凡是通过 network 方式宣告/引入的
                     区域内部的路由;
                     区域之间的路由
外部路由 - 凡是通过 import-route 方式宣告/引入的;

OSPF 路由器的角色:

ABR :同时连接多个区域,并且其中一个区域是区域0的路由器,
            才可以称之为 ABR ; 
ASBR : autonomous system border  router 
                         自治      系统   边界   路由器 
            具有”引入外部路由“能力的路由器,就叫做 ASBR 。     
                即 凡是能够 输入 "import-route {protocol}" 的
             路由器,都可以称之为 ASBR

链路状态通告类型:

1类:路由器LSA——由区域内的路由器发出的
2类:网络LSA——   由区域内的DR发出的
3类:网络汇总LSA——由ABR发出的,其他区域的汇总链路通告
4类:ASBR汇总LSA— 由ABR发出的,用于通告ASBR信息(必须与5类结合才能计算路由)
5类:AS外部LSA  ——ASBR发出的,用于通告外呼路由
7类:NSSA外部LSA——NSSA区域内的ASBR发出的。通告本区域连接的外部路由

Ospf特殊区域:

定义:如果一个区域不接受外部路由,这个区域就叫做特殊区域。
作用:可以保护该区域不受到外部链接的不稳定的影响。
a)  Stub区域:——末梢区域
        该区域不支持4/5类LSA,默认支持1 2 3类网络
        stub区域的 ABR 会自动的向 stub 区域产生一个3类LSA表示的默认路由
        配置命令:ospf 1——area 1——stub no-summary
b)  Totally Stub : 完全末节区域
        为了保护该区域不受到外部链路以及内部其他区域
         的不稳定的影响,我们将该区域配置为完全末节区域。
        配置命令:ospf 1——area 1——stub no-summary
c)  NSSA : not so stub area 。
        该区域是可以引入外部路由的,但是只能是以7类LSA的形式存在。
        该区域中不支持4、5类 LSA ;支持1、2、3、7类LSA。
        所以,这个区域能够不受”外部链路“不稳定造成的影响。
注:
(1)1.7类LSA只能存在于 NSSA 区域,不会传输到其他区域
(2)NSSA 区域的 ABR ,会自动的将7类LSA,转换成5类LSA
                并且只能做单向转换,即不能将5类转换成7类;
            配置:ospf 1——area 12——nssa
d)  totally NSSA:
        仅仅在 NSSA 区域的 ABR 上,配置以下命令:
        ospf 1——area 1——nssa no-summary