Opened 7 years ago

Closed 7 years ago

#262 closed баг (fixed)

Не отправляются SNMP TRAP'ы

Reported by: alx Owned by: alx
Priority: средний Milestone: 1 очередь
Component: swd Keywords:
Cc:

Description

Обнаружено странное явление.

Есть блок, в конфиге которого сконфигурирован трапсинк test версии 1, хост kolez.com. В веб-интерфейсе заходим в свойства этого трапсинка и меняем версию на 2c, имя хоста на 192.168.0.75. после этого тестовый TRAP на хост 192.168.0.75 не приходит. Также не приходят TRAP'ы, если активировать трапсинк и сделать аварию.

Если удалить трапсинк и создать новый, в котором сразу записать v2c и хост 192.168.0.75, тестовые TRAP'ы приходят.

Change History (4)

comment:1 by alx, 7 years ago

Проверка показала, что после изменения имени хоста тестовые TRAP'ы продолжают отправляться по старому IP адресу (то есть в данном случае на kolez.com).

comment:2 by alx, 7 years ago

Причина выяснена. Так как у kolez.com есть и IPv4, и IPv6 адреса, то поле ipv6 трапсинка заполнено. При смене имени хоста на 192.168.0.75 новое имя ресолвится только в адрес IPv4, а поле ipv6 так и продолжает содержать адрес предыдущего хоста. А так как IPv6 имеет приоритет перед IPv4, TRAP'ы отправляются по адресу IPv6 на старый хост.

comment:3 by alx, 7 years ago

Как показало расследование, в случае, если вместо имени хоста указывается IP адрес, даже если семейство адреса не соответствует семейству запроса (запрашиваем адрес IPv6, а вместо имени хоста указываем адрес IPv4), то callback-функция вызывается с успешным статусом, но struct hostent при этом содержит ответ с семейством AF_INET вместо ожидаемого AF_INET6.

В результате всего этого полученный адрес записывается в trapsink->ipv4, а в trapsink->ipv6 остается старое значение, которое и продолжает использоваться.

comment:4 by alx, 7 years ago

Resolution: fixed
Status: newclosed

In 1553/sw:

При резолвинге адресов трапсинков добавлена проверка соответствия семейства адресов запроса
семейству адресов полученного ответа. Если ответ принадлежит не к тому семейству, которое
запрашивалось, резолвинг считается неуспешным. Closes #262.

Note: See TracTickets for help on using tickets.