<OSPF(Open Shortest Path First)>

开放最短路径优先协议

 

OSPF的基本特性:

·OSPF属于IGP,是Link-State协议,基于IP Pro 89。

·采用SPF算法(Dijkstra算法)计算最佳路径。

·快速响应网络变化。

·以较低频率(每隔30分钟)发送定期更新,被称为链路状态刷新。

·网络变化时是触发更新。

·支持等价的负载均衡。

 

OSPF维护的3张表:

1)Neighbor Table:

 确保直接邻居之间能够双向通信。

2)Topology Table:

 LSDB(Link-State DataBase),同一区域的所有路由器LSDB相同。

3)Routing Table:

 对LSDB应用SPF算法,选择到达目标地址的 路由放入路由表。

 

·OSPF采用层次设计,用Area来分隔路由器。

 区域中的路由器保存该区域中所有链路和路由器的 详细信 息,

 但只保存其他区域路由器和链路 的摘要信息 。

 

·Transit area (backbone or area 0)

 主要功能:为快速、高效地传输数据包。通常不接用户。

 

·Regular areas (nonbackbone areas)

 主要是连接用户。而且所有数据都必须经过area 0中转。

 包括:Stub / Totally Stubby / NSSA

 

采用分区域设计的好处:

1、可以在区域边界做汇总,减少了路由表的条目

2、只有一个区域内的路由器才会同步LSDB,LSA的flood在网络边界停止,减少了LSA的flood,加速会聚

3、缩小网络的不稳定性,一个区域的路由问题不会影响其它区域。

 

OSPF中路由器之间的关系分两种:

1、邻居

2、邻接

 

·OSPF路由器可与它直连的邻居建立邻居关系。

·P2P链路上,邻居可以到达FULL状态,形成邻接关系

·MA网络,所有路由器只和DR/BDR(Backup Designated Router)到达FULL状态。形成邻接

·路由器只和建立了邻接关系的邻居才可以到达FULL状态。

·路由更新只在形成FULL状态的路由器间传递。

·OSPF路由器只会与建立了邻接关系的路由器互传LSA。同步LSDB

 

 一个号码而已,用来唯一标识OSPF域中路由器。

 

 设置Route-ID的优先顺序:

 1)手工指定Route-ID x.x.x.x(可任意,但区域内不能重复)

 2)自动选择最大的Loopback IP作route-id

 3)自动选择最大的物理接口IP(接口必须是激活状态)

 

推荐手工指定的router-id

 

 

DR--指定路由器

BDR--备份的指定路由器

 

选举规则:

 1)比较优先级,越大越优(默认为1,如设为0表示不参与选举)

 2)比较Route-ID,越大越优。

 

·DRother发送LSA给DR/BDR用224.0.0.6

·DR发送LSA给DRother用224.0.0.5

·非MA网络(没有DR/BDR),路由器都用224.0.0.5

 

 

 1)不抢占,DR正常工作时,即使有新的优先级比DR高的路由器也不能抢占成为DR。

 2)DR正常时,BDR只接收所有信息,转发LSA和同步LSDB的任务由DR完成,当DR故障时,BDR自动成为DR,完成原DR的工作,并选举新的BDR。

 3)DR是个接口概念。每个网段都会选举DR。

 4) 不同网段分别选DR/BDR

 

最短路径优先算法

 

1、在一个区域内的所有路由器有同样的LSDB

2、每一个路由器在计算时都将自已做为树根

3、具有去往目标的最低cost值的路由是最好的路径

4、最好的路由被放入转发表

 

·Hello Intervals:10S/30S

·Dead Interval:4*Hello =40S  不同于其它协议的三倍于Hello时间

 

hello包发向224.0.0.5

 

下面这三种网络类型的hello时间是30S

NON_BROADCAST

POINT_TO_MULTIPOINT

POINT_TO_MULTIPOINT NON_BROADCAST

 

·OSPF Cost = 10 8 /BW (bps)

 

几种常用接口的COST值:

1、环回口的COST值是1

2、serial口的COST值是64

3、标准以太接口是10

4、快速以太接口是1

--------------------------------------------------------------------------------

 

 1)Hello:发现并建立邻接关系。

 2)DBD:包含路由的摘要信息。

 3)LSR:向另一台路由器请求特定路由的完整信息。

 4)LSU:用于LSA的泛洪和回应LSR该条路由的完整信息。在OSPF中,只有LSU需要显示确认

 5)LSAck:对LSU做确认。

 

OSPF 1 、 ROUTER ID 不能相同;

2 、 HELLO 时间必须一致;

3 、 DEAD 时间必须一致;

4 、区域 ID 必须相同;

5 、认证必须相同;

6 、 STUB 标志位必须相同;

7 、 MTU 不匹配无法形成邻接关系(一边是 EXSTART, 一边是 EXCHANGE );

8 、 OSPF 版本号不同(目前版本为 2 );

9 、当 OSPF 网络类型是 MA 时,要求掩码一定一致(两个邻居)。因为会出现 DR 和 LSA-2 ,无法描述网段。

 

OSPF邻接关系状态机:

1、down state

2、init state

3、two-way state

4、exstart state

5、exchange state

6、loading state

7、full state

 

     DBD包中有一个三位的标志字段(主从关系控制标志):I、M、master/slaver

 

I(是否第一个包) M(是否还有后续包) M/S
1 1 1
0 1 0
0 1 1

分别是0x7,0x2,0x3     具有最高route-id的路由器为主,建邻居时第一个DBD是空的。

 

 

1. 在 Down 状态下路由器发出第一个hello包。当 R2 收到一个 Hello 包,并且在这个 hello 包中看不到自已的ID,则将自已和邻居的关系转到 Init 状态。 Init 是一个 one way 状态,当 R1 和 R2 都认识对方后就会进入 Two Way 状态。

 

2. 在 Two Way 时,将选举 DB/BDR ( MA 网络)。进入 Two way 状态后(即从 Exstart 开始),表示这两个路由器已经建立了邻居关系了。但最终能不能邻接关系要看最后是不是 FULL 。

 

3. Exstart : Exstart 是 firstDBD, 确认主从关系。双方互相发送第一个DBD报文,选取主从。

 

4. Exchange : Exchange 是通过 DBD 交换 LSA 的头部信息。

 

DBD 分为 firstDBD 和 DBD 。

firstDBD 不携带 Lsa 头部信息。通过 firstDBD 确认主从关系。主的作用只是为了控制序列号的同步。 R outer- ID 高的将成为主。

DBD 只携带 LAS 的头部信息,没有携带 LAS 的具体信息。承载完整 LAS 是 LASUpdate 包。

 

5.Loading :等待 M 位为 0 时,才进入 loading 。

LSRrequest :是不携带 LAS 头部的,只通过(公告 ID , LSA L 类型, linkID )来请求具体的条目。

LSRUpdate :含有真正 LSA 完整信息的,用来回应 LSRrequest 。

 

6.FULL :完成了邻接关系的完整建立。

 

---------------------------------------------------------------------------------------

R1(config)#router ospf 110    注意:进程号是cisco的私有技术

R1(config-router)#network 1.1.1.0 0.0.0.255 area 0   (正/反掩码皆可)

R1(config-router)#network 12.1.1.0 255.255.255.0 area 0   区域号还可用点分十进制表示

 

R1#show ip protocols

R1#show ip ospf       可查看router-id,进程号,域的数量

R1#show ip ospf interface

R1#show ip ospf interface brief

R1#show ip ospf neighbor    查看邻居信息

 

R4(config-if)#ip ospf hello-interval 9

                    (dead自动*4)

 

R4(config-if)#ip ospf dead-interval 80

 

R4(config-if)#ip ospf priority 10   修改优先级

 

R1#show ip os database

 

注意:在OSPF中,环回接口的路由掩码会变为32位

 

------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

不分层次网络的缺点:

 

假如在一个大型网络中,OSPF如果没有分区域,会有以下的问题产生:

1、每一个路由器会接收到太多的LSA

2、会经常进行路由的计算

3、路由表太大,而路由器的内存是有限的。

 

1、内部路由器--在一个普通区域内的路由器

2、核心路由器--在area 0区域内的路由器

3、ABR区域边界路由器--连接两个不同区域的路由器

4、ASBR自治系统边界路由器--连接OSPF域到另一个自治系统的路由器

 

1、LSDB中每一个LSA都有一个序列号

2、序列号范围从0x80000001-0x7FFFFFFF

3、OSPF每30分钟flood一次LSA来维持LSDB同步,每flood一次,序列号加1

4、当一个路由器遇到同一个LSA的两个实例时,它必须能够确定哪一个是最新的LSA。(根据序列号来识别)

5、LSA条目的老化时间默认是一小时(0-3600S)

 

当一条LSA的序列号到达最大序列号时,始发路由器会发送一个生存时间为最大值的相同的LSA,让其它的路由器从LSDB中清除这条LSA,当其它路由器确认后,再发送一个初始序列号的LSA。

注意:只有始发路由器才可以提前使这条LSA老化

当一台路由器收到相同的LSA的多个实例时,将通过以下算法决定将哪一条放入数据库:

1、比较LSA实例的序列号,大的优先

2、序列号相同,再比校验和,大的优先

3、校验和也相同,再比老化时间,如果有一条LSA拥有大小为最大生存时间(3600S)的老化时间,则最优

4、如果LSA的老化时间之间的差别多于15分钟,则老化时间小的优先

5、如果以上条件都比不出来,则认为这些LSA相同

 

链路状态类型、链路状态ID、通告路由器用来唯一地标识一条LSA

 

序列号、校验和、老化时间标识一条LSA的具体实例

 

 

       老化时间    可选项    类型
                   链路状态 ID ( Link-ID )
                   通告路由器 (ADV  Router)
                        序列号
         校验和           长度

·类型         指明是哪种类型的LSA

·Link-ID      每一条LSA都有一个Link-ID,区分不同路由器发出的LSA

·ADV Router   指通告路由器的Router-id

 

1、每种LSA的传播范围  

2、每种LSA由谁产生,也就是说由谁通告的

3、每种LSA所包含内容

 

show ip ospf database router   //查看LSDB中的1类LSA的详细信息

 

特点:

  1、 域内路由, 仅在本区域传递,不会穿越ABR。

2、每台路由器都会产生。

3、包含本路由器的直连的邻居,以及直连接口的信息

 

Link ID:        router ID

ADV router:     router ID

 

三种信息:1、Another router

        2、stub network  

        3、transit network (Ma网络的一些信息)

 

show ip ospf database network  

 

特点:

1、仅在本区域传递

2、只有MA网络才会产生LSA2,由DR发出。

3、标识出本MA网中有哪些路由器以及本网的掩码信息。

 

Link ID:        DR的接口IP

ADV router:     DR的router ID

 

show ip ospf database summary

 

特点:

  1、 域间路由, 能泛洪到整个AS。

   2、由ABR发出,每穿越一个ABR,其ADV Router就会变成此ABR的Router-id.

3、包含本区域中的路由信息,包括网络号和掩码。

 

Link ID:        路由route(网络号)

ADV router:     ABR的router ID(经过一个ABR,就会改为这个ABR的router ID)

 

三类LAS会被一个区域的边界ABR路由器重新产生并泛洪进下一个区域,所以每穿越一个ABR,其通告路由器就会发生改变。

 

 

show ip os database asbr-summary

 

特点:

  1、把ASBR的Router-id传播到其他区域,让其他区域的路由器得知ASBR的位置。

   2、由ABR产生并发出,穿越一个ABR,其ADV Router就会变成此ABR的Router-id.

 

Link ID:        ASBR的RID

ADV router:     ABR的router ID(经过一个ABR,就会改为这个ABR的router ID)

 

在ASBR直连的区域内,不会产生4类的LSA,因为ASBR会发出一类的LSA,其中会指明自已是ASBR

 

show ip os database external

 

特点:

  1、 域外路由, 不属于某个区域。

   2、ASBR产生,泛洪到整个AS。不会改变ADV Router。

3、包含域外的路由

Link ID:        路由(网络号)

ADV router:     ASBR的router ID (unchange)

 

show ip os database nssa-external

 

特点:

  特殊的域外路由,只存在于NSSA区域中。

Link ID:        路由(网络号)

  ADV router:     ASBR的router ID (只在NSSA区域中)

 

1、域内路由

2、域间路由

3、E1的外部路由

4、E2的外部路由

 

外部路由重分布进OSPF有两种类型

 

·OE1:  重分布进OSPF的路由默认为E2,Cost=20,且传递过程中不改变COST。

·OE2:  如果改为E1类型,则在传输过程中会累加每个入接口的cost值

 

OSPF的选路原则:

1、域内路由优于域间路由

2、域间路由优于外部路由

3、OE1的路由优玩OE2的路由

 

如果一台路由器收到两条相同的域间的路由,一条是area 0区域传过来的,一条是普通区域传过来的,则优选area 0区域传过来的。

 

如果有一台路由器从两个不同的ASBR收到相同的外部路由,OSPF在选择外部路由的时候,遵循的原则是:

 

[1]O E1优于O E2

 

[2]在类型相同的情况下,Cost越小越优先

 

[3]对OE2来说,在cost相同的情况下,选择到达ASBR最优的路径

 

OE2的路由传递时带有一个参数---forward metric,  记录了OE2的路由所穿越链路的总COST值,如果一个路由器收到两条COST相同的OE2路由,将比较它们的forward metric来选出最优路由。

sh ip route 172.16.1.0

Routing entry for 172.16.1.0/24

Known via "ospf 110", distance 110, metric 20, type extern 2, forward metric

Last update from 12.1.1.1 on Serial1/0, 00:00:04 ago

Routing Descriptor Blocks:

* 12.1.1.1, from 4.4.4.4, 00:00:04 ago, via Serial1/0

    Route metric is 20, traffic share count is 1

 

用来限制路由器所能学习到的LSA的数量

 

Router(config-router)#max-lsa maximum-number [threshold-percentage] [warning-only] [ignore-time] [ignore-count] [reset-time]

 

定义一个百分比值,当收到LSA的条数超过我指定的值,进行相应的操作,用于限定路由器所能收到的LSA条数

maximum-number  所允许收到LSA的最大条数

[threshold-percentage]  maximum-number的百分比,超过这个值就会发出警告,默认75%

[warning-only]    只发送警告,不做其它动作,默认是关闭的

[ignore-time]     超过最大值后进入ignore状态的时间,默认5分钟,5分钟后恢复

[ignore-count]    超过多少次后,一直进入ignore状态

[reset-time]     一直进入ignore状态后多长时间重置所有邻居

 

ABR路由器即使知道它有多条路由可以到达同一个目的地,它只会为这个目的地始发单条网络汇总LSA通告。不论是从核心区域到非核心,还是从非核心到核心区域。而且一定是代价最低的一条LSA。

 

修改COST有两个方法:

 

1、通过一条命令直接改动接口的COST值

R1(config)#router os 110

R1(config-if)# ip ospf cost 10   //直接修改COST值1-65535

 

2、修改OSPF中COST值计算公式的分子

注意:这里改动的值是以10的六次方为单位的。

 

例如:在COST公式中修改分子,本例修改分子为10的九次方

R1(config-router)#auto-cost reference-bandwidth 1000 ( Mbps10的六次方 )

 

-------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------

 

1、减少路由条目数

2、使拓扑变化的影响局限在一个小范围内

3、减少了LSA3和LSA5的flood

 

只能在ABR上做,用来将一个区域的路由传递到另一个区域时进行汇总。域间汇总只能对打O的路由做汇总。

 

router ospf 110

  area 0 range 172.16.32.0 255.255.224.0

         

 

汇总后,在R2本地会产生一条特殊的路由,用来防环

O  172.16.32.0/19 is a summary, 00:00:06, Null0

 

这条路由称为discard-route,可以用以下命令去掉:

router ospf 110

 no discard-route internal

 

本汇总命令还可用来做路由的过滤:

router ospf 110

 area 0 range 172.16.0.0 255.255.0.0 not-advertise 过滤掉172.16.0.0的网络及其所包含的子网

 

用于将外部路由重分布进OSPF时进行汇总,只能在ASBR上做。

 

router ospf 110

 summary-address 172.16.0.0 255.255.0.0   //在ASBR上做

 

本地也会产生特殊路由来防环 O  172.16.0.0/16 is a summary, 00:00:04, Null0

用以下命令可以去掉:

router ospf 110

 no discard-route external

 

第一种做法:

需要先写一条静态的默认路由,再用命令下发。

 

ip route 0.0.0.0 0.0.0.0 Serial 0

 

router ospf 100

 default-information originate

 

O*E2 0.0.0.0/0 [110/1 ]   //以外部路由的形式下发默认路由,metric值默认为1

 

 

不需要写一条静态的默认路由,直接下发。

 

router ospf 100

 default-information originate always

 

 

还可在下发默认路由时指定metric的类型和metric值

router ospf 11

 default-information originate always metric-type 1 metric 3

 

在OSPF中共有四类特殊区域,都是用来对OSPF做优化的。可以减少一个区域中的LSA3和LSA5。

 

1、Stub

2、Totally Stub

3、NSSA

4、Totally NSSA

 

<Stub>

 

·将某区域设为Stub可阻止LSA4/5进入Stub区域,缩小了区域内路由器的LSDB,降低内存消耗。

 

·Stub区域中,ABR会发出一条LSA3默认路由给Stub区域的其他路由器。

  默认的Seed Cost=1

 

·配置Stub区域的注意点:

 1、必须将Stub区域的所有路由器都配成Stub。

 2、Stub区域不能用作虚链路的中转区域。

 3、Stub区域中不能出现ASBR。

 4、Area 0不能配成Stub。

 

·hello报文中有一个stub area flag,也叫E位,所有的stub路由器会将这一位置为0,路由器建邻居的时候,将比较这一位,要求必须匹配。

 

配置命令:

router ospf 110

 area 2 stub

  area 2 default-cost 6  (在ABR上做,改Seed Cost=6)在同时有两个ABR的情况下,可通过修改这个COST值来实现选路

 

·更加缩小区域内路由器的LSDB,在Stub基础上,又阻止LSA3。(阻止LSA3/4/5 )

·也会由ABR发出一条LSA3默认路由给Stub区域内的其他路由器。

 

配置步骤:

先配置出一个STUB区域,然后在ABR上打上以下命令:

router ospf 110

 area 2 stub no-summary   //(只需在ABR上做)

 

·NSSA区域和Stub区域一样会阻止LSA4/5。

·NSSA区域打破了Stub区域的规则,可以存在ASBR。

·ASBR会引入外部路由,是以LSA7引入的,只有NSSA区域中才会现LSA7。

·NSSA区域的边界ABR会将LSA7转成LSA5,传播到其他区域。这时,ABR也成为了ASBR,因为它也引入了LSA5。其它区域路由器看到LSA5的通告路由器是ABR。

·如果在NSSA区域中,有两个ABR的话,只有router-id大的ABR会做7转5的工作。

 

配置命令:

router ospf 110

 area 2 nssa 

 

 

注意:NSSA区域不会自动产生默认路由,要手动下发一条

 

router ospf 110

 area 2 nssa default-information-originate

 (在ABR上做,由ABR产生一条LSA7默认路由传播到NSSA其他路由器,默认Seed Cost=1,并且不会发生变化)

 

 

还可改动默认路由的metric类型,metric值

router ospf 110

 area 2 default-cost 6          //(在ABR上做,改Seed Cost=6)

  area 2 nssa default-information-originate metric 6 metric-type 1

 

 

对ABR上有外部路由进入NSSA区域时,如果要将其阻止,用以下命令,因为在ABR向nssa区域下发默认路由后,不需要它再将它连接的一些外部区域路由传进NSSA区域

router ospf 110

 area 2 nssa no-redistribution   //在ABR上做

 

 

在NSSA区域中,LSA7的forward address会出现不为零的情况,会变为ASBR上最后一个宣告进OSPF区域的接口的address。在特定的环境下,这将给网络造成问题,可用以下命令解决:

router ospf 110

 area 2 nssa translate type7 suppress       //这个命令通常用在NSSA区域的边界路由器上,作用是在7类转5类出去的时候,把这个forward address变成0.0.0.0

 

也是CISCO私有特性--

Totally NSSA ,能阻止LSA3/4/5,并且由ABR产生LSA3默认路由传播到NSSA其他路由器

 

R2(config-router)#area 2 nssa no-summary     //把三类的LSA也干掉,同时也下发一条三类的默认路由,并且这条默认路由会取代default-information-originate所下发的默认路由

 

 

如果在ABR上用下面的命令,LSDB中会出现LSA3/7默认路由,路由表中只会显示LSA3默认路由

router ospf 110

 area 2 nssa no-redistribution default-information-originate no-summary

 

 

1、在R1和R2上运行OSPF

2、在R1上写静态路由,下一跳指向R3

3、和R3相连的接口必须是以太口

4、将R1的E0口也宣告进OSPF

5、R1的E0口不能是passive-interface

6、在R1上将静态路由重分布进OSPF

 

这时,你会发现R1产生的5类LSA中forward address是R3的接口IP

 

如果在R1上写默认路由指向R3,然后在R1上使用default-information originate 下发默认路由,这条默认路由LSA的forward address也会变为R3的接口IP。

 

 

如果出现下面这种情况:一个普通区域没有跟area 0区域相连,可使用下面的三种方法来解决。

 

1)在ABR上起不同OSPF进程,进行OSPF之间的重分布。

  例如:R1的s0口在area 1中,进程号是10,s1口在area 2中,进程号是20,然后重分布

  Router ospf 10                           router ospf 20

  Redistribute ospf 20 subnets             redistribute ospf 10 subnets

 

2)tunnel 只要在区域的两个边界上配置

 R1:                               R2:

 Int tunnel 1                      int tunnel 2

   Tunnel source s1                  tunnel source s1

   Tunnel destination 12.1.1.2       tunnel destination 12.1.1.1

   Ip add 100.1.1.1 255.255.255.0    Ip add 100.1.1.2 255.255.255.0

 

 Router ospf 10                    router ospf 10

 Net 100.1.1.0 0.0.0.255 area 0    net 100.1.1.0 0.0.0.255 area 0

 

3)虚链路:

 最简单的方法,只需在区域的两台边界路由器上配就可以了

 R1:

 router ospf 110

   area 1 virtual-link 2.2.2.2

          (中转区域)    (对方Router-ID)   

 

 

·注意:虚链路只在建邻居时发送hello包,当邻居关系建立后,不再发送hello包。并且LSA是触发更新且不老化的。这个特性被称为DNA(DoNotAge)。

 

show ip ospf virtual-links

 

 

·OSPF只支持 等价的负载均衡。(默认为4条)

 

show ip protocols

 

router ospf 110

 maximum-paths 6           //(最多16条)

 

router ospf 110

 passive-interface loopback

 

接口将 不收发Hello 包

 

·分3种认证

 1、Link认证

 2、Area认证

 3、Virtual-Link认证

 

·OSPF即能做明文认证,也能做MD5认证

 

 

用于同 一链路上的路由器之间,在接口下做

 

第一步:接口下配密码

int s1/0

 ip ospf authentication-key wolf   //配明文密码

 

第二步:接口下启用认证

 ip ospf authentication        //启动明文认证

 

int s1/0

 ip ospf message-digest-key 1 md5 wolf  //配密文密码

 ip ospf authentication message-digest   //启动密文认证

 

注意:在MD5验证中,两边的KEY号必须一致

 

第一步: 接口下配密码

int s1/0

 ip ospf message-digest-key 1 md5 wolf    //配密文密码

 

第二步:进程下启用

router ospf 110

 area 0 authentication Message-digest   //启动密文认证

 

注意:区域内的所有路由器都要开启认证。两台路由器相连的链路的密码要匹配。

 

注:区域认证跟接口认证可以协商通过,因为区域认证相当于开启了所有接口的认证。 接口认证优先于区域认证 ,在同时有区域认证和接口认证的情况下,则使用接口的认证进行协商。 ( 接口命令都优于进程命令 ) 因为接口只能调用密文或明文其中一种,所以没有密文优于明文的概念。

 

 

 router ospf 110

   area 2 virtual-link 2.2.2.2 message-digest-key 1 md5 wolf  //配密码

   area 2 virtual-link 2.2.2.2 authentication message-digest  //启动MD5认证

 

 在有虚链路的情况下,如果Area0启动认证,起了Virtual-Link的两台路由器上也要启动区域认证 。

 注意:虚电路上只在刚开始建立邻居关系的时候发送hello包,之后不再发送hello包。所以做这个试验之后要重置邻居关系,或制造一次更新就可以看到效果了。

 

 

 

KEY-ID 当链路需要换密码时,为了防止链路抖动,可以使用 Key ID 来实现平稳过渡。

最后配置的 KEYID 才是 YoungestID ,与 ID 号大小无关,就算 clear ip os pro 也没用。要求双方 youngestID 的密钥必须一致。

 

当起用了最新的 KEYID ,将新的和老的 KEYID 都发过去

当最新的 youngestKEYID 没有被通过认证,则用老的 KEYID 做匹配。

当最新的 youngestKEYID 被在对方的列表找到相同的 KEYID 了,将只发最新的 KEYID 。而不全发。

当 youngestID 被 no 掉了,就会选 yongest 为 yongestID

 

 

例一:

 

这时 R1 的 KID2 是 Youngest KeyID ,R2 的 KID1 是 Youngest KeyID 。

因为 R1 的 key2 没有在对方找到对应的 KEYID , R1 会发 key 1 和 key2 给 R2 , R2 收到后 KID1 验证通过,但 KID2 验证不通过, R2 发 key1 过去,由于双方的 KEY1 匹配,邻接关系就可以建立起来,一切正常,但 R1 还是会不停发 key1 和 key2 , R1 收到 key2 一直报错,但不影响正常工作。因为通过 key1 已经建立关系了。

 

当 R2 再起了个 key 2 的" ccie ",双方认识到对方都有 key2 并且KEY号相同,就不再发 key1 了,虽然 key2 的密码不一样没能通过认证没能建立起邻居关系。所以 OSPF 的密文认证是先比较 keyID ,再比较密码。它收到对方的 keyID 先与自己的列表比较有没有一样的 KEYID 再比较密码。自己有对方的对应的 youngestID ,将通告对方"我有你相同的 KEYID ",对方就不再发整个列表过来,只发 youngestID 。

 

 

例二:

 

 

R1 同 R2 相同 KID 的密码一样。

当 R1 和 R2 的 KID3 都 no 掉后, R1 的 youngest 是 KID2 ; R2 的 yongest 是 KID1 ;这时候邻接仍然可以建立。因为自己发送的 youngestKID 在对方都能找到相应 KID 及正确的密码。

 

R1发给R2的密码是ccna,R2发给R1的密码是cisco

 

-------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------

1)POINT_TO_POINT:    

2)BROADCAST:      

3)NON_BROADCAST(NBMA):

 

1)LOOPBACK:       Loopback                      出现32位主机路由

2)POINT_TO_POINT:    Serial / FR's P2P Subif /    (无DR,组播更新)

3)BROADCAST:      Ethernet                     (选举DR,通过组播建邻居)

4)NON_BROADCAST(NBMA): FR's Physical / FR's MP Subif(选举DR,单播更新)

5)POINT_TO_MULTIPOINT:                    (无DR,组播更新,出现/32主机路由)

6)POINT_TO_MULTIPOINT NON_BROADCAST:             (无DR,单播,出现/32主机路由)

 

[2/3] Hello:10S       [4/5/6] Hello:30S

 

·每种物理接口都被赋予了默认的OSPF Network Type,但可手工对其修改。

 

 

 · FR的物理接口和多点子接口默认是NBMA网络类型

 · hello时间30S

 · 单播更新

 · 由于是单播更新,必须手动指定邻居(只需一方设置就OK,通常在Hub指Spoke)

  ·3层是NBMA,没有广播,二层也可以不用广播。(FR map后可不加Broadcast去实现伪广播)

  · 要选举DR和BDR

  ·一定要确保HUB端成为DR

 · 需要手工加MAP映射

 

  改动接口的网络类型:

 R1(config-if)#ip ospf network non-broadcast

 

 在HUB端(R1)

 R1(config)#router ospf 110

 R1(config-router)#neighbor 10.1.1.4

 R1(config-router)#neighbor 10.1.1.5

 

 确保HUB成为DR,和Spoke交互路由信息。

 R1(config)#int s0

 R1(config-if)#ip ospf priority 100

 R4/R5(config-if)#ip ospf priority 0  改为0则不参加选举

 

 手工MAP(Spoke 端的互访)

 R4(config-if)#frame-relay map ip 10.1.1.5 401

 R5(config-if)#frame-relay map ip 10.1.1.4 501

 

 

 ·以太网接口运行OSPF后默认是broadcast 网络类型

 · hello时间10S

 · 组播更新

 · 由于是组播更新,不用手动指定邻居,可以自动发现

 ·3层是有广播的,2层也一定要有广播能力。( FR map后一定要加Broadcsat )

  · 要选举DR和BDR

  ·一定要确保HUB端成为DR

 · 需要手工加MAP映射

 

 改动接口的网络类型:

 R1(config-if)#ip ospf network broadcast

 

 R1(config-if)#fram map ip 10.1.1.4 104 broadcast

 R1(config-if)#fram map ip 10.1.1.5 105 broadcast

 

 确保HUB成为DR,和Spoke交互路由信息。

 R1(config)#int s0

 R1(config-if)#ip ospf priority 100

 R4/R5(config-if)#ip ospf priority 0

 

 手工加MAP

 R4(config-if)#frame-relay map ip 10.1.1.5 401 broadcast

 R5(config-if)#frame-relay map ip 10.1.1.4 501 broadcast

 

   

 · 全自动,最好的

  · hello时间30S

 · 组播更新

  · 由于是组播更新,不用手动指定邻居,可以自动发现

  ·3层是有广播的,2层也一定要有广播能力。( FR map后一定要加Broadcsat )

  ·不需 要选举DR和BDR, 点到多点网络把PVC当作一个点到点链路的集合,因此就没有DR/BDR的选取发生。

 · 会自动产生32位的直连网段的路由

·所以不 需要手工加MAP映射

 

  改动接口的网络类型:

 R1(config-if)#ip ospf network point-to-multipoint

 

 R1#show ip ospf neighbor detail

 DR is 0.0.0.0 BDR is 0.0.0.0

 

 P2P/P2MP/P2MP-NB都不需要选举DR/BDR,所以DR is 0.0.0.0 BDR is 0.0.0.0

 

  每一个P-MP的接口都会产生/32主机路由,传递给其他的路由器,所以不需手工加MAP。这就是32位的好处。

 

 

 

  · cisco私有的

  ·为一些动态连接的网络而设计,比如说帧中继SVC

  · hello时间30S

 · 单播更新

  · 由于是单播更新,必须手动指定邻居(只需一方设置就OK,通常在Hub指Spoke)

  ·3层没有广播,二层也可以不用广播。(FR map后可不加Broadcast去实现伪广播)

  ·不需 要选举DR和BDR

 · 会自动产生32位的直连网段的路由

·所以不 需要手工加MAP映射

 

 

 改动接口的网络类型:

 R1(config-if)#ip ospf network point-to-multipoint non-broadcast

 

 在HUB端(R1)

 R1(config)#router ospf 110

 R1(config-router)#neighbor 10.1.1.4

 R1(config-router)#neighbor 10.1.1.5

 

  也会产生/32主机路由,所以不需手工MAP。

 

 用show ip ospf interface serial 0看不到non-broadcast,只能show run

 

·POINT_TO_POINT(做不同网段)

 

  · hello时间10S

 · 组播更新

  · 由于是组播更新,不用手动指定邻居,可以自动发现

  ·3层是有广播的,2层也一定要有广播能力。( FR map后一定要加Broadcsat )

  ·不需 要选举DR和BDR

 ·不 需要手工加MAP映射

 

 HUB端起2个P2P子接口:

 interface Serial0

 encapsulation frame-relay

 no frame-relay inverse-arp

 

 interface Serial0.14 point-to-point

 ip address 14.1.1.1 255.255.255.0

 frame-relay interface-dlci 104  

 

 interface Serial0.15 point-to-point

 ip address 15.1.1.1 255.255.255.0

 frame-relay interface-dlci 105  

 

 帧中继的点到点子接口运行OSPF后,默认的网络类型就是P-TO-P的

 

 在R4和R5上 改动接口的网络类型:

 R1(config-if)#ip ospf network point-to-point

 

 

各种类型的特点

 

--------------------------------------------------------------------------------------

当两端的网络类型不一致时 . 通过修改 HELLO 及 DEAD 值 , 能否建立邻接关系  (不能。修改 HELLO 及 DEAD 值只能建立邻居关系 )

 

l         在任意情况下

n         P-P 与 P-M 可以建立邻接关系 . 路由正常 ,

n NBMA 与 BROADCAST 可以建立邻接关系 . 路由正常

l         两台路由器之间运行 OSPF

n         P-P AND BROAD   能建立 . 路由不通

n         P-P AND NBMA   能建立 , 路由不通

n         P-M AND NBMA   能建立 . 路由不通 .

n         P-M AND BROADCAST 能建立 , 但路由不通 .

l         HUB-SPOKE 模式

n         P-P AND BROAD   能建立 . FLAPPING

n         P-P AND NBMA   能建立 , FLAPPING

n         P-M AND NBMA   能建立 . 路由不通 .

n         P-M AND BROADCAST 能建立 , 路由不通 .

n         P-P AND P-M     能建立 . 路由通

n         NBMA AND BROADCAST 能建立 . 路由通