1. OSPF

  2. IGP    适用于中到大型网络

  3. LS     链路状态协议

  4. 无类协议,支持VLSM/CIDR

  5. 在三层协议中封装协议号89

OSPF的传递特点:

  1. 每台路由器都有整网的路由,且知道每条路由所对应的接偶口

  2. 同一区域内的所有路由器都有相同的LSDB

注意:多区域中必须有 area0骨干区域,单区域中可以不是area0

划分区域的影响:(优化了整体网络)

  1. 减少了路由条目数量(同一区域内不可以汇总路由,只有区域间和域外才能汇总)

    注意:如果同一台路由器属于多个区域,有多张LSDB表

  2. 将拓扑表变根限制在同一个区域内

  3. LSA传递是基于泛洪

  4. ABR区域边界路由器,一个属于Area0,一个是非Area0区域

OSPF的邻建立:

  1. point-to-point 

  2. MA (DR BDR Drothers)

SPF的特点:

  1. 同区域内每台路由器拥有相同的LSDB

  2. 每台路由器在收敛完毕后都会以自己为根计算路由条目

  3. cost  计算公式  10^8/BW(bit/s)  计算出结果然后每段相加

  4. 路由表加条目

LSA的 传递:

当一台路由器收到一个LAS后

LSA-----判断本地有没有这个LSA—(有)——查看跟自己的序列号一样不—(相同)——直接无视

                        |                                                       |

                      没有                                    比自己高    |    比自己低                        

                        |                                              |                  |

                 加入LSDB                              重复左边操作      给发送者发送LSU同步LSDB

                        |

                send  LSAck

                        |

                      泛洪

                        |

     本地通过SPF算法加入路由表

注意:OSPF发送LSU即支持周期性发送也支持触发更新

          LSA报文没30min更新一次,60min内LSDB中的LSA没有被更新就会被丢弃

序列号:最小  0x80000001

             最小  0x7FFFFFFF

当前使用的是棒棒糖型(序列号)

OSPF的报文:

1.hello            周期10/30s   hold time 时间为40s (4倍)

2.DBD             DBD包含本地LAS的摘要,双方进行交换(采用隐式确认)

3.LSR             LSR包含需要的LSA摘要(显式确认,发送LSU)

4.LSU             LSU包含完整的LSA报文

5.LSAck          基于LSU中的每条LSA发送LSAck

OSPF的确认:

  1. 显式确认:发送专门的ACK确认

  2. 隐式确认:把收到的DBD发送给发送者,但用的是对方的序列号

注意 :隐式确认是基于序列号的确认机制,只有OSPF支持

OSPF的封装:

  二层帧     IP   OSPF的载和    FCS

OSPF的载和内容:

version  type  packet长度  router ID  area0  校验和  认证(0/1/2)  data

version : OSPF有两个版本,V2用来支持IPv4,V3用来支持IPv6

type :五种,hello DBD LSR LSU LSAck

RID:1.手工配置   2.双up下loopback IP最大  3.双up端口下,物理IP最大(既可以标识路由器,也可以标识LSA)

data:DBD中不仅有data,还有MTU字段

Hello报文:

  1. RID

  2. hello and dead (必须相同,EIGRP没有这个要求)

    10s/30s取决于网络的,跟带宽没有关系,跟EIGRP不同

  3. neighbors :存放RID

  4. Area ID

  5. router priority (不一定都有优先级)

  6. BR

  7. BDR

  8. 认证

  9. 相同区域类型

OSPF的邻接建立过程:

  1. Down 初始状态,接口被宣告进EIGRP,没有发送任何的报文

  2. lnit     通过接口发送了一份hello报文

  3. Two-way   通过接口收到了一份hello报文,里面的neighbor字段包含自身的RID(当时MA网络时,在这个时候开始选举DR和BDR,而点对点网络直接进入下一步)

  4. Exstart    交互三个不带LSA包头的DBD选择Master/Slave(主/从)

  5. Exchange   有Master发起的带有LSA报头的DBD信息交互

  6. Loading     交互LSR、LSU以及LSAck实现LSDB的同步

  7. Full     一旦LSDB同步,邻接关系达到Full

 Area 0 = 0.0.0.0
         1 = 0.0.0.1
      255 = 0.0.0.255
      256 = 0.0.1.0

debug命令:
debug ip ospf packet
debug ip ospf adj


修改MTU:

进入接口
ip mtu 1492
清除进程:
clear ip ospf process

建立邻接关系时无视MTU影响的命令:
进入接口
ip ospf mtu-ignore
注意:一端设置和两端设置命令一样,建议两端设置


修改hello时间后dead时间自动改为四倍,但修改dead时间后hello时间不会自动 减小四倍,EIGRP不具备这个特点

当把loopback宣告进OSPF时,不管宣告的是几位的,OSPF都会默认是/32位的,因为OSPF默认下把loopback接口认为是末节主机

禁止这个特点的命令:
interface loopback 0
ip ospf network point-to-point
注意:当输入这个命令后loopback就不会被认为是末节主机了

在MA网段建立OSPF邻接关系是DR和BBR的选举原则:(选举时间为40s,取决于wait时间)
1.参与该MA网段的路由器接口的OSPF优先级,越高越好(0-255),默认为1
2.该MA网段所连接的路由器的RID,越高越好

DR和BDR的关系:
1.DR和BDR无法被抢占
2.DR挂了BDR会立即抢占成为新的DR,而新的BDR通过在所有DRother之间重新选举得出(二次选举不需要等40s)
3.DR和BDR都是接口级别的概念,每个网段的DR和BDR都通过相同的机制单独选举
4.在以太网环境中建议拥有DR和BDR实现备份,而在FR环境中,只能是Hub节点成为DR,任何Spoke节点都不能成为DR和BDR
5.如果一个MA网段没有DR和BDR,没有任何的邻接关系也不会有任何的LSA传递

 

修改OSPF的优先级:
进入接口
ip ospf priority 0
注意:当输入这个命令之后路由器不会建立邻接关系,因为选举不出DR和BDR,路由器会停在Two-way状态


一台运行OSPF的路由器,只要在一个接口开启了OSPF的进程,则该接口会立即监听发往224.0.0.5的组播流量,而仅当一个节点成为DR或BDR时,该接口才会同时监听发往224.0.0.5和224.0.0.6的组播流量
在一个MA网段内,所有的路由器发送的DR和BDR的报文的目的地址都是.6而DR将LSA整合之后以.5的地址发送的网段内所有的其他路由器
在点到点网段不会存在.6的地址,因为没有DR和BDR

 ASBR系统边界路由器(路由重分发)

 

LSA:

  1. Router LSAs:

    传递范围:只能在一个Area内传递,不能穿越ABR

    通告者:每台属于区域内的路由器都会基于该区域通告一条1类LSA

    包含的内容:拓扑信息,其中描述该路由器所有宣告进该区域的链路的前缀,掩码,网络类型及其度量值

    Link_ID:通告该LSA的路由器RID

    ADV Router:通告该LSA的路由器RID

    查看命令:show ip ospf database

                    show ip ospf database router

    注意:串口会在Link count 中自动多生成一条stub

  2. Network LSAs:

    传播范围:同一类LSA

    通告者:MA网段中的DR

    包含的内容:纯拓扑信息,包含了该MA网段直连的所有路由器的RID信息,该MA网段的掩码

    Link-ID:该MA网段DR接口的IP地址

    ADV Router:该DR的RID

    查看命令:show ip ospf network

  3. Summary network LSAs:

    传播范围:除了该区域外的整个OSPF路由选择域

    通告者:ABR

    包含的内容:一条3类LSA包含一条OSPF域间路由  (O IA)

    Link-ID:3类LSA路由器的前缀

    ADV Router:ABR的RID,,3类LSA在OSPF路由选择域内传递的时候为了保证可达性,没跨越一个ABR都会自动改写成为该ABR的RID

    查看命令:show ip ospf database summary

  4. Summary ASB LSAs:

    传递范围:除了ASBR所在的区域外的整个路

    通告者:和ASBR在同一个区域的ABR路由器

    包含的内容:纯拓扑信息,描述了ASBR所在的位置

    Link-ID:ASBR的RID

    ADV Router:通告者ABR的RID,并且该值每跨越一个ABR都会自动改变,同3类LSA

    查看命令:show ip ospf database asbr-summary

  5. External LSA:

    传递范围:整个OSPF路由选择域

    通告者:ASBR

    包含的内容:纯路由信息,一条OSPF域外路由对应一条5类LSA

    Link-ID:域外路由的路由前缀

    ADV Router:ASBR的RID,该LSA在OSPF域内传递的时候,ADV Router 不会发生任何的改变,形成的路口为(0 E2     0E1),默认下为0 E2

Seed Metric:

         种子度量值,对于OSPF而言,如果将BGP路由重分发进入,则Seed Metric 默认为1,如果将其他的外部路由重分发进入,默认为20

修改0 E1的命令:

在ASBR上做重分发的时候修改

router ospf 110

redistribute eigrp 90 subnets

metric-type 1

OSPF的汇总:

  1. 域间汇总:需要在ABR上部署,实现对3类LSA的汇总传递

  2. 域×××总:需要在ASBR上部署,实现对5类LSA的汇总传递

域间汇总的命令:

router ospf 110

area 0 range 202.10.8.0 255.255.255.0

所有的ABR上都要配置

域×××总命令:

router ospf 110

summary-address 192.168.8.0 255.255.255.0

两者都会生成Null0

 

LSDB的过载保护:

注意:只有12.4以上的版本才有

进入进程

max-lsa 4     负载的条数

warning-only    默认为75%时报错,建议修改为100%,仅仅会报错

ignore-time     默认为5分钟down邻居,最小可修改为1分钟

ignore-count   邻居次数超过限制就不会再建立,一般设置为3次

resent-time    down完邻居重新建立后等待时间,默认3分钟,3分钟内没有过载就会把ignore count清零

 

修改度量值:

  1. int f0/0

    ip ospf cost 66

  2. router ospf 110

    auto-cost reference-bandwidth 10000Mbits(注意单位)

    注意:第二种修改是修改OSPF计算公式中的分子大小

OSPF的stub区域:

需要的条件:

  1. 建议只有一个ABR

  2. 能正常建立邻接关系

  3. 区域内不能有ASBR

  4. 不能是area0区域

  5. 不允许有虚链路

  6. 只能是末节区域

实现的目的:

  1. 保证stub收不到任何4,5类报文

  2. 主动向区域内下放缺省路由

配置命令:

router ospf 110

area 1 stub

注意:区域内的路由器都要配置stub,路由会以O* IA显示,Metric=65

总结:如果一个OSPF区域属于stub区域,该区域内的ABR会将入区域方向的4,5类LSA同时过滤,同时该ABR会主动向区域内发送一个O* IA的0.0.0.0/0的3类缺省路由,Seed Metric=1

修改Seed Metric的命令:

router ospf 110

area 1 default-cost 36 (默认为1)

注意:修改命令是在ABR上修改

OSPF的Totally stub区域:

配置命令:(在ABR上配置)

router ospf 110

area 1 stub no summary

不仅能阻止4.5类LSA报文,还能阻止3类LSA报文

总结:在stub区域基础上ABR路由器会同时将3,4,5类入向传递的LSA过滤,同时会主动向该区域注入一条0.0.0.0/0的O* IA缺省路由,Seed Metric=1

OSPF的Not-So-Stuby-Area区域(次末节区域)(NSSA区域)

优势:允许区域内部重在ASBR,但是它不会主动向区域内下放缺省路由

  1. 当NSSA区域内的路由器既属于ABR又属于ASBR时,它产生路由在NSSA区域内以7类LSA传递,在其他区域一4,5类LSA传递

  2. NSSA区域内的ABR能把区域外的5类LSA翻译为7类LSA下放到NSSA区域,路由以 O NA格式显示

  3. NSSA区域内ASBR产生的路由以7类LSA在该区域内传递

  4. NSSA的ABR会阻止4,5类LSA报文传递进入该区域

查看路由器的角色:

show ip ospf border-routers

一台路由器只要可以产生5类LSA,则该路由器就是ASBR

给NSSA区域下放缺省路由的命令:

area 2 nssa default-information-originate

当给区域配置了下放缺省路由的命令后就没必要下放明细路由

禁止NSSA区域中ABR路由下放到该区域的命令:

router ospf 110

area 2 nssa default-information-originate no redistributi

修改 O NA的命令:

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

修改Seed Metric的命令:

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

修改forward address 为0.0.0.0的命令(在ABR上修改)

area 2 nssa traslate type 1 suppress-fa

注意:NSSA中的forward address 是为了告知外部路由器数据传送的真正方向,修改forward address可增加安全性

OSPF的Totally NSSA区域:

router ospf 110

area 2 nssa no summary

优点:

  1. 同时过滤3,4,5类LSA报文

  2. 主动下放0.0.0.0/0的缺省路由

总结:在NSSA区域可以拥有ASBR,并且重分发进入的OSPF的路由是以7类LSA形式存在的,该类型的LSA只能存在NSSA区域,并且该区域所有的ABR会通过比较RID选举出一个转换器(最大的RID),该转换器会将内部传递给外部的NSSA的LSA报文转换为5类LSA,并且通告给其他的区域,所有该区域的ABR都会过滤重外部进入该区域的4,5 类LSA,但是该区域的任何ABR都不会主动向内部下放缺省路由,为了实现内部路由器的外网可达性,需要在该区域ABR上手工下放缺省路由,O N2   forward address 0,0,0,0

Seed Metric=1

          在Totally NSSA区域中,基于NSSA区域的特性,ABR会主动阻止3,4,5类LSA进入该区域,并且ABR会主动向该区域下放缺省路由   O* NA  forward address 0.0.0.0/0   Seed Metric=1

路由器的加表优先级:

O >O IA >O E1/O E2 = O N1/ O N2

 

不规则区域:

  1. 远离骨干区域的非骨干区域

  2. 被分割的Area0区域

对不规则区域的三种临时解决方案:

  1. 在出现问题的ABR上(没有和Area0直连的ABR上),使用双OSPF进程,并且执行单点双向重分发

    缺点:影响次优路由的选择

  2. 在出现问题的ABR上建立一个Tunnel链路,连接到离其最近的Area0中的ABR路由器上,在这两台ABR上对Tunnel配置IP地址为同一个IP子网段,并且将其宣告进OSPF的区域0中

    建立Tunnel的命令:

      interface tunnel 3

      tunnel source 3.3.3.3              源地址

      tunnel destination 1.1.1.1         目的地址

      interface tunnel 3

      ip add 2.2.2.2 255.255.255.0

      注意:不要宣告源和目的地址进入OSPF进程,因为会引起路由翻动,把源目的地址以静态路由的方式写入路由表

3.使用Virtual-Link在出现问题的ABR上以及离他最近的Area0中的ABR上部署

注意:Virtual-Link不能跨越骨干区域,不能跨越特殊区域

配置命令:router ospf 110

                area 2 virtual-link 1.1.1.1(RID)          area 2 为自身现在所处的区域

show ip ospf virtual-link

注意:只能在同区域的两台路由器上建立Virtual-Link

OSPF的认证:

ospf既支持明文认证,也支持密文认证

  1. 基于链路级的认证

(1)链路级明文认证

interface s1/1

ip ospf authentication-key cisco

ip ospf authentication

(2)链路级密文认证

interface s1/1

ip ospf message-digest-key 12 md5 cisco

ip ospf authentication message-digest

注意:两段都需要配置

 2. 基于区域级的认证

(1)区域级明文认证

interface s1/1

ip ospf authentication-key cisco

router ospf 110

area 0 authentication

(2)区域级密文认证

interface s1/1

ip ospf message-digest-key 12 md5 cisco

router ospf 110

area 0 authentication message-digest

注意:区域内的路由器都要配置

 3.虚链路的认证

(1)Virtual-Link明文认证                                                             

router ospf 110

area 0 virtual-link 1.1.1.1 authentication-key cisco

area 2 virtual-link 1.1.1.1 authentication                                  1.1.1.1为路由器的RID

(2)Virtual-Link密文认证

router ospf 110

area 2 virtual-link 1.1.1.1 message-digest-key 1 md5 cisco

area 2 virtual-link 1.1.1.1 authentication message-key

注意:不管是明文还是密文,只有在建立邻接关系的时候才有用,在建立邻接后才配置,就没什么卵用了

OSPF的网络类型

  1. Loopback    无论接口掩码多少,都以/32位主机路由出现

  2. Point-To-Point    建立邻接关系的数量只能有一个,支持组播,没有DR,Hello时间为10s,一般用在Serial/ISDN BRI中

  3. Broadcast     以太网接口,支持组播,有DR,Hello时间为10s

  4. NBMA   主要用在FR主接口/FR多点子接口,不支持组播,有DR,Hello时间为30s

       配置:interface s1/1

                 ip ospf network non-broadcast

                 router ospf 110

                   neighbor 1.1.1.2   (一定要指定单播地址,因为不支持组播,只需要在一端配置)

 5.  Point-To-Multipoint(点到多点)  

     支持组播发送,没有DR,Hello时间为30s,本地路由表会自动生成直连邻居接口的/32为主机路由

       show ip ospf interface s1/1

       show ip route ospf

 6. Point-To-Multipoint  Non-Broadcast (点到多点非广播) 

     不支持组播发送,没有DR,会自动生成一条/32位的主机路由Hello时间为30s

注意:1.其中3.5.6为思科私有的网络类型

          2.修改命令为  interface s1/1   ip ospf network ......

          3.直连链路两端网络类型必须一致,但有个特例(一端是点到点,一端是点到多点,配置时需要修改hello时间)

          4.其中4.5.6配置完成后show ip ospf interface s1/1看到的网络类型都是Non-Broadcast,所以需要查看用show run-config

在FR环境中部署OSPF

  1. 网络类型为NBMA

    (1)为了建立邻居需要在Hub节点上手工指定neighbor

    (2)为了保证路由传递没有问题,需要手工修改接口的OSPF优先级,保证Hub为DR,Spoke什么都不是

    (3)为了保证Spoke节点所连接的下游网段的PC可以互访,需要在Spoke节点手工FR映射

  2. 网络类型为Broadcast

    (1)由于支持组播发送,所以不需要指定neighbor,但前提是FR开启了伪广播功能

    (2)需要修改接口的优先级,改变DR的位置

    (3)需要手工配置FR的映射,实现Spoke节点的互访

  3. 网络类型为Point-To-Point Non-Broadcast

    (1)需要手工指定neighbor建立邻居

    (2)不需要修改优先级,因为没有DR

    (3)不需要手工FR映射,因为有/32位的主机路由

  4. Point-To-Multipoint

    (1)不需要手工指定neighbor

    (2)不需要修改优先级

    (3)不需要手工映射

向OSPF中注入缺省路由:

  1. router ospf 110

    default-infromation originate          注意:路由器中必须有一条全零的缺省路由才行

    ip route 0.0.0.0 0.0.0.0 null 0                     创建缺省路由

  2. router ospf 110

    default-information originate always  

OSPF的被动接口

router ospf 110

passive-interface f0/1

注意:OSPF设置为被动接口后,既不能发,也不能收,跟EIGRP一样

OSPF关闭ARP的映射:

no frame-relay inverse-arp

no arp frame-relay

只有两个命令同时使用才能关闭ARP的映射