多区域OSPF协议内容简述

OSPF中宣告网段是针对本地区域内部的网络转发,而宣告地址则是跨区域的路由信息转发。
1.OSPF的报文类型:Hello——DD——LSR——LSU——LSAck 报文——LSDB同步,邻接关系。

OSPF Header  //报头

        Version: 2
        Message Type: Hello Packet (1)
        Packet Length: 48                       //报文长度(字节)
        Source OSPF Router: 11.1.1.1 (11.1.1.1)     //始发路由器
        Area ID: 0.0.0.0 (0.0.0.0) (Backbone)       //始发路由器所在区域的ID
        Checksum: 0xe191 [correct]              //对整个报文的校验和
        Auth Type: Null (0)                 //验证类型,0:不验证,1:简单口令验证,2:MD5密文验证
        Auth Data (none): 0000000000000000
    
OSPF Hello Packet                   //Hello报文
        Network Mask: 255.255.255.0
        Hello Interval [sec]: 10              //Hello间隔(s)
        Options: 0x02, (E) External Routing
        Router Priority: 1              //路由器优先级用于DR和BDR的选举,范围1-255。
        Router Dead Interval [sec]: 40         //路由器dead间隔(间隔内未收到邻居发送的hello报文则认为邻居失败)
        Designated Router: 1.1.1.2 (1.1.1.2)    //DR(指定路由器)
        Backup Designated Router: one.one.one.one (1.1.1.1)  //BDR(备份指定路由器)
        Active Neighbor: 10.1.1.1 (10.1.1.1)    //活跃邻居
OSPF DB Description                    //DD报文:数据库描述报文
    Interface MTU: 0              //报文不分段下,接口所能发送的最大IP报文(数据包)
    Options: 0x02, (E) External Routing
    DB Description: 0x07, (I) Init, (M) More, (MS) Master   //协商主从路由器。
    DD Sequence: 1669
LSA-type 1 (Router-LSA), len 36               //链路信息通告头部报文,可以唯一的标识一个LSA。
    .000 0000 0000 0000 = LS Age (seconds): 0  //老化时间:LSA产生后所经历的时间。
    0... .... .... .... = Do Not Age Flag: 0
    Options: 0x02, (E) External Routing
LS Type: Router-LSA (1)                  //LSA的类型,2:表示network LSA。
    Link State ID: 192.168.10.1 (192.168.10.1)    //链路状态ID标识LSA
    Advertising Router: 192.168.10.1 (192.168.10.1)  //始发路由器的ID,通告者
    Sequence Number: 0x80000002      // OSPF每隔30min刷新一次LSDB,每跟新一次序列号加一
    Checksum: 0x3db7               //校验和:数值越大表示LSA越新
    Length: 36                     //LSA头部和LSA数据的总长度
Link State Reques t    //链路信息请求报文:在LSDB同步的过程中用来请求LSDB中LSA条目的详细信息,内容为所需要的LSA的详细信息。
    LS Type: Router-LSA (1)           //链路状态类型
    Link State ID: 192.168.10.1 (192.168.10.1)
    Advertising Router: 192.168.10.1 (192.168.10.1)
LS Update Packet                //链路状态更新报文:用于回复LSR或通告新的LSA更新,ospf链路状态更新。
    Number of LSAs: 1
    LSA-type 1 (Router-LSA), len 36
        .000 0000 0000 0001 = LS Age (seconds): 1
        0... .... .... .... = Do Not Age Flag: 0
        Options: 0x02, (E) External Routing
        LS Type: Router-LSA (1)
        Link State ID: 192.168.10.1 (192.168.10.1)
        Advertising Router: 192.168.10.1 (192.168.10.1)
        Sequence Number: 0x80000007
        Checksum: 0x33bc
        Length: 36
        Flags: 0x00
        Number of Links: 1
        Type: Stub     ID: 192.168.10.0    Data: 255.255.255.0   Metric: 1
// LSAck链路状态确认报文:可对多个LSA报文进行确认,确认收到LSU,对LSA报文头部进行确认
LSA-type 1 (Router-LSA), len 36
LSA-type 2 (Network-LSA), len 32
2.ospf七种状态机
1.关闭(down):没有检测到邻居发送的Hello报文
2.初始(Init):检测到邻居发送的第一个Hello报文,但在hello报文的邻居列表中没有发现自己的rid。
3.双向(Two-way):互相发送的hello报文中检测到邻居列表有自己的rid,建立邻居关系选举DR和BDR。
4.准启动(EXstart):选定DR和BDR,确定DD报文序列号。
5.交换(Exchange):交换DD报文。 
6.装载(Loading):收到DD报文发送LSR报文向邻居请求LSA详细信息。邻居发送LSU回复LSR报文。
7.邻接(Full):LSDB同步完成,建立了完全邻接关系。
3.ospf中的LSA类型
1类LSA(router LSA):所有OSPF路由器都会产生,用于描述路由器的链路和某一接口的链路状态信息 , 本路由器针对某个区域所产生的路由信息和拓扑信息。 在MA(路由多路访问的网络中,路由器自身的接口IPLSA没有掩码需要二类LSA补充掩码信息)。只在区域内部扩散。
1类LSA的类型:有4种
1.stubnet(末节网络)------路由信息
2.transnet(传输网络仅限于MA网络)----拓扑信息
3.point-to-point —拓扑信息
4.virtual link (虚链路)—拓扑信息
2类LSA(network LSA): 由DR产生用于在MA网络中,描述本网络路由器的数量以及本MA网络的网络掩码。在区域内部传输。
一、二类难点小结:
一类LSA,adv和link-status id都是router-id,transnet中的link-id为DR的接口IP地址,
二类LSA的ADV为DR的router-id,link-id为DR接口的IP地址。 dis ospf lsdb network self-originate): 用于显示路由器OSPF链路状态数据库 (LSDB) 中网络链接自发生成的条目。
3类LSA(summary汇总 LSA):功能: 用于在区域之间传递路由信息。(路由表信息),特点: 在区域间传递路由信息时遵从水平分割。一条三类就是一个路由
1.Link-id:传递路由的网络号
 2.ADV router:默认为所在区域ABR 的router-id(始发路由器)
 3.特性:在穿越不同区域时,由其他的ABR重新产生(ADV router 是变化的)
 4.传播范围:LSA-3在区域之间进行泛洪
5.计算
4类LSA(asbr LSA) :功能:除了ASBR所在区域外,用于通告ASBR位置,告知如何由ABR到ASBR
特点:在穿越不同区域时,由新的ABR重新产生。(与3类LSA一致). 只能在一个区域内泛洪。
5类LSA(ase LSA): 用于在整个ospf中传递外部路由(原本不属于OSPF域),由ASBR产生,如何到达外部自治系统。每泛洪到一个区域, 相应区域的ABR都会生成一条新的四类LSA来描述如何到达ASBR。
类型:
1、类型1:Type 1外部路由: 5类LSA的cost=外部开销+内部的cost,5类lsa的开销+本设备到达ASBR的开销
2、类型2:Type 2外部路由: 5类LSA的cost=外部开销的值(缺省为1)(缺省情况下使用type 2的开销计算方式)
7类LSA(NSSA LSA):外部LSA, 由次末节区域ASBR产生,只能在NSSA区域内传播。
ABR:将拓扑信息去掉留下纯粹的路由信息。
4.OSPF区域类型:
1.骨干区域:Area0 为ospf的核心域,一个OSPF域有且只能拥有一个 Area 0,所有的区域间路由必须通过Area0中转。
2.常规区域 OSPF要求所有的非骨干区域(非0常规区域)都必须与Area 0直接相连。
3.末梢区域(stub Area):
概念:通常是指与其他网络连接较少或没有连接的区域或节点,与核心区域相对。末梢区域的主要特点是网络流量相对较少,与核心区域之间的连接较少。
当一个非0常规区域只有单一的出口,或者区域内的路由器不需要根据特定的外部路由来选择离开区域的出口时,作用:该区域可以被配置为Stub区域。 为了减少核心区域的负载和拥塞,同时保持网络的高效性。不需要了解与外部自治系统ASBR的路由信息(太过复杂,末节区域路由表相对较简单)所以会阻止五类LSA进入区域。 只允许发布区域内部和区域间路由。 该区域的ABR自动下发一条使用Type-3 LSA描述的默认路由,使得区域内的路由器能够通过这条默认路由到达域外(保证自治系统外的路由可达)。 虚链路不能穿越stub区域,因为虚链路建立需要两个ABR,与末节区域不符合会改变其性质。
特点:一个区域配置stub,区域内路由器都配置成stub。
不能存在ASBR,不进行外部路由信息传递不存在五四类LSA。
4.完全末梢:只允许发布区域内路由( 只关系内部路由信息,在末节区域基础上追加no-summary,不在需要三类LSA,只存在一条默认的三类LSA)。 
 5.次末节区域(NSSA):允许引入自治系统外部路由。由ASBR发布七类LSA到本区域, 在ABR上将七类LSA转换成五类LSA (找RID最大的ABR转换)。七类LSA只在NSSA传递。完全次末节区域产生一条默认的三类LSA。
OSPF计算与路由聚合
计算:根据spf算法,最短路径优先原则。区域内路由计算(根据一类和二类LSA信息计算到各个路由器的最短路径),计算区域外路由(基于区域内根据三类LSA 信息计算) 
路由分类:区域内路由,区域间路由,一类外部路由 (可信程度较高,开销等于本路由器到相应ASBR的开销与ASBR到该路由目的地址的开销之和),二类外部路由(可信度较低,内部到ASBR的开销小于外部ASBR到自治系统之外的开销,所以 开销等于ASBR到该路由目的地址的开销)。 
路由聚合:ABR和ASBR将相同具有前缀的路由信息聚合起来,只发布一条路由到其他区域,以达到减小路由表的规模,提高路由的运算速度。 (至少由一条明细路由存在,路由器才会通告路由信息)分为区域间和外部路由聚合。
区域间:在ABR上对生成的三类LSA进行聚合,
外部路由聚合:在ASBR上对五类LSA进行聚合。作用减少相应LSA路由的数量,来减少网络规模。
计算方法:判断第几位发生变化,转换成二进制 ,将不变的位保留下来作为子网掩码的位数, 变化的位全部值0 那么这个时候的网络地址就是汇总后的地址182.168.1.0 192.168.2.0 192.168.3.0/24 ——192.168.0.0/21  24-3:三位变化的全为0
OSPF安全认证:明文和密文
认证类型
配置命令(区域内路由多要配置)
null:无认证
plain:明文密码认证
ospf authentication-mode simple password <密码>
ciphertext:密文密码认证
ospf authentication-mode cipher cipher-body <密文
md5:MD5认证
ospf authentication-mode md5 md5-keyid <密钥ID> md5-key-string <密钥>
补充知识:
1.拓扑信息;在网路中的位置接口信息(如Router ID)
2.只有连接area 0和非骨干区域 的路由器才能被称为ABR
3.三类LSA由ABR产生,将一二类汇总,只能从骨干区域传输到非骨干区域,无法回传。(即水平分割)。
4.虚链路:只能在相同区域内才能配置,应为需要知道对方的Rid,用来修复不规则的区域划分。(vlink-port)
操作:
静默接口:silent-interface (配置静默接口的作用是 阻止该接口主动发送路由信息但可以接收,可以提高网络安全性,节省带宽。)
ABR上:stub(末节),stub no-summary(完全末节),abr-summary+网段+掩码(路由聚合)。
ASBR上:nssa(次末节),nssa no-summary (完全次末节)。