When an LSAck for an older LSA is received...
ChuYinsu
yst.cyan at gmail.com
Wed May 13 14:06:53 CEST 2009
Hi, when I was testing BIRD in the lab, I encountered a question.
First, this is the topology, which is a very simple one, two computers
connect each other via a twisted pair:
Laptop(eth0,
192.168.0.1)---------Point-to-Point---------(eth0,
192.168.0.2)Personal Computer(PC)
| | |
| |
| | |
| |
----- | -------------
----- -----
| | |
| |
tap0 eth1 tap1
tap0 tap1
10.1.1.2/16 10.32.31.239/16 10.2.1.2/16
11.1.1.2/16 11.2.1.2/16
And following is part of the Wireshark capture file(plus my
understandings behind "//"):
NO. Time Source Destination Proto. Info.
7 14.064842000 192.168.0.2 192.168.0.1 OSPF DB Descr.
8 14.066061000 192.168.0.1 192.168.0.2 OSPF DB Descr.
9 14.067224000 192.168.0.2 192.168.0.1 OSPF DB Descr.
10 14.067619000 192.168.0.1 192.168.0.2 OSPF DB Descr.
//Above is the Master/Slave negotiation and the DD packets
transferring procedure.
12 17.071181000 192.168.0.2 224.0.0.5 OSPF Hello Packet
13 17.071241000 192.168.0.1 192.168.0.2 OSPF LS Request
14 17.071563000 192.168.0.2 192.168.0.1 OSPF LS Update //Age: 9secs,
SeqNum: 0x80000001, Checksum: 0x2351
//After exchanging DD packets, Laptop requires LSA from the PC. And
now in Laptop, the conversation between PC and Laptop has been in
state FULL.
15 18.073167000 192.168.0.1 224.0.0.5 OSPF LS Update //Age: 1sec,
SeqNum: 0x80000002, Checksum: 0x366b
//Before PC is going to send LSR packet to Laptop, Laptop has flooded
its newly originated LSA. When PC receives this LSU packet, it removes
its LSR packet on the list.
//And now in PC, the conversation between PC and Laptop has been in state FULL.
18 19.074720000 192.168.0.2 224.0.0.5 OSPF LS Update //Age: 1sec,
SeqNum: 0x80000002, Checksum: 0xae33
//So the PC also originates its new LSA and floods it.
19 19.075041000 192.168.0.1 192.168.0.2 OSPF LS Acknowledge
//This is for the No.14 LSU packet, delayed.
20 19.077611000 192.168.0.2 192.168.0.1 OSPF LS Acknowledge
//This is for the No.15 LSU packet, delayed.
21 20.079119000 192.168.0.1 224.0.0.5 OSPF Hello Packet
24 24.083617000 192.168.0.2 192.168.0.1 OSPF LS Update
//Here is the question, why this LSU is sent?
25 25.090754000 192.168.0.1 192.168.0.2 OSPF LS Acknowledge
//This is for the No.24 LSU packet.
26 27.093352000 192.168.0.2 224.0.0.5 OSPF Hello Packet
27 30.096506000 192.168.0.1 224.0.0.5 OSPF Hello Packet
After checking debugging information in the syslog, I thought the
reason might be this:
In the PC's syslog, after the PC receiving the No.19 LSAck, here are some lines:
(time information, etc.) test-ubuntu bird: testing_ospf: I have: Age:
0, Seqno: 0x80000002, Sum: 44595
(time information, etc.) test-ubuntu bird: testing_ospf: He has: Age:
9, Seqno: 0x80000001, Sum: 9041
It seems that it's comparing the received LSAck with the LSA in the
LSDB. PC finds that the LSU that the LSAck acknowledges cannot be
found in the LSDB - however there's a newer one. So the PC simply
sends another newer LSU(which is the No.24 packet) to Laptop. Is this
right?
However, where is the corresponding operation described in RFC 2328? I
searched the Section 13.7 Receiving link state acknowledgments without
any results.
Thanks!
More information about the Bird-users
mailing list