OSPF Error: LSA checksum validation failure — Повреждение памяти/транспорта
В процессе работы OSPF маршрутизатор начинает непрерывно сбрасывать LSA из базы данных или отправляет аварийные Link State Acknowledgment. В логах:
%OSPF-4-CSUM_ERR: LSA checksum error detected: Type 1, LSID 10.255.0.1, Adv Rtr 10.255.0.1, Checksum 0x1A2B (Expected 0x9F4C)
%OSPF-4-LSA_CORRUPT: Discarding corrupted LSA from neighbor 192.168.10.1 on TenGigabitEthernet0/0/0
%OSPF-5-ADJCHANGE: Neighbor 192.168.10.1 Down: Interface flap / Checksum error rate exceeded
%OSPF-3-BADLSA: Invalid LSA length or Fletcher checksum failed- Циклический рост значения
LSA Ageдо 3600 (MaxAge) и принудительное удаление из LSDB. - Высокая частота прерываний процессора из-за пересчета Fletcher Checksum.
- Файловер и рассинхронизация базы данных между основным и резервным супервизором.
1. Принцип вычисления Fletcher Checksum в OSPF (RFC 2328)
Каждый LSA-заголовок содержит 16-битное поле Checksum, рассчитываемое по алгоритму Флетчера (Fletcher's Checksum):
- Контрольная сумма покрывает все тело LSA, исключая 16-битное поле
LS Age(которое инкрементируется каждую секунду во время хранения в RAM). - Если при получении LSU или при периодическом сканировании LSDB сумма не сходится, LSA считается поврежденной и немедленно вычищается (MaxAge reflood).
2. Выявление источника повреждения (Hardware vs Transport)
Повреждение LSA вызывается одной из трех причин:
- Аппаратный сбой RAM/ASIC: Битая память Control Plane (bit-flip в незащищенной памяти маршрутизатора).
- Повреждение при передаче в L2: Ошибки CRC/FCS на физическом порту, сбои оптического трансивера (SFP+) или сбои коммутатора между соседями.
- Баг в микрокоде/IOS: Ошибка упаковки мульти-LSA в один пакет Link State Update.
3. Диагностика ошибок на физическом уровне и памяти
# Cisco IOS-XE
show interfaces counters errors
show ip ospf database router adv-router 10.255.0.1
show memory statistics
show platform hardware integrity
# Junos
show interfaces extensive | match "CRC|Errors|Drops"
show ospf database detail | match "Checksum"4. Принудительная очистка и перегенерация базы данных
# Cisco IOS-XE: Полный сброс OSPF базы соседа
clear ip ospf 1 process
# Junos
clear ospf database Частые вопросы (FAQ)
Почему поле LS Age не учитывается в контрольной сумме LSA?
LS Age постоянно увеличивается всеми маршрутизаторами в процессе хранения в оперативной памяти и передачи по сети. Если бы оно входило в контрольную сумму, маршрутизаторам пришлось бы полностью пересчитывать Fletcher Checksum каждую секунду для каждого LSA в базе.
Что делает маршрутизатор при обнаружении битого LSA в своей памяти?
Он устанавливает для этого LSA возраст MaxAge (3600 секунд) и лавинно рассылает его по сети, чтобы удалить поврежденную запись из баз всех соседей, после чего запрашивает свежую копию через Link State Request.
Как часто OSPF выполняет фоновую валидацию контрольных сумм базы?
Маршрутизаторы запускают фоновый процесс (LSA checksum pacing / refresh) каждые 10 минут (600 секунд) для подтверждения целостности всей базы LSDB.
Может ли расхождение MTU вызывать ошибку LSA checksum?
Нет. При расхождении MTU пакеты фрагментируются или отбрасываются целиком. Ошибка Checksum указывает исключительно на повреждение содержимого байтов полезной нагрузки.