OSPF详解

目录

OSPF协议分类

总结OSPF协议基本概念:

OSPF的邻接关系

协议原理:

OSPF邻居状态机(七种状态):

OSPF邻居间需要交互的报文(五种):

进程号&router-id

OSPF建立邻居过程:

▲首先建立邻居关系:(down、init、2-way)

​​​​▲其次开始建立邻接关系(exstart、exchange、loading、full)

邻居接口大致分两类:点到点、MA(详细细分往下翻)

      ▲  如果是点到点网络

显示确认&隐示确认:

报文的载荷关键字段:option、Flags、序列号位 

router-id选举过程:

      ▲  如果是MA网络

为什么要判断一下是否发展邻居关系?

DR/BDR的选举:

Hello报文建立和维护邻居关系:(wait计时器)

OSPF邻居建立的条件:

OSPF的网络接口类型:

OSPF的网络类型:

链路网络类型分情况概述:

接口下修改网络类型:

网络类型的作用:

OSPF的区域结构设计:

OSPF的区域:

 OSPF的路由器角色:

OSPF的区域宣告:

OSPF的末节区域:

1.stub:末节区域

2.Totally Stub:完全末节区域

3.NSSA:Not-So-totally-area ,不完全末节区域/非纯末节区域

4.Totally NSSA:完全不完全末节区域/完全非纯末节区域

OSPF孤立区域的解决方法:

1.虚链路 virtual-link

2.隧道 tunnel

3.重分发

OSPF的汇总:

LSA(扩展)  Link State Advertise

1)Router Link States:路由器LSA,一类LSA

2)Net Link States:网络LSA,二类LSA,只出现在广播网络(MA)中出现。

3)Summary Net Link States:汇总LSA,三类LSA

4)四类LSA

5)五类LSA:

7)七类LSA:NSSA专用的LSA,与五类LSA相同。

FA:

OSPF的下放默认

OSPF的被动接口

OSPF的Metric:

计算公式:

常见的接口带宽及默认开销值

修改Cost值计算公式中的分子:

OSPF的认证:

链路认证:

区域认证:

虚链路认证:

用于查看运行OSPF协议的接口:show ip ospf interface  brief


OSPF协议分类

按照适用范围分类:

        它是一种内部网关协议(IGP),用于在单一自治系统(AS)内部的路由选择。最大可支持路由条目为1~2w+路由,最多能支持大概=200台路由器。

按照核心算法分类:

        它是链路状态协议。通过维护每个路由器的链路状态数据库,计算最短路径,并生成路由表来决定数据在网络中的传输路径。每个路由器通过链路状态更新协议来交换链路状态信息,以了解整个网络的拓扑结构。

        距离矢量型路由协议(DV):RIP、EIGRP

        链路状态型路由协议(LS):OSPF

按照有类无类分类:

        它是一种无类协议(又称无类域间路由/CIDR协议),支持可变长度子网掩码和路由聚合。

总结OSPF协议基本概念:

        OSPF,open shortest path first,开放最短路径优先


  • 内部网关协议(IGP
  • 链路状态型路由协议(LS)(距离矢量型路由协议DV:RIP、EIGRP)
  • 无类
  • 基于IP协议,协议号89(EIGRP:协议号88)
  • OSPF报文以组播形式发送(组播地址:224.0.0.5、224.0.0.6)
  • 目前有两个版本——ospf v2(主要用于IP v4)、ospf v3(主要用于IP v6)
  • 工作在四层的动态协议,是基于tcp/ip的跃层协议。

OSPF的邻接关系

       链路状态协议:①需要建立邻居关系;②同步链路信息

协议原理:

        当一台路由器运行了ospf后,他会把他 宣告进ospf进程的直连网段信息 整合链路信息 存放链路状态数据库中(LSDB)中(每台ospf路由器都会维护自己的LSDB)。

        当路由器有了邻居之后,邻居之间就会沟通,互相同步彼此的LSDB,将彼此没有的链路信息同步过去。同步完成之后,区域内的所有路由器就会拥有同一个包含了该区域内所有链路信息/网段的LSDB。然后,各自再以自己为中心计算去往各个网段的路径的开销,将结果整合成路由条目记入路由表中。

OSPF邻居状态机(七种状态):

1.Down状态:OSPF进程刚刚开始时

2.Init状态:OSPF进程初始化状态,在此状态下,本地的OSPF路由器已经向外发送了Hello报文,开始等待接收对端的Hello报文

3.Two-way(2-way)状态:接收到了对端的Hello报文,判断是否与对端路由器继续发展邻居关系,该状态只会出现在广播网络(即E口、F口、G口链路组成的网络)中

4. Exstart状态:预开始状态,选举主从关系。决定谁先发送OSPF报文由主先发送,主从关系的选举:Router-ID大的成为主,剩余的都成为从。

5.Exchange状态:预交换状态,双方依照主从关系传递DBD报文

6.Loading状态:交换链路状态信息,此过程涉及LSR、LSU和LSAck三部分报文

7.Full状态:邻居建立成功,网络收敛完成。

OSPF邻居间需要交互的报文(五种):

1.Hello报文:用于建立和维护OSPF邻居关系,且在MA网络中用于选举BR、BDR

2.DBD/DD报文Database Description):链路状态描述报文,简要描述链路状态信息

3.LSR报文(Link State Request):链路状态请求,用于请求链路状态的详细信息

4.LSU报文(Link State Update):链路状态更新,用于响应LSR

5.LSACK报文(Link State Acknowledgment):用于对DBD和LSU的确认

在MA网络内,所有DR、BDR报文的目的地址都是224.0.0.6,DR整合完LSA后,再以224.0.0.5位目的地址发送给网段内其他路由器(DRother),DR、BDR可监听224.0.0.5和6,DRother只能监听224.0.0.5;如果是点到点网络,就不存在224.0.0.6地址,邻居间发送报文都以224.0.0.5为目的地址。 

进程号&router-id

Router(config)#  router ospf Process-ID(进程号)

# 进程号范围1-65535,注:=进程号本地可以存在多个,也就是说OSPF支持多进程,不同的进程间互相隔离,各自有各自的邻居和信息库。在OSPF中,进程被称为AS(Autonomous System)。

Router(config-router)#  router-id x.x.x.x

# Router-ID用于唯一标识一个OSPF邻居,每段取值和IP地址格式一样0~255。强烈推荐手工指定Router-ID的配置,方便观察邻居关系和排错等;

OSPF建立邻居过程:

邻居有两种关系:neighbor邻居关系、adjacency邻接关系;

当到达2-way状态时,路由器之间呈neighbor邻居关系,需要交互完所有报文;当到达full状态时,adjacency邻接关系建立,LSDB同步完毕。

假设:R1:router-id 1.1.1.1; R2:router-id 2.2.2.2,R1、R2接口都宣告进了OSPF:

▲首先建立邻居关系:(down、init、2-way)

R1与R2要建立关系需要互相沟通同步彼此的LSDB,于是互相发送hello报文,发送的目的地址是组播地址(假设224.0.0.5),由于范围内所有路由器都会监听组播地址,所以这条消息所有OSPF路由器都能收到:

       发送hello报文前:R1和R2的邻居关系就是down状态,这时候如果查看路由表的话,会发现里面都是空的;

      如果R1、R2发送报文时,R1先收到,那他会先检查这个hello报文中是否有是自己的router-id的active neighbor字段,如果字段取值不是自己,那就证明R2发送报文前并未收到R1发送的hello报文,也就是说,在这个阶段R1和R2都发出去了报文,但并没有完成交互工作,这时R1就会把自己和R2的邻居关系定为init状态

      当R1再次收到R2的hello报文,而这时里面包含的active neighbor字段里就是R1自己的router-id,这证明R1之前发送的报文,R2收到了,这时R1的OSPF邻接表中他和R2的关系就到了2-way状态;同理,R2收到R1带有R2自己router-id的hello报文时,他的路由邻接表中的状态也达到了2-way状态


​​​​▲其次开始建立邻接关系(exstart、exchange、loading、full)

             ——(根据邻居之间直连接口的OSPF网络类型决定)
邻居接口大致分两类:点到点MA(详细细分往下翻)

邻居接口是点到点的网络类型:指设备之间的直接连接,路由器使用广域网协议封装的接口,例如HDLC接口、PPP接口。

        

邻居接口是MA的网络类型:指设备通过共享的媒体(如以太网电缆、无线信道等)进行数据传输和通信的方式。分两类:

        一类是BMA(广播多路访问):比如:以太网

        一类是NBMA(非广播多路访问):比如已经淘汰的帧中继网络

      ▲  如果是点到点网络

OSPF的邻居关系会一直照常往下建立,直到full状态:

       2way后往下便是Exstart状态,这是信息初交换的始化状态。在这状态下邻居之间开始发送DD(Database Description)报文,用于协商确定邻居之间的主从关系,方便后续邻居间发送完DD报文时进行隐示确认

显示确认&隐示确认:

显示确认:

        接收方会直接向发送方发送明确的确认消息,以表示数据的成功接收。(单独发确认报文)

        比如EIGRP(/TCP)使用ACK报文回复

隐示确认:

        接收方通过基于序列号的确认等机制暗示发送方已经成功接收到数据。(不单独发确认报文)

        比如:假设在OSPF中R1传给R2 DD报文,这其中会携带一个R1自己的序列号,R2收到之后会回复一份自己的DD报文,再把报文里的序列号改成R1的。R1在收到报文后发现序列号是自己的,也就证明R2已经收到自己发给他的报文了,既满足了信息传递又满足了消息确认。


显式确认通常提供更确切的信息,故而更可靠,但它需要额外的确认消息,所以带来了更多的通信开销。

隐示确认不单独发确认报文,故而提高了工作效率、减少了带宽浪费,但是在可靠性方面有所牺牲,因为发送方无法确定接收方是否真正接收到了数据。

        在exstart状态下,路由器开始互相发送空的DD报文:

                刚开始,它们都以为自己是master,于是R1发送第一个DD报文时——序列号是10(假设),router-id是1.1.1.1,报文中I位 置1、M位 置1、MS置1(flag位取值十六进制就是0x07,二进制是111)。当R2收到报文后他发现自己 router-id 2.2.2.2比R1大,那选举结果肯定自己是master了,于是R2发送第一个DD报文时——router-id是2.2.2.2,报文中I位也置1、M位置1、MS置1。R1收到后也明白自己没他大,由此主从关系就选举出来了,之后的MS置0,不再置1。而I位只有R1和R2第一次报文才会被置1,从第二次开始都置0。

报文的载荷关键字段:option、Flags、序列号位 

  选项(Options): 选项字段用于传递一些控制信息,如OSPF协议版本、认证选项等。那么再次主从关系就那么再次组成关系就选举出来了

  标志(Flags): 标志字段用于传递一些状态信息,其中有3bit位决定了隐示确认和后续的DD报文的发送:

        I位(Init)初始化位:I位是第1位(从左到右计数)。1bit

                当I位被设置为1时,表示报文发送方希望执行一个完整的数据库同步。

                设置I位意味着发送方要求接收方发送完整的LSDB摘要信息,以确保双方的数据库同步。

        M位(More)更多位:More位是第2位。1bit

                当More位被设置为1时,表示发送方的数据库中还有更多的LSA需要传递。

                设置More位告诉接收方,在后续的DD报文中还会包含更多的LSA摘要信息,接收方应准备接收。

        MS位Master/Slave)主从位:MS位是第3位。1bit

                MS位用于指示OSPF邻居之间的状态,区分"主"和"从"两种模式。

                当MS位被设置为1时,表示发送方是"主"(Master),负责发起数据库同步。当MS位为0时,表示发送方是"从"(Slave),接收同步请求。

  序列号位(Sequence Number):用于标识DD报文的序列号。每个DD报文都有一个唯一的序列号,它用于区分不同的DD报文,帮助在数据库同步时进行比较。

router-id选举过程:

a.看有无经过手工指定,如果有手工指定的Router-id,则优先选择手工指定的Router-ID

b.如果没有手工指定,则看路由器是否配备环回口IP地址,如果有,则将环回口IP地址作为Router-ID。如果一台路由器具备多个环回口地址,则选举环回口地址最大的作为OSPF的Router-ID

c.如果该路由器也未能配备环回口,则优选双up物理接口中的最大的IP地址作为OSPF的Router-ID

     选完主从后双方进入Exchange状态:依据Exstart状态选举的主从关系,slavemaster回复DD报文,并且使用master的序列号暗示“已收到”。此时,报文里便携带着slave路由器上LSDB中的链路信息清单,即LSA(链路状态通告)的摘要信息(注意:是目录清单!不是真正的LSA!),由邻居间互相传递。这个Exchange环节的好处就像,俩学生互相借阅图书:两者交换各自有的书籍目录清单,你缺啥我补给你啥,我缺啥你补给我啥,而不是说我俩一起把所有书搬过来互相交换。意思是邻居间先查看互相的LSA,根据清单,没有的再去向邻居请求即可,避免了泛红LSA造成的资源浪费。

        那既然slave回复master带有LSA目录清单的DD报文了,当然master也会向slave发送自己DD报文来传达它的LSA清单,此时DD报文中的序列号就要在原来的基础上加1。slave收到以后还是用相同的序列号回复DD报文。如此反复,只要任何一侧还有LSA清单没有传递完毕,master就一定会产生DD报文,并由slave来回应。

        由此可见,DD报文的序列号是由master负责发送的,而slave只是做隐式确认,如果master没有收到slave的回应,那么间隔5s后,master会重传DD报文,直到邻居之间发送的DD报文中的MS置0,也就是说后续没有DD报文需要再发送了,这个exchange状态才会结束。

      交互了LSA的报头清单、了解完自己所欠缺的LSA后,到达Loading状态:本地路由器会向它的邻居路由器发送LSR报文请求本地LSDB没有的LSA;邻居路由器收到请求后会回复LSU报文(链路更新报文),这其中就包含了它想要的LSA;等路由器收到LSU后,会回复一个LSACK以表示确认收到。(LSACK:显示确认,为了避免带宽浪费,一个LSACK可以同时作多个LSU发送)

      当邻居之间完成同步LSA后,邻居关系就完成连接了,到达Full状态,与此同时,OSPF路由表形成。

      ▲  如果是MA网络

                它会停一会——在邻居之间选举DR、BDR。

      MA网络不像是点到点网络,两设备直接互联,直接建立连接关系、同步LSDB就可以了。比方说以太网,一个广播域内有可能有多个路由器在逻辑上直连,如果有n台,就需要建立 n*(n-1)/2 次。三台还行,建立三次连接够了,四台也凑合,六次连接,但随着路由器的增多,建立关系就越复杂,加上邻居见还需要同步LSDB,一下子泛洪那么多LSA,网络负载可想而知。
为什么要判断一下是否发展邻居关系?

        防止在广播网络出现重复传递同一份LSA的情况。在此状态下发生的事件为DR/BDR的选举。

          邻居关系们互相发送hello报文到达2-way状态后,把报文构建一个自己接口的数据结构,用它计算出谁是DR、BDR。这个数据结构一共有三个集合:1.DR集合2.BDR集合3.DRother集合, 如果DR失效,会由BDR接替成为新的DR,新的BDR由选举再次产生。 在MA网络中,所有的DR、BDR之间会建立full状态到达邻接关系,而DRothers只会截止到2-way状态,只保持邻居关系。
DR/BDR的选举:

        DR(Designated router):指定路由器

        BDR(backup designated router):备份指定路由器

        DRothers:不是DR、BDR的路由器

选举规则:

1.比较优先级,最高的成为DR

        优先级默认值为1,是可以修改的

                int xY/Y

                ip ospf priority [0-255]

        如果优先级设置为0,代表不参与DR/BDR的选举。

2.比较Router-ID

        Router-ID最高的成为DR,次高的成为BDR。

        值得注意的是:

                DR和BDR选举完成后,为了避免抢占而造成的网络震荡,并不会由于修改优先级或有更优的Router-ID设备加入而重新选举DR/BDR,确需重新选举DR/BDR,clear ip ospf process yes;,次高的成为BDR。

需要值得注意的是:

        DR/BDR的选举一旦完成,决定好了DR和BDR的归属,再去调整优先级想让新的设备成为DR,则不会生效,因为OSPF是一个较为稳定的协议,如果想要让设备之间进行DR/BDR的重新选举,则需要敲入命令:

        Router#clear ip ospf process

        Reset ALL OSPF processes? [no]:yes

                                                         # 一定要敲yes或者简写为y,默认行为为no。

Hello报文建立和维护邻居关系:(wait计时器)

OSPF通过Hello报文建立和维护邻居关系

        默认情况下,在>=1.544M的链路上,Hello包间隔10s发送一次,Dead时间为40s;

        在<1.544M的链路上,30s发送一次,Dead时间为120s。

OSPF的Hello时间和Dead时间是可以进行修改的,语法:

        Router(config)#interface eX/y

        Router(config-if)#ip ospf hello-interval x

                        # x为要修改的Hello时间间隔,范围1-65535,单位为s。

        Router(config-if)#ip ospf dead-interval y

                         # y为要修改的Dead时间间隔,范围1-65535,单位为s。

        如果确需要修改Hello时间和Dead时间,还是建议保持原有的4倍关系会较为稳妥。同时需要注意的是,链路的两端如果有一端修改了Hello时间或Dead时间,另一端不做修改,原先建立好的邻居关系会Down掉。

        40s内用来倾听谁是DR、BDR,如果40s过后仍没有结果,就重新选举DR、BDR。如果是确认是两台设备直连,可以修改成点到点模式,省去40s等待时间。

OSPF邻居建立的条件:

1.Hello/Dead Time 两端保持一致

2.建立邻居的两个接口必须在同一区域内。

3.建立邻居的接口地址的掩码要相同(路由器原则:最长匹配原则)(广播要相同,点到点可以不用)

4.Router-ID值必须唯一

5.接口两端的优先级不能都是0

6.认证通过


以上满足就能保证邻居能到达2-way状态,要想顺利传达路由,还需要:

7.直连接口的网络类型要匹配(出现邻居建立顺利但是学习不到路由很有可能是因为这个)

8.邻居接口的MTU值一致(思科设备会卡在exstart状态,华为由于默认情况下不检查接口MTU大小,所以会卡在loading状态)

OSPF的网络接口类型:

OSPF的网络类型:

1)Broadcast:广播,以太网E,FE,GE

        支持组播和广播,通过组播发现邻居,需要DR Hello 10s

2)Point-to-Point:点到点,P2P,串行链路S

        支持组播和广播,通过组播发现邻居,不需要DR Hello 10s

3)NBMA:None Brocast ,非广播多路访问帧中继👉已淘汰

        不支持广播和组播,需要DR,Hello 30s

4)Point-to-Multi-Point:P2MP,点到多点帧中继👉已淘汰

        支持组播和广播,通过组播发现邻居, 不需要DR Hello 30s


链路网络类型分情况概述:

Broadcast —— P2P,邻居可以建立,但是不传路由。//网络类型不同

Broadcast —— NBMA,邻居不能建立,也不能传路由。//hello时间不同

Broadcast —— P2MP,邻居不能建立,也不能传路由。

P2P ——NBMA,邻居不能建立,也不能传路由。

P2P —— P2MP,邻居不能建立,也不能传路由。

NBMA —— P2MP,邻居不能建立,也不能传路由。


接口下修改网络类型:

        int e0/0

        ip ospf network network-type


网络类型的作用:

1.如果路由器之间是直连,没有经过交换机(即一个网络内只有两台OSPF路由器)

        此时可以将两台OSPF路由器间的接口的网络类型更改为P2P,可以跳过DR/BDR的选举

从而加快邻居的建立速度。

2.将环回口的网络类型更改为P2P,可以还原环回口的掩码,而不是使用默认的255.255.255.255

OSPF的区域结构设计:

OSPF的区域:

将OSPF的网络划分为一个一个的区域,每个区域内的设备只需要掌握区域内的详细链路状态信息即可。这样:泛红LSA时只限定在一个区域内泛洪,同时也压缩了每台路由器的LSDB,减小了开销。

区域分为骨干区域和非骨干区域

        骨干区域:area 0

        非骨干区域:非area 0(特殊的:stub末节区域、NSSA区域)

区域划分理念:

        非骨干区域都必须要连接在骨干区域之上,不能出现非骨干区域和非骨干区域连接的情况。

 OSPF的路由器角色:

1、DR/BDR、DRothers

2、ABR:区域边界路由器,一台OSPF路由器连接多个区域时,称为ABR。

   ASBR:自治系统边界路由器,一台路由器既运行了OSPF协议,又运行了其它的路由协议。

3、内部路由器:所有接口都只连接到一个OSPF区域

4、骨干路由器:至少有一个接口连接的是OSPF的骨干区域


练习:

Q1:ABR一定是骨干路由器吗?

A1:ABR一定是骨干路由器

Q2:ASBR可能是ABR吗?(一个路由器是ABR也可能是ASBR)

A2:ASBR有可能是ABR

Q3:内部路由器有没有可能成为ASBR

A3:内部路由器不可能成为ASBR

OSPF!同一个区域!

Q4:内部路由器有没有可能成为骨干路由器?

A4:有可能,这个设备完全属于区域0

OSPF的区域宣告:

1.不精确宣告(网段宣告)

        network 192.16 8.1.0 0.0.0.255 area 0

2.精确宣告(接口所在的网段宣告):推荐

        network 192.168.1.1 0.0.0.0 area 0

3.接口宣告:推推推荐

        int eX/Y

        ip ospf X area X # 如果本地还未启用OSPF进程,则自动启用。

OSPF的末节区域:

1.stub:末节区域

        配置:

                router ospf 1

                area 2 stub

        如果区域内只有一台设备配置,则邻居会卡在Down状态,因为末节区域标志不相同。应当区域内所有设备配置末节区域的命令。

        当一个区域被设置为末节区域后,域外路由会消失,取而代之的是一条三类的LSA缺省路由。

        连接到末节区域的ABR设备上会将四类、五类LSA过滤,同时生成一条默认/缺省路由,下发给末节区域。

部署stub区域需要满足的条件:

        1.末节区域不允许存在ASBR,即不允许有五类LSA的出现、不允许任何在stub区域的路由器做重分发。

        2.不能是area0

        3.不允许有虚链路穿过,即stub区域不能连接在非骨干区域上,它必须和骨干区域area0相接

2.Totally Stub:完全末节区域

ABR设备上除了会将将四类、五类LSA过滤外,还会将三类LSA过滤掉。用一条三类LSA的缺省路由取代了其余所有三、四、五类LSA

(要配置Totally Stub只要ABR多加个参数 no-summary,其余路由器保持stub配置就行)

        配置:

                router ospf 1

                area 2 stub no-summary # 过滤三类LSA

3.NSSA:Not-So-totally-area ,不完全末节区域/非纯末节区域

        它和stub区别是:他能把外部路由引进OSPF,即允许ASBR的存在。

        NSSA会过滤四、五类LSA,但是属于NSSA区域的ASBR会将域外路由放入七类LSA中在NSSA区域传递,area0骨干区域获悉路由通过与NSSA相连的ABR,它将NSSA区域内的七类LSA转换成五类LSA发往骨干区域,骨干区域再传递给其他区域;同时,ABR七五转换之际也会向NSSA区域内下放一条七类LSA的缺省路由,供NSSA区域内部路由访问其他OSPF区域内路由;

        (故NSSA区域会有一类、二类、七类LSA,由七类LSA产生的缺省路由,ABR传递域间路由的三类LSA)

        配置:

                router ospf 1

                area 1 nssa

部署NSSA区域需要满足的条件:

        1.区域内所有路由器都要配置NSSA

        2.不能是area0

        3.不允许有虚链路穿过

        4.它必须和骨干区域area0相接

4.Totally NSSA:完全不完全末节区域/完全非纯末节区域

本区域类型会将三类、四类、五类LSA进行过滤,由ABR自动下放默认路由。

        配置:

        area 1 nssa no-summary

OSPF孤立区域的解决方法:

1.虚链路 virtual-link

        虚链路是OSPF自带的解决孤立区域的方法,创建好的虚链路属于区域0,从而可以将区域0扩展至孤立区域;这个链路上传播的报文都是单播传播;是通过一类LSA建立起来的。

        虚链路的部署:

        1.确定部署位置:

                (1)将孤立区域和骨干区域分隔开的区域x

                (2)在该区域上的两台ABR上配置

        2.配置虚链路:(在router ospf x 下)

                area X virtual-link 对端路由器Router-ID

        部署的限制条件:

                1.不能同时穿过两个area

                2.virtual-link穿越的区域不能时骨干区域和特殊区域(stub,nssa)

2.隧道 tunnel

        将骨干区域延申到孤立区域

                int tunnel 0 # 创建隧道接口

                  ip address 172.16.0.1 255.255.255.0

                  tunnel source 23.1.1.2

                  tunnel destination 23.1.1.3 # 同时配置了隧道的源和目的,隧道接口才会启用

                  ip os 1 a 0 # 将隧道接口宣告进OSPF的骨干区域

                int tunnel 0 # 创建隧道接口

                  ip address 172.16.0.2 255.255.255.0

                  tunnel source 23.1.1.3

                  tunnel destination 23.1.1.2

                  ip os 1 a 0 # 将隧道接口宣告进OSPF的骨干区域

3.重分发

        不必执着于同一进程下的OSPF,倒可以尝试跑其它的协议,或者换一个进程号。

                router os 1

                redistribute ospf 2 subnets (metric-type 1)

OSPF的汇总:

OSPF的汇总分为域间汇总和域外汇总

        只能在发生矢量行为的边界路由器做。

域间汇总:

        将本区域内的路由进行汇总后再发送给其他区域,域间路由汇总的部署在ABR上。

                router ospf 1

                Area X range 172.16.0.0 255.255.252.0

        汇总路由配置结束后,在配置了汇总的那台设备上还是可以看到明细路由的。

域外汇总:

        将重分发进OSPF进程的路由进行汇总,域外路由汇总的部署在ASBR上。

                router ospf 1

                summary-address 192.168.0.0 255.255.252.0

LSA(扩展)  Link State Advertise

OSPF的路由器之间传递的信息都是链路状态信息

每台路由器将收到的链路状态信息存储在链路状态数据库(LSDB)中

OSPF将LS分成了很多类

show ip ospf database

了解一个LSA:1.由谁产生,2.传递范围,3.LSA内容

1)Router Link States:路由器LSA,一类LSA

        1.在同一区域的每台OSPF路由器都会产生一条一类LSA

        2.一个区域内泛洪

        3.包含的是纯拓扑信息:描述该路由器宣告进同一个区域内所有的接口的链路状态信息和这些直连链路的掩码、前缀以及网络类型、度量值(——由这三元组可以计算路由)

        具体查看一类LSA信息:

                show ip ospf database router

Link State ID: 区分不同的链路状态信息。

Advertising Router:标明本LS是哪台OSPF路由器通告的。

Number of Links:标明该LS下的详细的链路数目信息。

        LSA的链路类型:

        Transit Network:MA传输网络,拥有OSPF邻居

                Link ID:DR的IP地址(虚节点——DR)

                Link Data:始发该LSA的路由器的接口地址

        Point-to-Point:点到点网络,串口组成的网络

                Link ID:邻居路由器的Router-ID

                Link Data:始发该LSA的路由器的接口地址

                P2P类型的链路必须由两个类型来描述,必须要有Stub Network做补充

        Stub Network:末节网络,在OSPF进程中,但是没有OSPF的邻居。

                Link ID:网络号

                Link Data:掩码

                环回口的默认情况下掩码32位,网络类型始终为Stub Network

                        即使配置的是24位掩码,显示的还是32位

        Virtual-link:虚链路

                Link ID:邻居路由器的Router-ID

                Link Data:从哪个接口与邻居路由器建立的虚链路

2)Net Link States:网络LSA,二类LSA,只出现在广播网络(MA)中出现。

        1.由MA网络中的DR产生(可以理解为在一个区域内有多少网段就有多少个二类LSA)

        2. 传递范围与一类一样,也是一个区域内传递

        3.是对一类LSA的补充说明,通过结合一二类LSA,可以得出完整的本区域内的网络拓扑

        (一类需要通过二类LSA来确定该MA网络中的路由器的数量,从而完整的绘制拓扑图)

        (描述了周围都有谁接在了这个虚节点上,以及MA网络中的网络号和掩码)

        具体查看二类LSA信息:

                show ip ospf database network

3)Summary Net Link States:汇总LSA,三类LSA

        1.由ABR(区域边界路由器)产生

        2.从内容看传递范围是整个OSPF区域(由于每个ABR在传递三类LSA时都会把ADVrouter/*通告路由器*/改成自己,那不同的ABR转发到不同的区域的三类LSA即使是相同内容,但也不被认为是同一份,所以常常从定义法角度来说也有 只能在一个区域内传递 的说法)

        3.三类LSA不传递LS链路信息,传递的是其他区域的纯路由信息。他把一个区域内的一类LSA和二类LSA打包处理整合成三类LSA传递给其他区域。(可以理解为前面一类二类产生了几个transit类型、stub类型的LSA,就会产生多少个三类LSA)

        注:这个路由信息并不是真正意义的路由条目,不能用于直接的数据转发。且无论几份三类LSA,都是由一个update报文传递的。

        具体查看三类LSA信息:

                show ip ospf databse summary

        Link State ID:网络号

        Network Mask:掩码,网络位长度

        Advertising Router:下一跳路由器

三类LSA传递的路由代码点都是O IA,即域间路由。

4)四类LSA

        1.由和ASBR在同一区域内的ABR产生(该ABR可以通过一类LSA获悉谁是ASBR,且它同时连接多个区域,所以有能力向其他区域通告四类LSA,弥补了ASBR不与其他区域相连的缺点)

        2.除了ASBR自己所在的区域外的所有其他区域(由于每传递一个区域ADVrouter都会改变一次,那就证明这四类LSA不是同一份,所以常常从定义法角度来说也有 只能在一个区域内传递 的说法)

        3.用于通告ASBR的位置。(告诉大家谁是ASBR、自己作为ABR到达ASBR的最优路径的度量值是多少,借此区域内其他路由器就可以根据这些活动数据计算出来自己去往OSPF外部路由的路径从而选路了;在度量值相等的情况下进行负载分担;)

五类LSA中的Adv Router在跨区域传递的时候保持不变的,因此需要四类LSA补充说明位置和开销,加结合五类自己的携带的掩码前缀,就可以计算路由了。

5)五类LSA:

        1.由ASBR产生

        2.整个ospf区域(除了nssa和stub区域)

        3.用于传递重分发进OSPF的路由 ,它和三类LSA一样,里面包含的是纯路由信息,且他收到所有邻居传递的五类LSA都是同一份,因为没有任何路由器会修改它的属性,所以五类LSA在传递途中度量值、下一跳地址之类的是无法获取的。

        rip: redistribute rip subnets;

        eigrp:redistribute eigrp 进程号 subnets;

        注:如果在重分发的时候不添加关键字"subnets",则只会将主类网络重分发进OSPF进程中,不会重分发子网。

        重分发进入OSPF的路由默认类型都是OE2,Metric固定为20。

        OE1:

                redistribute rip subnets metric-type 1

        如果重分发进入OSPF的路由类型指定为OE1,则Metric初始值为20。

        五类的防环:FA不为零就取决于三类LSA,FA为零就取决于四类LSA

7)七类LSA:NSSA专用的LSA,与五类LSA相同。

        1.由NSSA区域内的ASBR产生

        2.NSSA区域

        3.包含的是路由信息,用于传递重分发进OSPF的路由

        查看七类LSA信息:

        show ip ospf database nssa-external

FA:

        在ASBR上被重分发进ospf域的外部网段的下一跳地址

        类似于四类LSA,在路由器发包去往外部网络时用于帮五类LSA选路的、能在最后一跳MA网络上进行路径选择:它以三类LSA的形式存在于OSPF区域中,五类LSA把包扔给FA跟着三类LSA走。

       FA度量值计算方法:(FA位为0即用四类LSA做转发,FA位不为零即用FA转发)

        当ASBR将外部路由引入OSPF区域时,五类LSA会产生两种类型的ospf路由,默认type2。

        例:华为默认外部度量值为1

                type1:度量值=内部累加的度量值+外部度量值

                                        =FA对应的三类LSA的度量值/四类LSA的度量值+1

                type2:度量值=外部度量值=1,且不会累加内部度量值

        FA不为零的条件/用FA转发的条件:

           1.FA所在网络类型不能是P2P和P2MP

           2.FA所在网段必须宣告进OSPF进程

           3.宣告进OSPF的接口不能被

OSPF的下放默认

router ospf 1

        1.本地有默认路由 

                default-information originate # 前提:这台设备必须有默认路由,才可以下发默认

        2.本地没有默认路由

                default-information originate always # 强制下发默认,本地无须拥有默认路由

OSPF的被动接口

 如果一个接口被置为被动接口后,则不会从该被动接口接收或发送Hello报文(不收不发

   配置:

        router ospf 1

          passive-interface e x/y 将特定接口设置成被动接口

          passive-interface default # 将所有接口设置成被动接口

OSPF的Metric:

计算公式:

接口Cost(开销)=100M(兆)/ 当前链路带宽

        Cost值没有小数,最小为1。如果除不尽,则保留整数部分,向下取整

        例:0.125→1;1.25→1

Cost=所有路由入接口的Cost值的累加


常见的接口带宽及默认开销值

带宽 Bandwidth

1.544M

10M

100M

1000M

接口

S口(串行口)

E口(标准口)

F口(百兆口)

G口(千兆口)

开销 cost

64

10

1

1


修改Cost值计算公式中的分子:

        router ospf 1

        auto-cost reference-bandwidth x

                                                        # x的单位是Mbits

        (如果确需修改,建议全网修改一致)

OSPF的认证:

OSPF既支持明文认证,又支持密文认证

分为链路认证和区域认证

链路认证:

        1.明文认证:

                int e0/1

                  ip ospf authentication # 启用链路明文认证

                  ip ospf authentication-key cisco # 定义明文密钥

        2.密文认证:

                int e0/0

                  ip ospf authentication message-digest # 启用链路密文认证

                  ip ospf message-digest-key 1 md5 cisco # 定义密文密钥

区域认证:

在指定区域下开启认证,该区域下的所有设备都需要开启认证。

        1.明文认证:

                router ospf 1

                  area 0 authentication # 启用明文认证

                int e0/0

                  ip ospf authentication-key cisco # 配置明文密钥

        2.密文认证:

                router ospf 1

                  area 0 authentication message-digest # 启用密文认证

                int e0/1

                  ip ospf message-digest-key 1 md5 cisco # 配置密文密钥

虚链路认证:

如果在区域0中开启了区域认证,则虚链路会失效。

如果想要虚链路继续发挥作用,则需要在虚链路上做认证

        1.明文认证

                router ospf 1

                  area 1 virtual-link 4.4.4.4 authentication # 开启虚链路认证

                  area 1 virtaul-link 4.4.4.4 authentication-key cisco # 配置明文密钥

        2.密文认证

                router ospf 1

                  area 1 virtual-link 4.4.4.4 authentication # 开启虚链路认证

                  area 1 virtual-link 4.4.4.4 message-digest-key 1 md5 cisco# 配置密文密钥

用于查看运行OSPF协议的接口:show ip ospf interface  brief

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
OSPF(Open Shortest Path First)协议使用LSA(Link State Advertisement)来传递路由信息和拓扑信息。了解LSA的内容和功能对于理解OSPF协议的路由形成非常重要。一条LSA包含三个要素:ADV Router(产生者路由器)、link-ID(链路标识符)和LSA类型。\[1\] 在OSPF中,每个路由器接口被宣告进入OSPF进程时,都会产生一条一类LSA。除了ABR(Area Border Router)连接多个区域,它会向多个区域传递一类LSA。\[2\] LSA的更新顺序是根据以下几个因素来确定的: 1. Seq(序列号)越大表示越新。 2. 如果Seq相同,则比较Checksum(校验和),Checksum越大表示越新。 3. 如果Checksum相同,则判断LSA age(年龄),age为3600秒表示最新(用于删除此LSA)。 4. 如果LSA age都不为3600秒,则判断LSA age的差值。差值大于900秒,较小的LSA为最新。差值小于等于900秒,LSA的新旧相同,不需要交换。\[3\] 综上所述,LSA在OSPF协议中扮演着重要的角色,通过LSA的传递,路由器可以了解到网络的拓扑信息,并根据这些信息进行路由计算和路径选择。 #### 引用[.reference_title] - *1* [OSPF中常见的六种LSA详解](https://blog.csdn.net/qq_50929489/article/details/126121937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [OSPF LSA详解](https://blog.csdn.net/weixin_56601690/article/details/117084378)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [OSPF-LSA详解](https://blog.csdn.net/weixin_52644459/article/details/127102791)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值