NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: andrey--k on June 04, 2014, 04:03:40 PM

Title: дубликаты. lo/32
Post by: andrey--k on June 04, 2014, 04:03:40 PM
Обнаружил некорректное поведение.
Устройства:
System Description=Cisco IOS Software, s2t54 Software (s2t54-IPSERVICESK9-M), Version 15.0(1)SY2, RELEASE SOFTWARE (fc4) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2012 by Cisco Systems, Inc. Compiled Tue 10-Jul-12 13:35 by prod_rel_team
SNMP Object ID=.1.3.6.1.4.1.9.1.896)

На устройствах настроены адреса на подобии 192.168.0.1/32 на интерфейсах loopback.
Данные адреса доступны для netxms.
Отдельно существует этот же сегмент с маской /24.
При динамическом сканировании этой подсети создаются дубликаты данных устройств.
Причем при каждом сканировании.
Как можно бороться с подобным поведением?
Title: Re: дубликаты. lo/32
Post by: Victor Kirhenshtein on June 06, 2014, 04:08:33 PM
А как выглядит список интерфейсов в NetXMS для этих устройств?
Title: Re: дубликаты. lo/32
Post by: andrey--k on June 10, 2014, 10:18:14 AM
Да так же как и у остальных...
Особых отличий кроме интерфейсов lo - нет.
Title: Re: дубликаты. lo/32
Post by: Victor Kirhenshtein on June 11, 2014, 11:26:24 AM
А можно его прислать? Возможно я все-таки увижу что-то подозрительное.
Title: Re: дубликаты. lo/32
Post by: andrey--k on June 11, 2014, 02:30:21 PM
Выслал приватным сообщением результаты запросов:
select * from nodes N
left JOIN OBJECT_PROPERTIES O_N on O_N.OBJECT_ID = N.id
where N.PRIMARY_NAME in (':1',':2',':3');

select * from nodes N
left JOIN INTERFACES I on N.ID = I.NODE_ID
left JOIN OBJECT_PROPERTIES O_I on O_I.OBJECT_ID = I.id
where N.PRIMARY_NAME in (':1',':2',':3');
Title: Re: дубликаты. lo/32
Post by: Victor Kirhenshtein on June 12, 2014, 10:57:17 PM
Происходит это так: NetXMS исключает loopback интерфейсы из топологии (что вроде как правильно). Loopback интерфейс определяется по адресу (из 127.0.0.0/8) или по типу (24 - software loopback). При дисковери проверяется, есть ли уже найденный IP адрес в системе. Поскольку loopback интерфейсы исключены из топологии, адрес не находится - создается новая нода. И так далее. Если таких устройств немного - можно добавить их адреса в фильтр discovery. Какой правильное решение - пока не знаю, возможно добавить конфигурационный параметр, который разрешит учет loopback в топологии если у них адреса не из 127.0.0.0/8?
Title: Re: дубликаты. lo/32
Post by: andrey--k on June 13, 2014, 08:04:50 AM
По большому счету, данная ситуация - нарушение rfc.
Можно ли будет генерировать системный алерт на такое событие?
Девайсов не много, всего 30 или 40 маршрутизаторов. Буду добавлять в фильтр и ругатся с сетевиками...
Title: Re: дубликаты. lo/32
Post by: Victor Kirhenshtein on June 13, 2014, 12:37:18 PM
Можно сделать такой configuration poll hook скрипт:


foreach(i : GetNodeInterfaces($node))
{
   if ((i->ifType == 24) && !AddrInSubnet(i->ipAddr, "127.0.0.1", "255.0.0.0"))
   {
      PostEvent($node, "BAD_LOOPBACK_CONFIG", null, i->name);
   }
}


Он будет посылать событие с именем BAD_LOOPBACK_CONFIG на каждый найденный интерфейс с типом 24 и адресом не из 127.0.0.0/8. Естественно, событие должно быть сначала создано. В %1 попадет имя интерфейса.