运维开发网

OSPF

运维开发网 https://www.qedev.com 2020-01-25 01:37 出处:网络 作者:li__zhenggang
OSPFIGP    适用于中到大型网络LS     链路状态协议无类协议,支持VLSM/CIDR在三层协议中封装协议号89OSPF的传递特点:每台路由器都有整网的路由,且知道每条路由所对应的接偶口同一区域内的所有路由器都有相同的LSDB注意:多区域中必须有 area0骨干区域,单区域中可以不是area0划分区域的影响:(优化了整体网络)减少了路由条目数量(
  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的映射

 

 

 

 

 

 

0

精彩评论

暂无评论...
验证码 换一张
取 消