Hi All,I have a working OSPFv2 session in Full state, between bird and
flock. On restarting the ospf session from bird, while it is already in full state, following log messages were seen, which claims that bird had received a LSA with invalid checksum from flock. After a brief troubleshooting session with the flock developers, it was found that bird complains about an LSA that it itself had originated and sent to flock earlier. Flock doesn't modify anything in the LSA and sends it back in the LSUpd when it receives a LSReq
Here 1.1.1.1 is flock and 100.100.100.100 is bird
2023-03-02 10:07:30.421 <TRACE> ospf1: HELLO packet received from nbr 1.1.1.1 on bird-0-0-L
2023-03-02 10:07:35.318 <TRACE> ospf1: LSREQ packet sent to nbr 1.1.1.1 on bird-0-0-L
2023-03-02 10:07:35.318 <TRACE> ospf1: length 36
2023-03-02 10:07:35.318 <TRACE> ospf1: router 100.100.100.100
2023-03-02 10:07:35.318 <TRACE> ospf1: LSR Type: 0001, Id: 100.100.100.100, Rt: 100.100.100.100
2023-03-02 10:07:35.322 <TRACE> ospf1: LSUPD packet received from nbr 1.1.1.1 on bird-0-0-L
2023-03-02 10:07:35.322 <TRACE> ospf1: length 64
2023-03-02 10:07:35.322 <TRACE> ospf1: router 1.1.1.1
2023-03-02 10:07:35.322 <TRACE> ospf1: LSA Type: 0001, Id: 100.100.100.100, Rt: 100.100.100.100, Seq: 80000003, Age: 2101, Sum: 1984
2023-03-02 10:07:35.322 <RMT> ospf1: Bad LSA (Type: 2001, Id: 100.100.100.100, Rt: 100.100.100.100) in LSUPD
2023-03-02 10:07:35.322 <RMT> ospf1: received from nbr 1.1.1.1 on bird-0-0-L - support@flocknetworks.com
I have attached the full ospf logs from bird and the ospf packet captures using tshark along with this. Can someone have a look and check if it is possible for bird to generate LSA with wrong checksum?
Bird config:
============
log "/var/log/bird.log" all;
router id 100.100.100.100;
protocol device {
scan time 10;
}
ipv4 table table1;
protocol bfd bfd_bird {
interface "*" {
interval 0 us;
multiplier 3;
};
}
protocol ospf v2 ospf1 {
area 0.0.0.0 {
networks {
10.100.1.0/24;
};
interface "bird-0-0-L" {
hello 10;
dead 40;
bfd on;
};
};
ipv4 {
table table1;
export all;
import all;
};
}
protocol static static1 {
ipv4 {
table table1;
export all;
import all;
};
route 200.1.1.1/32 via 10.100.1.11;
route 200.1.1.2/32 via 10.100.1.11;
route 200.1.1.3/32 via 10.100.1.11;
route 200.1.1.4/32 via 10.100.1.11;
route 200.1.1.5/32 via 10.100.1.11;
route 200.1.1.6/32 via 10.100.1.11;
route 200.1.1.7/32 via 10.100.1.11;
route 200.1.1.8/32 via 10.100.1.11;
route 200.1.1.9/32 via 10.100.1.11;
route 200.1.1.10/32 via 10.100.1.11;
}
Regards
Prem