У меня есть этот контрольный параметр сети для сетевого SNMP 5.7.2.1 слушания нескольких интерфейсов Ethernet на моем домашнем шлюзе, но это только взяло бы следующую комбинацию от snmpd.conf конфигурационного файла:
такой как:
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
agentAddress udp:127.0.0.1:161,udp:172.28.130.1:161
Как я делаю демона SNMP (snmpd), слушают ДВА (или больше) интерфейсы Ethernet
Я бы посоветовал вам изменить сценарий 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 и измените оригинал - протестируйте - наслаждайтесь.
После небольшого копания в коде 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
Видимо, единственный способ указать несколько интерфейсов для версии 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