Как выборочно использовать несколько интерфейсов с сетевым SNMP?

У меня есть этот контрольный параметр сети для сетевого SNMP 5.7.2.1 слушания нескольких интерфейсов Ethernet на моем домашнем шлюзе, но это только взяло бы следующую комбинацию от snmpd.conf конфигурационного файла:

  • единственный IP-адрес
  • единственный IP-адрес, определенный для протокола
  • единственный IP-адрес на уникальный протокол

такой как:

agentAddress  127.0.0.1:161

или

agentAddress  udp:127.0.0.1:161

или

agentAddress  udp:127.0.0.1:161,udp6:[::1],tcp:127.0.0.1:161


Но это не приняло бы несколько IP-адресов с помощью того же протокола, столь данного ниже как желаемый:
agentAddress  udp:127.0.0.1:161,udp:172.28.130.1:161

Как я делаю демона SNMP (snmpd), слушают ДВА (или больше) интерфейсы Ethernet

0
задан 15 March 2015 в 20:12
3 ответа

Я бы посоветовал вам изменить сценарий systemd вместо того, чтобы делать это вручную в командной строке.

Например, текущий snmpd.service, расположенный в / usr / lib / systemd / system / содержит следующее:

[Unit]
Description=Simple Network Management Protocol (SNMP) Daemon.
After=syslog.target network.target

[Service]
Type=notify
Environment=OPTIONS="-LS0-6d"
EnvironmentFile=-/etc/sysconfig/snmpd
ExecStart=/usr/sbin/snmpd $OPTIONS -f
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Просто измените эту строку «ExecStart», чтобы она содержала то, что вам нужно.

Например,

ExecStart=/usr/sbin/snmpd $OPTIONS -f udp:127.0.0.1 udp:192.168.1.135:161 udp6:[::1]:161

NB: Я не тестировал этот формат, возможно, он должен быть в другом путь с "-f" в конце или что-то в этом роде - протестируйте и настройте. Само собой разумеется, что он должен работать, и тогда у вас будут все преимущества использования systemd (который все равно используется).

Этот фрагмент платформы был взят из CentOS 7.3, поэтому расположение snmpd.service может варьироваться в зависимости от дистрибутива. Найдите свой, сделайте копию в файл .bak и измените оригинал - протестируйте - наслаждайтесь.

1
ответ дан 4 January 2021 в 09:26

После небольшого копания в коде NetSNMP, похоже, что он обрабатывает конфигурационный файл построчно, и добавляет к данным адреса агента, если что-то находит.

Таким образом, вы можете добавить несколько строк в конфигурационный файл с несколькими адресами агентов:

agentAddress  udp:127.0.0.1:29032
agentAddress  udp:127.0.0.1:22032

Я смог проверить это на своем собственном агенте, созданном с помощью NetSNMP...

$ snmpget -v3 -u myUser -l noAuthNoPriv 127.0.0.1:22032 1.3.6.1.4.1.1234.1.1.1
SNMPv2-SMI::enterprises.1234.1.1.1 = INTEGER: 2

$ snmpget -v3 -u myUser -l noAuthNoPriv 127.0.0.1:29032 1.3.6.1.4.1.1234.1.1.1
SNMPv2-SMI::enterprises.1234.1.1.1 = INTEGER: 2
1
ответ дан 7 May 2021 в 19:45

Видимо, единственный способ указать несколько интерфейсов для версии Net-SNMP 5.7.2.1 - это указать несколько IP-адресов в командной строке для snmpd.

Мне еще предстоит найти работоспособное решение для указания нескольких интерфейсов с помощью файлового подхода snmpd configuration (snmpd.conf).

# /usr/sbin/snmpd 127.0.0.1 192.168.1.1

Именно там (в командной строке) можно задать гранулярность протокола (и продолжать использовать один и тот же протокол через несколько интерфейсов) следующим образом:

# /usr/sbin/snmpd .... udp:127.0.0.1 udp:192.168.1.135:161 udp6:[::1]:161
1
ответ дан 4 January 2021 в 09:26

Теги

Похожие вопросы