天天看点

OSPF详解(二)

十六、OSPF区域

1、 区域0:汇总每个区域的网络拓扑到其他区域。所有的域间通信量必须通过骨干区域,非骨干区域不能直接交换数据包。

2、 路由器类型:IR、BR、ABR、ASBR

3、 IR:所有接口都属于同一区域的路由器。

4、 BR:至少有一个接口是与骨干area0相连的路由器。Area0不一定是骨干区域,但骨干区域–定是area0,要成为骨干必须有一个邻接关系在里面

5、 ABR:连接其他区域到骨干区域,至少一个接口属于骨干区域。

6、 ASBR: OSPF域外部的通信量进入0SPF域的网络路由器。

7、 0SPF的虚链路:一条通过非骨干区域连接到骨干区域的链路。通过非骨干区域修复分段的骨干区域。它是逻辑通道,通过最优路径到达另一端。

  1. 它必须配置带两台ABR之间。
  2. 虚链路所经过的区域必须有全部路由选择信息。就是传送区域。
  3. 传送区域不能是末梢区域。
  4. 4虚链路是属于骨干区域的。

十七、LSA组步调

I0S11. 3之前:整个LSDB与LSRrefreshTime相关联(统一的计时器) ,每隔30分钟,路由器重发源与自己的所有LSA,不管这些LSA的老化时间。所以每隔30分钟,就产生一个区域通信量和CPU利用高峰。但让每个LSA有单独的计时器又是很浪费资源的。

一个折中的方案就是组步调,通过延迟重刷新时间,将这些LSA分组,每4min进行一- 次重刷新一组LSA。每4分钟一组!

命令: timers lsa- group- pacing ?/timers pacing lsa- group ?
           

十八、OSPF特殊区域

1、 Stubarea:不允许AS外部LSA通告在其内部进行泛洪扩散的区域,也不能有虚链路,无类型4和类型5!这区域的ABR向网络内通告一条summary LSA, 这条summaryLSA为缺省路由0.0.0.0。如果存在多余一个的ABR可能会产生次优路径。不存在ASBR,骨干区域不能为stub。

  1. Stub area 内Hello包中可选项E-bit被置0 (详见数据包可选项)。
  2. Stub area内的路由器不接受任何E- bit=1的hello包。这样就确保了
  3. stub area内 的路由器有相同的LSDB。
  4. Area area-id stub确保区域内所有路由器都配置此命令。否则无法建立邻居,一直 处于down状态
  5. Area area-id default-cost ?外部网络通告到stubABR.上的度量值!

    2、 Totally stubby area:阻塞类型3类型4和类型5。这样更节省内存,使用缺省路由到达除这个区域以外的所有目的地址!ABR只通告一条类型3的缺省路由,其他类型3不通告。

    Area area-id stub no-summary 只需要在ABR.上配置加上no-summary

    3、 NSSA:允许外部路由通告到0SPF自主系统内部,同时也保留自主系统其余部分的末梢区域特征。NSSA内的ASBR始发7类LSA通告那些外部网络地址。类型7会被ABR阻塞,被转换为5类。

  6. P-bit:NSSA的ASBR会设置或清除这个位。P-bit=1, NSSA的ABR收到后会将7类转为5类通告。P-bit=0, 不会7转5。就是不通告, 其他区域无法知道,只有一种情况P-bit=0就是NSSA区域的ABR进行重分布的时候。
  7. Area area-id nssa translate type7 suppress-fa (7转5后将FA字段变为0.0.0. 0, FA=forward address)
  8. Area area-id nssa defaul t-informat ion-origi nate向NSSA以类型7(N2)的方式注入一- 条默认路由。ABR上设置! (必须,否则没有缺省)Area area-id nssa no-redistribute如 果ABR也是ASBR这可以阻止ABR向NSSA内部通告类型7。

    4、 Totally NSSA :和NSSA相同只是在NSSA内部也没有类型3LSA。 只用在ABR上就可以。Area area-id nssa no- summary只会向NSSA内通告一个3类的缺省路由到NSSA区域.

    5、 正常区域:有1类2类3类4类5类Stub area:有1类2类3类

    6、 Stub area:有1类2类3类

    7、 Totally stub:有1类2类3类只有缺省

    8、 NSSA:有1类2类3类7类

    9、 otally NSSA:有 1类2类3类只有缺省7类

十九、SPF的计算

1、 完整的SPF计算:以自己为根对目标网段的LSA进行详细的链路层计算和网络层计算,得出到达目的地的最佳路由。Area内是完整的SPF计算。

2、 部分SPF计算:计算到达area外的目的地。因为外部LSA和汇总LSA没有详细的链路状态信息(只路由可达信息),只计算到ABR的SPF算法。

3、

二十、OSPF建立邻接的过程

OSPF详解(二)
OSPF详解(二)

1、 R1首先有效,发送hello给R2。 由于没有任何邻居所以邻居列表为空,DR/BDR为0.0.0.0

2、 R2收到R1的hello后,将R1置为init,并发hello给R1,邻居列表加上R1的RID,并且DR/BDR为自己接口地址

3、 R1收到R2hel lo看到自己RID于是2WAY,然后到EXStart, R1发空的DBD,序列号为X,I=1, M=1 (图打印错误), MS=1,声明自己为主。

4、 R2收到DBD后将R1置为EXStart,响应一个DBD,序列号为Y,R2的RID更高,它把MS=1,声明自己为主

5、 主从协商完,R1将R2置Exchange,发送DBD给R2,序号为Y。MS=0, M=1, I=0

6、 R2收到这个DBD后,将R1置Exchange, 发DBD给R1,序列号为Y+1.这个DBD包含了link state sumnary list中LSA头部。

7、 R1收到后,返回一个序列号相同的DBD, 直至R2发出最后-一个DBD, M=0

8、 exchange状态完成,但是R1请求列表中还有LSR,所以进入loading

9、 R2收到最后一个DBD后,将R1置为FULL, 因为R2请求列表为空了

10、 R1发送LSR,R2发送LSU,过程直到R1请求列表为空,R1把R2也转换到full

二十一、OSPF路由器

1、 目的类型

  1. 网络条目:数据包所要转发的目的网络地址。
  2. 路由器条目:到达ABR和ASBR路由器的路由。

    Show ip os border-routers查看ABR和ASBR路由器。这个内部的路由表中的所有目的地都是ABR和ASBR的路由器ID。

    注意:i=区域内路由, I=区域间路由路径类型(0 0IA E1/N1 E2/N2)

    2、 路径类型(0、 0IA、 E1/N1、 E2/N2)

  3. 0区域内路径:路由器在area内就可以到达的路径。
  4. 0IA区域间路径:目的地在其他区域但是还属于0SPF自主域内。
  5. E1外部路径类型1:目的地只在OSPF自主域外的路径。当其他协议自主域的重分布到OSPF时,ASBR需要给这些通告的路由指定一一个代价值。(ASBR通 告的外部代价+内部路由器到ASBR的代价)
  6. E2外部路径类型2:目的地只在0SPF自主域外的路径。(只计算外部的开销,外部开销默认为20,BGP为1。 而且为默认设置)

    3、 0SPF路由表的查找

  7. 最长匹配原则。
  8. 0路由>01A路由>E1路由>E2路由
  9. 如果有多条等代价、等路径类型的路由器存在,可以负载均衡。Maximum- pashs (1-16)
  10. 任何路由信息的发布必须经过骨干区域到达其他区域,所以非骨干区域不宜直接连接,否则应该在同-一个区域。
  11. 如果一个路由器同时属于两个非骨干区域。那么它会就近选择一个区域访问骨千0。
  12. 末节区域,对E1/E2可能有次优路径。
  13. 完全末节区域,对E1/E2和0IA可能有次优。. NSSA对E1/E2可能有次优路径。
  14. 完全NSSA对E1/E2和0IA可能有次优路径。

    4、 0SPF对E2外部路由的选路原则:

  15. 都为E2类型的情况下,cost越小越优先。
  16. 在cost相同的情况下,选择到ASBR的最优路径。
  17. 如还相同则负载均衡。

    5、 0SPF对E1外部路由的选路原则:

  18. 1都为E1类型的情况下,cost越小越优先。
  19. 如果有多条路径的处部代价+到ASBR代价相同则直接进行负载均衡。

二十二、按需链路上的OSPF

1、 0SPF具有抑制hello数据包和LSA重刷新的能力,以便链路不是永久的有效。按需链路最初会执行LSDB同步,之后只会激活这条链路去泛洪有变化的LSA,这些变化包括:

  1. LSA可选字段产生变化
  2. 在老化时间达到时收到了LSA通告的新实例
  3. LSA头部的长度字段发生了变化
  4. LSA的内容发生了变化,不包括头部、校验和或序列号

    2、 按需链路上OSPF的LSA数据包的修改:

  5. 1由于OSPF没有周期性的重复刷新,当LSA到达maxage不会被宣布无效。它通过指定DoNotAge位来完成。 通过DoNotAge位置1, LSA:洪到链路对端,age对端会增加一个InfTransDe lay指定的秒数,当这条LSA被安装如LSDB中不会再老化。
  6. 所有路由器必须能支持DoNotAge位, 因此在所有LSA中增加一个DC位,通过设置此标志,其他路由器就知道该路由器支持按需链路.上的0SPF。

    Ip ospf demand-circuit

    3、 在按需链路上配置0SPF的注意事项:

  7. 只有在区域的LSDB中所有LSA设置了DC位, 设置了DoNotAge位的LSA才被允许进入该区域。
  8. 按需链路0SPF的所在区域内所有路由器都必须支持在按需链路.上的0SPF。
  9. 如果按需链路0SPF在非末节区域实现,那所有非末节区域必须支持按需链路上的0SPF。DC位是在类型5LSA实现的。
  10. 应该把按需链路0SPF的区域限制在stub、 totally stub、NSSA、 totallyNSSA。这样可以限制LSA数量, 也可以取消在所有router支持DC。
  11. 如果DC上有VC,那么此VC被认为按需链路。6 :按需链路的0SPF丧失了稳定性。
  12. 重刷新可以在两端路由器除按需链路的所有接口发生,这有可能导致两端LSA序列号不同。

    4、

二十三、数据包的可选项

1、 DC-bit:当始发路由器支持按需链路上的OSPF时,该比特置1

2、 EA-bit:始发路由器具有接受和转发外部属性LSA时该比特置1

3、 N-bit (NP-bit):只用在hello中,置1则支持NSSA外部属性

4、 LSA,置0则不接受和发送NSSA外部LSA,链路两端设置不一致无法形成邻居,当N=1则E=0, N=0则E=1。

5、 P -bit:只用在ENSSA外部头部。用来告诉NSSA区域的ABR把类型7转为类型5。

6、 MC-bit:当始发路由器支持IP组播,该位被设置,用于MOSPF

7、 E-bit:始发路由器具有接收AS外部LSA (5类)能力时,此位置1。非stub区域一般都设置此比特。不一-致无法形成邻居。

8、 T-bit:当路由器支持TOS时,该比特被置1 (后被MT位替换掉)

9、 L-bit:当0SPF包包含0SPF LLS data block时此位置1,一般都置1,新版本几乎所有hello/DD包都包含这个信息。

10、 0-bit:当始发路由器支持0paque LSA (类型9、10、11)置1。

11、 MT-bit:置1表示路由器支持多拓扑(不广泛使用,只有理论)

12、 DN-bit:避免MPLS VPN环路,在类型3设置DN位后接收路由器不能在0SPF路由计算中使用该LSA.从VPN一个客户端的一个PE学到的路由不能重分布回另一个PE。跨域无效,就是ASBR会删除此位信息。解决方法tag field(5类防环)

二十四、配置OSPF的注意事项

1、 路由进程只在本地有效。当只有一个区域时,不一定是骨干0

2、

  1. passsive-interfack在OSPF中为不收不发hello,将接口被动无法形成邻居。
  2. passsive-interfack在RIP中为只收不发(组播或广播更新),可以配置单播发送更新。
  3. passsive- interfack在EIGRP中为不收不发hello,将接口被动无法形成邻居。
  4. passsive-interfack在ISIS中为不收不发hello (将接口被动会在接口上执行no ip routerisis),但是还会通告该接口网络,而且是没有链路开销的通告。

    3、 OSPF的network命令是从第一条开始往下按顺序执行。(特性: network命令排列深度优先)

    4、 如果0SPF不能发现一个有效的IP地址做他的RID, 那OSPF不会启动。

    5、 OSPF把loopback看成末梢网络,loopback接 口的地址被看成是一个主机路由。

    6、 OSPF使用一个接口IP当做RID,但是这个接口不一定需要运行0SPF。

    7、 OSPF将辅助地址当成末梢网络,从而不会再这些网络发hello包,因此辅助地址无法建邻居。

二十五、OSPF LSDB的过程保护

1、 如果设备运行在一个很大的OSPF路由选择域,而有的设备并没有很强大的内存,那么可以在这台设备配置LSDB的过载保护。命令如下:

Max-lsa ? (OSPF进 程可在LSDB中存储的不是自己的LSA的最大数量)

  1. 可选<1-100> threshold-percentage:达到MAX LSA多大比例后发出警告(默认75%)
  2. 可选超过MAX -LSA后只发出警告! (默认禁用)
  3. 可选<ignore-time 1-17895 分钟>超过MAX- LSA后忽略所有邻居的时间(默认5分钟)
  4. 可选<ignore- count 1-65534> 可以连续进入忽略状态的次数( 默认为5次,超过后永久性关闭)
  5. 可选<rest-time 235791分钟>多长时间后i gnore-count重置为0 (默认10分钟)

二十六、OSPF的路由汇总

1、 路由汇总对0SPF路由选择进程占用的内存、带宽、CPU周期、有直接影响。

2、 不进行汇总所有的LSA都会传播到主干中,导致不必要的网络数据流和路由器开销。因为每当LSA通告后,所有路由器都会用SPF算法进行最短路径计算,每收到一-次计算一次。

3、 汇总后可以减小运算,而且某条链路出现故障,拓扑变化不会传播到主干,这样区域外其他地方将不会发生LSA扩散。

4、 如果这个子网地址被汇总后包含在一个汇总地址中,那么单独的子网和它的稳定性就不再被通告出去了。0SPF中任何汇总范围内更精确的地址都会被抑制!

5、 两种汇总路由的度量值都来源于汇总的明细路由中的最小度量值!

6、 区域间汇总时,ABR只能汇总相连区域的路由。ABR连接areal、 area2它 不能汇总area3的路

7、 区域间路由汇总:区域之间的路由汇总,配置在ABR上。不能汇总(类型5)和类型3)Area ? Range x.x.x.x x.x.x.x (advertise/not-advertise)cost ?汇总路由度量。(advert ise/not-advert ise) ABR是否通告汇总的0IA路由

8、 OSPF汇总后不会自动产生Null口的路由,需要手动配置(用来避免路由黑洞和路由环路)

9、 Discard- router internal ABR汇 总后产生null口路由。无论何时在配置汇总时都应该确认是否为这个汇总地址增加了null路由,也可以用静态路由创建。

10、 部路由汇总:汇总从其他路由选择域注入到OSPF中的路由,配置在ASBR上。

11、 Summary . address x.x.x.x X.x.x.x (not-adverti seASBR不通告汇总的外部路由) tag(标记)外部汇总路由会自动产生nul 1路由(默认执行discard-router external)

二十七、OSPF的认证

1、 通过对邻居进行身份验证,路由器将对收到的每个路由选择更新分组的信源进行身份识别。

2、 默认情况下,OSPF使用身份认证方法为null, OSPF支持简单密码身份认证和MD5身份认证。

3、 3OSPF的MD5身份认证,在每个0SPF分组中加入一个不递减的序列号,防止重放攻

4、 如果配置了区域认证,那么必须在整个区域配置认证。

5、 OSPF的认证信息在0SPF头部,所以不管哪种OSPF包都包含认证信息。每个包都含认证信息。

6、 不管是区域认证还是接口认证,密码类型必须和认证方式相匹配。

7、 设备间认证类型优于区域认证类型。

8、 配置认证后不配置认证密码也可以建立邻接关系。如果要配置,链路上所有路由器都要配置。

9、 只有在配置相应的认证类型后,认证密码才生效。

10、 简单密码的更换需要中断邻接关系,MD5方式可以无缝的切换密码。

11、 0SPF的简单认证(区域认证)

  1. Area 0 authentication在区域间启用了简单认证
  2. Ip ospf authentication key在区域内相应接口配置接口密码。所分配口令不必整个区域- .致,但是一对路由器之间必须相同。

    12、 0SPF的简单认证(设备间认证)

  3. Ip ospf authentication 在设备内启用简单认证
  4. Ip ospf authentication-key在区域内相应接口配置接口密码。也不必区域内一致。
  5. OSPF的MD5认正它会用OSPF数据包内容和密码计算- 个hash值,这个hash值、key-id、和一个不变小的序列号一起传送,拥有相同口令的路由器会计算出相同的hash值。

    13、 OSPF的MD5认证(区域认证)

  6. Area 0 authent icat ion message-digest在区域内启用了MD5认证
  7. Ip ospf message-digest-key key-id (1-255) md5 password 在区域内相应接口配置接口密码。所分配口令不必整个区域-致,但是一-对路由器之间必须相同。
  8. Key-id=0说明没有认证密码。设备两端key- id和密码不一致不能认证成功
  9. 如果同时配置明文认证和MD5认证,MD5认证优于明文认证,明文不起作用!
  10. 如配置了多个key-id,优先使用最后配置的-个key-id。0SPF总是优先使用最后配置的key-id,并且如果收到-一个新的key- id,它就会停止发送旧的key-id.4
  11. 在相邻路由器上,同样的key- id必须对应相同的密钥值。

    14、 OSPF的MD5认证(设备间认证)

  12. Ip ospf authent icat ion message-digest在 设备间启用MD5认证
  13. Ip ospf message- digest-key key-id (1-255) md5 password 特点同上(下面是KID切换实例)
  14. 路由器A和B使用key-id 10进行数据包的交换。这时管理员给A路由器配置了新的key-id 9。
  15. A路由器用新的key-id 9给B路由器发hello包。B路由器收到后如果存在key-id 9那么就停止发送key-id 10,开始发送key-id 9. 这样两端都启用了新的密钥。 H-ma
  16. B路由器收到后如果没有key-id9,它继续发送key-id10,而A路由器每次都发送2个hello包分别为key-id 9和key-id 10。直到B路由器成功的切换掉key-id 10。

二十八、OSPF的虚链路

1、 用于连接分段的骨干区域或将一 -个区域通过中转区域连接到骨干区域。

2、 应该只将虚链路作为临时的解决方案或备用连接,而不应将其作为一种主干设计。

3、 它在两个ABR之间建立逻辑通道,类似于0SPF的邻接关系,但他们不必直接相连。

4、 在虚链路上单播发hello.邻居建立起来后hel lo被抑制,虛链路通告的LSA的DNA (DoNotAge选项被设置,因此不会老化。而且没有每30min的泛洪,因为它被当成DC按需电路。

5、 虚链路所经过的区域叫transit area,它必须拥有完整的路由信息。它不能为stub区域

6、 虚链路配置在两个ABR之间。虚链路的cost也是从出接口累加的,虚链路的网络类型为P2P

7、 虚链路是属于骨干区域0的一个接口。

8、 Area area-id virtual-link router-id (area- id传输区域router- id对端的RID)

9、 virtual-link属 于骨千0区域,所以配 置骨干0区域认证时候,virtual-link 也需配置密码。

10、 Virtual-link只是骨千0的一一个链路,所以它与骨干0区域其他链路配置认证无异

11、 简单设备认证

Area area-id virtual-link router- id authentication

12、 area area-id virtual-link router- id authent icat ion-key

13、 MD5设备认证

area area-id virtual-link router- id authent icat ion message-digesti

area area-id virtual-link router- id message-digest-key ? md5 ?

二十九、默认路由

1、 Default-information originate {always/ metric/metric-typel

2、 向区域内以5类通告默认路由。通告路由器会变成ASBR。

3、 如果没有always选项,那么路由表里面必须有一条缺省的静态路由才能向内通告,always选项不管有没有这条路由都会向OSPF区域内通告默认路由

4、 Metric的缺省为1,可以指定向内通告的缺省路由的度量!

5、 Metric- type指定类型,缺省通告为E2类型。

三十、重分布的默认度量

1、 Default- metric cost

2、 重分布到0SPF的路由,如果redistribute没 有指定度量值的话可以用以上命令分配一个度量值。该度量值不会影响redistribute命令指定的度量值( redistribute的优于default-metric)。

3、 Default-metric cost 对于重分布直连路由无效。

4、 redistribute进0SPF的路由条目缺省metric: BGP为1,其他为20。

三十一、管理距离

1、 用来修改本地路由选择表中所有OSPF路由的管理距离。

2、 Distance ?也可以更改external/inter-area/ intra-area这些类型路由的本地管理

3、 Distance ? Source wildcard ACL可以控制来自哪个源的路由条目的本地管理距离。后面还可以加访问挖制列表控制。

三十二、过滤路由

1、 Distribute-list ? (acl/route- map/prefix) In 阻L:OSPF将LSDB中的LSA放进路

2、 Distribute-list ? In interface- type number阻止从该接口接收的LSA放入路由表

3、 由于该命令只是控制本地路由表的安装,所以不会影响其他路由器的路由表。

4、 对于距离矢量协议(RIP/EIGRP) 该命令可以控制路由表条目从某个接口的发送(out)和接收(in)。但是链路状态协议发送的不是路由条目而是LSA信息,所以该命令在OSPF上只能控制本地路由表。而out参数在OSPF中没有意义,除非过滤从距离矢量协议重分布进0SPF的路由表项!

5、 Distribute-list ? 0ut eigrp 1控制从eigrp进程重分布进OSPF的过滤列表,只out有效

6、 ISIS协议里面没有该命令。BGP的使用和其他距离矢量协议相同,而且可以在nei ghbor后使用。

7、 MOSPF-LSA:Cisco路由器并不支持MOSPF,但缺省情况下会接收类型6的LSA并会产生syslogIgnore lsa mospf 这条命令可以阻止SYSL0G的产生!

8、 等价负载均衡:Maximum-paths 1-16 默认可以在4条链路负载均衡最大16条!默认情况下0SPF只支持等价

三十三、OSPF timers

1、 Timers throttle spf delay interval

2、 De lay:收到拓扑变化到开始用SPF算法计算最短路径的时间间隔。默认为5S。

3、 Interval:连续的使用SPF算法计算的间隔。缺省为10S。这个间隔可以有效的防止网络上的抖动接口导致的频繁的发送LSA拓扑变化而进行SPF计算。

三十四、阻止LSA的扩散

1、 默认情况下,路由器收到LSA的时候会向除收到该LSA的接口外的其他所有接口扩散。Ip ospf database-filter all out用于阻止LSA在使用该命令的接口扩散。

2、 Neighbor x. x.x. x database-filter all out用来防止LSA在非广播网络上泛洪到邻居。

3、 缺省情况下每30min就会更新一次LSA,如果LSA没变化,说明网络很稳定,在网络稳定的情况下每30min一次的LSA重扩散是多余的,我们可以让LSA带DNA位一起发送,同时也抑制了定期更新,只有发生变化时LSA才被重扩散。

4、 Ip ospf flood-reduction 使用时邻居关系会被重置。

三十五、Clear commands

1、 Clear ip ospf ospf-id conuters (int, neighbor/清空邻居状态变换计数器。

2、 Clear ip ospf process重启OSPF进程。

3、 Clear ip ospf redistribute 清除重分布进0SPF的路由条目。

三十六:OSPF常用的查看命令

1、 查看(router-id)路由器通过的路由条目Show ip ospf database adv-router router-id

2、 查看有自己通告的LSA信息Show ip ospf database self-originate

3、 查看接口上待泛洪排队列的LSA列表Show ip ospf floot-list

4、 查看路由器在接口上的请求LSA的情况Show ip ospf request-list

5、 显示等待重传的LSA列表Show ip ospf reteansmission

6、 显示在路由器上已经配置了的汇聚地址Show ip ospf summary-address

7、 显示一个OSPF邻接关系形成的过程Debug ip ospf adj

8、 显示OSPF的SPF的计算过程Debug ip ospf spf

9、 显示OSPF的事件(邻接关系形成、SPF算法、DR的选举、LSA扩散等)Debug ip ospf evevt

继续阅读