OSPF Alarm for %OSPF-4-FLOOD_WAR

根据下面的logging复习各个知识点

1w0d: OSPF: DR/BDR election on TenGigabitEthernet6/4
1w0d: OSPF: Elect BDR 0.0.0.0
1w0d: OSPF: Elect DR 7.7.7.7
1w0d:        DR: 7.7.7.7 (Id)   BDR: none
1w0d: OSPF: Rcv DBD from 8.8.8.8 on TenGigabitEthernet6/4 seq 0x2011 opt 0x2 flag 0x2 len 1472  mtu 0 state EXSTART
!---定义option的类型,详细参考TCP/IP卷一,这里0x2如下所示
Options: 0x02 (E)
0... .... = DN: DN-bit is NOT set
.0.. .... = O: O-bit is NOT set
..0. .... = DC: Demand circuits are NOT supported
...0 .... = L: The packet does NOT contain LLS data block
.... 0... = NP: Nssa is NOT supported
.... .0.. = MC: NOT multicast capable
.... ..1. = E: ExternalRoutingCapability
.... ...0 = MT
1w0d: OSPF: NBR Negotiation Done. We are the MASTER
1w0d: OSPF: Send DBD to 8.8.8.8 on TenGigabitEthernet6/4 seq 0x2012 opt 0x52 flag 0x3 len 1452

!---定义更新报文中的flag类型,详细参考TCP/IP卷一,这里0x3如下所示
Flags: 0x03 (E)
.... .0.. = V: NO Virtual link endpoint
.... ..1. = E: AS boundary router
.... ...1 = B: NO Area border router
!---正确的解释在回复中
1w0d: OSPF: Database request to 8.8.8.8
1w0d: OSPF: sent LS REQ packet to 78.1.1.8, length 204
1w0d: OSPF: Rcv DBD from 8.8.8.8 on TenGigabitEthernet6/4 seq 0x201D opt 0x2 flag 0x2 len 1472  mtu 0 state EXCHANGE
1w0d: OSPF: Send DBD to 8.8.8.8 on TenGigabitEthernet6/4 seq 0x201E opt 0x52 flag 0x3 len 1452
!---这里面的length是除去了20字节的ip header包头
1w0d: OSPF: Rcv DBD from 8.8.8.8 on TenGigabitEthernet6/4 seq 0x201E opt 0x2 flag 0x2 len 1472  mtu 0 state EXCHANGE
1w0d: OSPF: Send DBD to 8.8.8.8 on TenGigabitEthernet6/4 seq 0x201F opt 0x52 flag 0x3 len 1452
......
Jan 1 06:21:34: %OSPF-4-FLOOD_WAR: Process 99 flushes LSA ID 1.1.1.1 type-2 adv-rtr 8.8.8.8 in area 12
Jan 1 06:23:13: %OSPF-4-FLOOD_WAR: Process 99 flushes LSA ID 1.1.1.1 type-2 adv-rtr 8.8.8.8 in area 12

从信息中能总结出以下几点:

1. 关于opt、flag和len这三个值,会出现在“debug ip ospf ad”中,我在上面已简单总结了
2. 在本例中,7.7.7.7是本地路由器,此处是DR;8.8.8.8是对端路由器,此处是BRD
3. 在本例中,78.1.1.7是本路由器的地址;78.1.1.8是互联设备的地址
4. LSA ID也可以缩写成LSID,这个就是LSA,可在数据库中查看
5. “adv-rtr”就是“Advertising Router” ,从这里可看出此LSID发送于哪个路由器

OSPF-4-FLOOD_WAR

%OSPF-4-FLOOD_WAR: Process 99 flushes LSA ID 1.1.1.1 type-2 adv-rtr 8.8.8.8 in area 12

Refer to bug:  CSCsi11438
If router receives a network LSA whose LSA ID is same as IP address on his interface, router should flush such LSA out of the network. Previously we flushed LSA with a sequence number which had LSA in the dbase, which in some cases was not the highest number therefore we could end up in the situation when SQ# in dbase was smaller than in the rest of the area but age was huge. LSA was in stuck on the retransmission list.

With this fix router flushes LSA using highest SQ#, so in the case of duplicate IP addresses a flooding war can be expected (one router originates an LSA, second one fluses it).

This fix also introduces error message to detect a flooding war.

分析

根据上面的官方解释,可以分析出8.8.8.8发送的type2的LSA 1.1.1.1跟7.7.7.7路由器的地址冲突了。检查配置发现确实有一个端口的地址被配置了1.1.1.1并network了,移除此配置后,路由器恢复正常。
那么8.8.8.8的路由器在什么情况下会发送type2的LSA 1.1.1.1呢?
正常情况下,type2的LSA应该是直连的局域网地址,在此例中,8.8.8.8应该发送type2的LSA 78.1.1.8
(对于type2的结构可以看我之前的文章,里面有分析,可做参考《CCIE SP-OSPF 小结2-数据库》)。
还有一种情况可以产生其他type2的LSA,如下图所示:

虽然8.8.8.8把type2的1.1.1.1 LSA发送给了另一台设备,但是为了同步数据库,他也会发送给7.7.7.7,这样就会存在此文讨论的问题了。

本文出自 Frank's Blog

版权声明:


本文链接:OSPF Alarm for %OSPF-4-FLOOD_WAR
版权声明:本文为原创文章,仅代表个人观点,版权归 Frank Zhao 所有,转载时请注明本文出处及文章链接
你可以留言,或者trackback 从你的网站

No Responses to “OSPF Alarm for %OSPF-4-FLOOD_WAR”

  1. Kenny说道:

    我居然一个都看不懂,自我反省一下

  2. zefa说道:

    1w0d: OSPF: Send DBD to 8.8.8.8 on TenGigabitEthernet6/4 seq 0x2012 opt 0x52 flag 0x3 len 1452

    !—定义更新报文中的flag类型,详细参考TCP/IP卷一,这里0x3如下所示
    Flags: 0x03 (E)
    …. .0.. = V: NO Virtual link endpoint
    …. ..1. = E: AS boundary router
    …. …1 = B: NO Area border router

    ————————————————————————
    你的这个解释不正解,这里的ox3应该是
    I M M/S
    0 1 1

  3. zefa说道:

    并且DBD分组中不含:V E B位,V E B应该包含在LSU中

  4. frank说道:

    多谢纠正!DBD的Flags确实不是VEB:

    Open Shortest Path First
    OSPF Header
    OSPF DB Description
    Interface MTU: 1500
    Options: 0x02 (E)
    DB Description: 0x07 (I, M, MS)
    …. 0… = R: OOBResync bit is NOT set
    …. .1.. = I: Init bit is SET
    …. ..1. = M: More bit is SET
    …. …1 = MS: Master/Slave bit is SET
    DD Sequence: 1098361214

留言哦

blonde teen swallows load.xxx videos