system/5192: ospfd: Problem to restore adjacency after reconnecting cable.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

system/5192: ospfd: Problem to restore adjacency after reconnecting cable.

bear-8
>Number:         5192
>Category:       system
>Synopsis:       ospfd: Problem to restore adjacency after reconnecting cable.
>Confidential:   yes
>Severity:       serious
>Priority:       high
>Responsible:    bugs
>State:          open
>Quarter:        
>Keywords:      
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 02 14:20:01 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Per Bjvrn
>Release:        3.9
>Organization:
net
>Environment:
        System      : OpenBSD 3.9
        Architecture: OpenBSD.i386
        Machine     : i386
>Description:

After removing and restoring the connectivity betweene two openBSD boxes running openospfd the routers get stuck one in 2-WAY and one in EXSTART state, instead of reaching FULL.

Restarting either ospfd will restore normal operation.

If you run ospfd in debugmode you will get the following output.

==== Machine 1 ====
startup
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface xl0
if_fsm: event UP resulted in action START and changing state for interface xl0 from DOWN to WAITING
start_spf_timer: IDLE -> DELAY
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
spf_timer: state HOLD -> IDLE
if_act_elect: interface xl0 old dr none new dr 10.35.37.4, old bdr none new bdr none
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface xl0
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface xl0
if_fsm: event WAITTIMER resulted in action ELECT and changing state for interface xl0 from WAITING to DR
nbr_fsm: event HELLO_RECEIVED resulted in action START_INACTIVITY_TIMER and changing state for neighbor ID 10.35.37.5 from DOWN to INIT
nbr_fsm: event 2_WAY_RECEIVED resulted in action EVAL and changing state for neighbor ID 10.35.37.5 from INIT to EXSTART
if_act_elect: interface xl0 old dr 10.35.37.4 new dr 10.35.37.4, old bdr none new bdr 10.35.37.5
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface xl0
if_fsm: event NEIGHBORCHANGE resulted in action ELECT and changing state for interface xl0 from DR to DR
nbr_fsm: event NEGOTIATION_DONE resulted in action SNAPSHOT and changing state for neighbor ID 10.35.37.5 from EXSTART to SNAPSHOT
if_act_elect: interface xl0 old dr 10.35.37.4 new dr 10.35.37.4, old bdr 10.35.37.5 new bdr 10.35.37.5
if_fsm: event NEIGHBORCHANGE resulted in action ELECT and changing state for interface xl0 from DR to DR
nbr_fsm: event SNAPSHOT_DONE resulted in action SNAPSHOT_DONE and changing state for neighbor ID 10.35.37.5 from SNAPSHOT to EXCHANGE
nbr_fsm: event EXCHANGE_DONE resulted in action EXCHANGE_DONE and changing state for neighbor ID 10.35.37.5 from EXCHANGE to LOADING
start_spf_timer: IDLE -> DELAY
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: transit net, interface xl0
nbr_fsm: event LOADING_DONE resulted in action NOTHING and changing state for neighbor ID 10.35.37.5 from LOADING to FULL
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: w id 10.35.37.5 type 1 has
    no link to v id 10.35.37.4 type 2
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
ls_retrans_list_del: invalid LS ack received, neighbor 10.35.37.5
start_spf_timer: HOLD -> HOLDQUEUE
spf_timer: HOLDQUEUE -> DELAY
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
spf_timer: state HOLD -> IDLE
orig_rtr_lsa: area 0.0.0.0
if_act_elect: interface xl0 old dr 10.35.37.4 new dr 10.35.37.4, old bdr 10.35.37.5 new bdr none
orig_rtr_lsa: area 0.0.0.0
if_fsm: event NEIGHBORCHANGE resulted in action ELECT and changing state for interface xl0 from DR to DR
nbr_fsm: event KILL_NBR resulted in action DELETE and changing state for neighbor ID 10.35.37.5 from FULL to DOWN
orig_rtr_lsa: area 0.0.0.0
if_fsm: event DOWN resulted in action RESET and changing state for interface xl0 from DR to DOWN
start_spf_timer: IDLE -> DELAY
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
spf_timer: state HOLD -> IDLE
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface xl0
if_fsm: event UP resulted in action START and changing state for interface xl0 from DOWN to WAITING
start_spf_timer: IDLE -> DELAY
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
spf_timer: state HOLD -> IDLE
nbr_fsm: event HELLO_RECEIVED resulted in action START_INACTIVITY_TIMER and changing state for neighbor ID 10.35.37.5 from DOWN to INIT
nbr_fsm: event 2_WAY_RECEIVED resulted in action EVAL and changing state for neighbor ID 10.35.37.5 from INIT to 2-WAY
if_fsm: event NEIGHBORCHANGE resulted in action NOTHING and changing state for interface xl0 from WAITING to WAITING
if_act_elect: interface xl0 old dr none new dr 10.35.37.5, old bdr none new bdr none
nbr_fsm: event ADJ_OK resulted in action EVAL and changing state for neighbor ID 10.35.37.5 from 2-WAY to EXSTART
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface xl0
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface xl0
if_fsm: event WAITTIMER resulted in action ELECT and changing state for interface xl0 from WAITING to DROTHER
nbr_adj_timer: failed to form adjacency with 10.35.37.5
nbr_adj_timer: failed to form adjacency with 10.35.37.5
if_act_elect: interface xl0 old dr 10.35.37.5 new dr 10.35.37.4, old bdr none new bdr none
if_join_group: error IP_ADD_MEMBERSHIP, interface xl0
if_act_elect: error joining group 224.0.0.6, interface xl0
if_fsm: error changing state for interface xl0, event NEIGHBORCHANGE, state DROTHER
nbr_fsm: event KILL_NBR resulted in action DELETE and changing state for neighbor ID 10.35.37.5 from EXSTART to DOWN
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface xl0
if_fsm: event DOWN resulted in action RESET and changing state for interface xl0 from DROTHER to DOWN
if_del: interface xl0
if_del: interface xl0
ospf engine exiting
fatal in parent: pipe closed
route decision engine exiting
===================

==== Machine 2 ====
startup
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface bge0
if_fsm: event UP resulted in action START and changing state for interface bge0 from DOWN to WAITING
start_spf_timer: IDLE -> DELAY
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
nbr_fsm: event HELLO_RECEIVED resulted in action START_INACTIVITY_TIMER and changing state for neighbor ID 10.35.37.4 from DOWN to INIT
nbr_fsm: event 2_WAY_RECEIVED resulted in action EVAL and changing state for neighbor ID 10.35.37.4 from INIT to 2-WAY
if_act_elect: interface bge0 old dr none new dr 10.35.37.4, old bdr none new bdr 10.35.37.5
nbr_fsm: event ADJ_OK resulted in action EVAL and changing state for neighbor ID 10.35.37.4 from 2-WAY to EXSTART
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface bge0
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface bge0
if_fsm: event BACKUPSEEN resulted in action ELECT and changing state for interface bge0 from WAITING to BACKUP
if_act_elect: interface bge0 old dr 10.35.37.4 new dr 10.35.37.4, old bdr 10.35.37.5 new bdr 10.35.37.5
if_fsm: event NEIGHBORCHANGE resulted in action ELECT and changing state for interface bge0 from BACKUP to BACKUP
nbr_fsm: event NEGOTIATION_DONE resulted in action SNAPSHOT and changing state for neighbor ID 10.35.37.4 from EXSTART to SNAPSHOT
nbr_fsm: event SNAPSHOT_DONE resulted in action SNAPSHOT_DONE and changing state for neighbor ID 10.35.37.4 from SNAPSHOT to EXCHANGE
nbr_fsm: event EXCHANGE_DONE resulted in action EXCHANGE_DONE and changing state for neighbor ID 10.35.37.4 from EXCHANGE to LOADING
start_spf_timer: HOLD -> HOLDQUEUE
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: transit net, interface bge0
nbr_fsm: event LOADING_DONE resulted in action NOTHING and changing state for neighbor ID 10.35.37.4 from LOADING to FULL
spf_timer: HOLDQUEUE -> DELAY
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: w id 10.35.37.4 type 1 has
    no link to v id 10.35.37.4 type 2
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
spf_timer: state HOLD -> IDLE
start_spf_timer: IDLE -> DELAY
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
spf_timer: state HOLD -> IDLE
if_fsm: event WAITTIMER resulted in action NOTHING and changing state for interface bge0 from BACKUP to BACKUP
orig_rtr_lsa: area 0.0.0.0
if_act_elect: interface bge0 old dr 10.35.37.4 new dr 10.35.37.5, old bdr 10.35.37.5 new bdr none
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: area 0.0.0.0
if_fsm: event NEIGHBORCHANGE resulted in action ELECT and changing state for interface bge0 from BACKUP to DR
nbr_fsm: event KILL_NBR resulted in action DELETE and changing state for neighbor ID 10.35.37.4 from FULL to DOWN
orig_rtr_lsa: area 0.0.0.0
if_fsm: event DOWN resulted in action RESET and changing state for interface bge0 from BACKUP to DOWN
start_spf_timer: IDLE -> DELAY
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
spf_timer: state HOLD -> IDLE
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface bge0
if_fsm: event UP resulted in action START and changing state for interface bge0 from DOWN to WAITING
start_spf_timer: IDLE -> DELAY
nbr_fsm: event HELLO_RECEIVED resulted in action START_INACTIVITY_TIMER and changing state for neighbor ID 10.35.37.4 from DOWN to INIT
spf_calc: calculation started, area ID 0.0.0.0
spf_calc: calculation ended, area ID 0.0.0.0
spf_start_holdtimer: DELAY -> HOLD
spf_timer: state HOLD -> IDLE
nbr_fsm: event 2_WAY_RECEIVED resulted in action EVAL and changing state for neighbor ID 10.35.37.4 from INIT to 2-WAY
if_act_elect: interface bge0 old dr none new dr 10.35.37.5, old bdr none new bdr 10.35.37.4
if_join_group: error IP_ADD_MEMBERSHIP, interface bge0
if_act_elect: error joining group 224.0.0.6, interface bge0
if_fsm: error changing state for interface bge0, event WAITTIMER, state WAITING
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
recv_db_description: packet ignored in state 2-WAY, neighbor ID 10.35.37.4
if_act_elect: interface bge0 old dr 10.35.37.5 new dr 10.35.37.5, old bdr 10.35.37.4 new bdr none
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface bge0
if_fsm: event NEIGHBORCHANGE resulted in action ELECT and changing state for interface bge0 from DR to DR
nbr_fsm: event KILL_NBR resulted in action DELETE and changing state for neighbor ID 10.35.37.4 from 2-WAY to DOWN
orig_rtr_lsa: area 0.0.0.0
orig_rtr_lsa: stub net, interface bge0
if_fsm: event DOWN resulted in action RESET and changing state for interface bge0 from DR to DOWN
if_del: interface bge0
if_del: interface bge0
route decision engine exiting
fatal in parent: pipe closed
ospf engine exiting
===================

>How-To-Repeat:
Configure two OpenBSD machines and configure OSPF on them. Connect one interface on each machine using a crossover cable. Wait for ospf to start. OSPF are now working. Unplug the crossover cable and reconnect it after a minute or so. Ospf are not working.

ospfd.conf as follows where used.

==== Machine 1 ====
# $OpenBSD: ospfd.conf,v 1.2 2005/02/06 20:07:09 norby Exp $

# macros
password="secret"

# global configuration
router-id 10.35.37.4
# fib-update no
# spf-delay 1
# spf-holdtime 5

# auth-key $password
# auth-type simple
# hello-interval 10
# metric 10
# retransmit-interval 5
# router-dead-time 40
router-priority 1
# transmit-delay 1

# areas
#area 0.0.0.5 {
        #interface em0 {
                #auth-type simple
                #auth-key $password
        #}
#
        #interface em1 {
                #auth-type simple
                #auth-key unknown
        #}
#}

area 0.0.0.0 {
        interface xl0 {
                auth-md 1 testkey
                auth-type none
                auth-md-keyid 1
        }
}
===================


==== Machine 2 ====
# $OpenBSD: ospfd.conf,v 1.2 2005/02/06 20:07:09 norby Exp $

# macros
password="secret"

# global configuration
router-id 10.35.37.5
# fib-update no
# spf-delay 1
# spf-holdtime 5

# auth-key $password
# auth-type simple
# hello-interval 10
# metric 10
# retransmit-interval 5
# router-dead-time 40
router-priority 1
# transmit-delay 1

# areas
area 0.0.0.0 {
        interface bge0 {
                auth-type none
        }
}
===================
       
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
 >fIX: