ospf路由协议

<OSPF(Open Shortest Path First)>
开放最短路径优先协议


OSPF的基本特性:
·OSPF属于IGP,是Link-State协议,基于IP Pro 89。
·采用SPF算法(Dijkstra算法)计算最佳路径。
·快速响应网络变化。
·以较低频                                                                                                                                                                                                                                                           率(每隔30分钟)发送定期更新,被称为链路状态刷新。
·网络变化时是触发更新。
·支持等价的负载均衡。


OSPF维护的3张表:
1)Neighbor Table:State DataBase
 确保直接邻居之间能够双向通信。
2)Topology Table:
 LSDB(Link-),同一区域的所有路由器LSDB相同。
3)Routing Table:
 对LSDB应用SPF算法,选择到达目标地址的最佳路由放入路由表。


OSPF的区域划分:
·OSPF采用层次设计,用Area来分隔路由器。
 区域中的路由器保存该区域中所有链路和路由器的详细信息,
 但只保存其他区域路由器和链路的摘要信息。


·Transit area (backbone or area 0)
 主要功能:为快速、高效地传输数据包。通常不接用户。


·Regular areas (nonbackbone areas)
 主要是连接用户。而且所有数据都必须经过area 0中转。
 包括:Stub / Totally                     Stubby / NSSA


采用分区域设计的好处:
 1、可以在区域边界做汇总,减少了路由表的条目
 2、只有一个区域内的路由器才会同步LSDB,的flood在网络边界停止,减少了LSA的flood,加速会聚
 3、缩小网络的不稳定性,一个区域的路由问题不会影响其它区域。


(ABR 域间汇总:  area xx  range  x.x.x.x x.x.x.x  针对的是LSA1 ,LSA 2做汇总 )
(ASBR  域外汇总: summary –address x.x.x.x x.x.x.x   针对的是LSA 5的做汇总)




OSPF的邻居与邻接关系:
OSPF中路由器之间的关系分两种:
1、邻居
2、邻接


·OSPF路由器可与它直连的邻居建立邻居关系。
·P2P链路上,邻居可以到达FULL状态,形成邻接关系
·MA网络,所有路由器只和DR/BDR(Backup Designated Router)到达FULL状态。形成邻接
·路由器只和建立了邻接关系的邻居才可以到达FULL状态。
·路由更新只在形成FULL状态的路由器间传递。
·OSPF路由器只会与建立了邻接关系的路由器互传LSA。同步LSDB
  
Route-ID:
 一个号码而已,用来唯一标识OSPF域中路由器。


 设置Route-ID的优先顺序:
 1)手工指定Route-ID x.x.x.x(可任意,但区域内不能重复)
 2)自动选择最大的Loopback IP作route-id
 3)自动选择最大的物理接口IP(接口必须是激活状态)


推荐手工指定的router-id


DR/BDR的选举:
 
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


 
<DR/BDR>特点


 1)不抢占,DR正常工作时,即使有新的优先级比DR高的路由器也不能抢占成为DR。
 2)DR正常时,BDR只接收所有信息,转发LSA和同步LSDB的任务由DR完成,当DR故障时,BDR自动成为DR,完成原DR的工作,并选举新的BDR。
 3)DR是个接口概念。每个网段都会选举DR。
  4) 不同网段分别选DR/BDR


SPF算法:
最短路径优先算法


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开销值计算:
·OSPF Cost = 108/BW (bps) 


几种常用接口的COST值:
1、环回口的COST值是1
2、serial口的COST值是64
3、标准以太接口是10
4、快速以太接口是1
--------------------------------------------------------------------------------


·OSPF的5种报文:
 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


OSPF的同步过程:


      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确认主从关系。主的作用只是为了控制序列号的同步。Router-ID高的将成为主。
DBD只携带LAS的头部信息,没有携带LAS的具体信息。承载完整LAS是LASUpdate包。


5.Loading:等待M位为0时,才进入loading。
LSRrequest:是不携带LAS头部的,只通过(公告ID,LSA L类型,linkID)来请求具体的条目。
LSRUpdate:含有真正LSA完整信息的,用来回应LSRrequest。


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


---------------------------------------------------------------------------------------
<OSPF基本配置>


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、路由表太大,而路由器的内存是有限的。


OSPF路由器的类型:
1、内部路由器--在一个普通区域内的路由器
2、核心路由器--在area 0区域内的路由器
3、ABR区域边界路由器--连接两个不同区域的路由器
4、ASBR自治系统边界路由器--连接OSPF域到另一个自治系统的路由器


LSA序列号:
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相同


<LSA(Link-State Advertisement)>


链路状态类型、链路状态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所包含内容


LSA1(Router Link States)


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网络的一些信息)


LSA2(Net Link States)


show ip ospf database network  


特点:
1、仅在本区域传递
2、只有MA网络才会产生LSA2,由DR发出。
3、标识出本MA网中有哪些路由器以及本网的掩码信息。


Link ID:        DR的接口IP
ADV router:     DR的router ID


LSA3(Summary Net Link States)


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,其通告路由器就会发生改变。




LSA4(Summary ASB Link States)


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


LSA5(Type-5 AS External Link States)


show ip os database external 


特点:
  1、域外路由,不属于某个区域。
    2、ASBR产生,泛洪到整个AS。不会改变ADV Router。
3、包含域外的路由
Link ID:        路由(网络号)
ADV router:     ASBR的router ID (unchange)


LSA7(Type-7 AS External Link States)


show ip os database nssa-external 


特点:
  特殊的域外路由,只存在于NSSA区域中。
Link ID:        路由(网络号)
   ADV router:     ASBR的router ID (只在NSSA区域中)


OSPF的四种路径类型:
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]cost相同对OE2来说,在的情况下,选择到达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 74
  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:


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


<修改Cost参考值>


修改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


<向OSPF区域注入默认路由>


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


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中共有四类特殊区域,都是用来对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值来实现选路


<Totally Stubby > Cisco 私有


·更加缩小区域内路由器的LSDB,在Stub基础上,又阻止LSA3。(阻止LSA3/4/5 )
·也会由ABR发出一条LSA3默认路由给Stub区域内的其他路由器。


配置步骤:
先配置出一个STUB区域,然后在ABR上打上以下命令:
router ospf 110
  area 2 stub no-summary   //(只需在ABR上做)


<NSSA(Not-So-Stubby Areas)>


·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


totally NSSA area


也是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 


在下列这种情况下5类LSA的forward address也会出现不为0的情况:
 
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。




<OSPF区域的连接问题>


如果出现下面这种情况:江苏—学生—梦(可使用下面的三种方法来解决。
 


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包


<OSPF认证>


·分3种认证
  1、Link认证
  2、Area认证
  3、Virtual-Link认证
 
·OSPF即能做明文认证,也能做MD5认证




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


第一步:接口下配密码
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号必须一致


Area:


第一步:接口下配密码
int s1/0
  ip ospf message-digest-key 1 md5 wolf   //配密文密码


第二步:进程下启用  
router ospf 110
  area 0 authentication Message-digest  //启动密文认证


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


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




Virtual-Link:
 router ospf 110
    area 2 virtual-link 2.2.2.2 message- -key 1 md5 wolf //配密码
   area 2 virtual-link 2.2.2.2 authentication message-digest //启动MD5认证


 在有虚链路的情况下,如果Area0启动认证,起了Virtual-Link的两台路由器上也要启动区域认证。
  注意:虚电路上只在刚开始建立邻居关系的时候发送hello包,之后不再发送hello包。所以做这个试验之后要重置邻居关系,或制造一次更新就可以看到效果了。






关于做MD5认证时的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): 


<OSPF Network Type>


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,但可手工对其修改。
b
<各种网络类型的特点>
 
·NON_BROADCAST
  ·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




·BROADCAST


 ·以太网接口运行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
 
·POINT_TO_MULTIPOINT    
  ·全自动,最好的
  ·hello时间30S
 ·组播更新
  ·由于是组播更新,不用手动指定邻居,可以自动发现
  ·3层是有广播的,2层也一定要有广播能力。(后一定要加Broadcsat)
  ·不需要选举DR和BDR,点到多点网络把PVC当作一个点到点链路的集合,因此就没有DR/BDR的选取发生。
  ·会自动产生32位主机路由
  ·不需要手工加MAP映射 (分支之间不需要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位的好处。


·POINT_TO_MULTIPOINT NON_BROADCAST   


  ·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值,能否建立邻接关系


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 能建立.路由通




























==============================================================================================================================


 代吉帅




OSPF 5种报文




hello


DBD


LSR


LSU


LSACK




ospf 3 张表


neighbor


database


route






接口可以启用OSPF (IOS 12.3 以后)


int f0/1
ip ospf 100 area  0 


此时,不管接口的IP 改成什么,都会在此接口启用OSPF,同时在全局模式 启用Route ospf 100进程。sh run 可以查看。








DEBUG ospf 邻居形成过程


router ospf 100
log-adjacency-change detail
==> debug ip ospf adj  / debug ip ospf event




DOWN--> INITIAL--->2-WAY--->EXSTART--->EXCHANGE--->LOADING--->FULL 




如果 两边接口的MTU 值一不致 sh ip os int fa0/0


从的MTU < 主的MTU ;则一直卡 在 EXSTART 状态,两边一直在发 I=1 M=1 MS=1的包,因为双方MTU 不能相同。
从的MTU > 主的MTU ; 则一直卡 在从路由器停在 Exchange 状态 , 主停在 EXstart状态。

解决方案: 在小的MTU 那边做 忽略 ,在接口上:  ip ospf mtu-ignore .








进入2-WAY的条件 :
route-id 唯 一
AREA ID 一致
认证类型一致
认证密码一致
network mask 一致(MA 网络需要一致,point to point 不检查)
hello interval 一致
dead interval 一致
option 一致


进入 FULL的条件:   interface mtu 一致 (三层MTU),若不一致,可以使用 ip os mtu-ignore.






二层MTU vs  三层MTU


int f0/0
MTU : <64-17940>  MTU size in bytes
ip mtu  :  <68-1500>  MTU (bytes)
MPLS MTU:  <64-65535>  MTU (bytes)
IPV6 MTU:  <1280-1500>  MTU (bytes)









ospf 的命令




sh ip os interface brief 
sh ip os int f0/1 




  link : 描述的是接9-口的信息。
   state: 描述的是跟谁建立邻居关系。
   LSA: 描述了这两个点。






Router LSA 
link type x:
1, 点到点连接到另一台路由器。
2,连接一个传送网络,ex. MA ,DR 的地址,和自己的接口
3,连接stub 描述网络
4  连接虚链路






==>  
(以每个路由器为参考)


LSA1 的个数=Router 的个数
   lsa 1 
link type_1  的个数 =  point-to-point 网络的个数。
Link type_2  的个数 =  transit网络的个数  (MA 网络的个数 ):MA:多个节点可以访问一个链路
Link Type_3  的个数 =  stub 网络的个数,(自己LOOP 口个数  + 自己point to point 网络的个数)
Link type_4  的个数 =  Vitrual_Link 的个数
 




Network LSA    
描述内容: 描述一个网段连接了哪些路由器.                 
范围: 一个区域内,终止在ABR.
LINK ID : 在该网络的DR 路由器接口地址 .sh ip os da 
 
类似于LSA1 的link type 1,4 
以自己的接口地址为 LINK ID +  MA 上NEIGHBOR RID   


=====>
lsa 2 的个数 = MA 网络的个数


LSA2  的 LINK ID 问题:  
      给其他Router  区分网络连在那个 网段











Summary LSA 

描述内容:其他区域的路由前缀+掩码+COST 值
始发路由器: ABR 
洪泛范围:整个OSPF 区域 ,除了TOTAL STUB ; TOTAL-NSSA 
LINK ID: 网络前缀








注意的问题:


OSPF 的汇总路由为什么AD 不等于 5 ??? OSPF 汇总 no-advertise/ advertise 的意思。


area 1 range 20.1.0.0 255.255.255.0 
--- //管理距离AD 不变 ;
--- //COST 是全部明细COST中最小的; 也可以自己指定;
--- //NO-Advertise ;这个范围内的路由都不会通告。包括明细和汇总;





LSA 的过滤: (被允许的 路由被通告)

ip filter-list aaa permit 20.1.1.0/24 
ip filter-list aaa permit 20.1.2.0/24


router ospf 100
area 1 filter-list aaa  in/out 
ignore  lsa mospf  //忽略 组播LSA-6








虚链路
穿越区域必须是正常区域。
隔离区域会有LSA5 ,但没有 LSA3 和 LSA4 
sh ip os int brief 可以看到 VL0 接口
sh ip os da ---> 可以看到 DNA ,do not age , 触发,没变化永远不刷新。因为它是按虚链路。 sh ip os interface 可验证。
  由 VL0 口发出了LSA 都是 NDA .




 认证:
接口模式
ip os authentication   明文类型
ip os authentication message-digest 密文类型


 
     ip os  authentication-key cisco   大小写敏感,空格也算
ip os message-digest-key 1 md5 cisco


区域认证:
 进程下开开关,接口下配密码。
 10 盏等 一个个开---》接口认证
 10 盏灯 一起开----》区域认证,密码在接口一个个配
area 13 authentication
      


虚链路认证  VL0

进程接口下
area 13 vitual-link 1.1.1.1 authentication
area 13 vitual-link 1.1.1.1 authentication-KEY cisco




网络类型:
































评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值