Предыстория
Я запускаю следующее
На моем ноутбуке самая последняя версия arch linux со всеми последние обновления. Именно с этого ноутбука я запрашиваю стек SNMP на rasp pi
$ uname -a
Linux 4.20.13-arch1-1-ARCH #1 SMP PREEMPT Среда, 27 февраля, 19:10:28 UTC 2019 x86_64 GNU/Linux
На raspberry pi я использую raspian со всеми последними обновлениями.
$ uname -a
Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux
На raspberry pi я запускаю стек SNMP со следующей конфигурацией
$ sudo apt-get install -y snmp snmpd
$ snmpd -v
Версия NET-SNMP: 5.7.3
Файл /etc/snmp/snmp.conf пуст
Файл /etc/snmp/snmpd.conf содержимое вставлено ниже
Описание проблемы
Я не могу заставить команду snmpstatus
работать из глобальной сети, т.е. находясь вдали от меня, и получить удаленный доступ к локальной сети через Интернет. Команда, которая не будет работать со стороны WAN, но будет работать со стороны LAN:
snmpstatus -v1 -c public my_dydns.org:1234
(в результате этой команды ничего не отображается).
Со стороны локальной сети маршрутизатора та же команда работает должным образом.
snmpstatus -v1 -c public my_dydns.org:1234
дает следующий правильный вывод:
[UDP: [94.94.94.94]:1234->[0.0.0.0]:40866]=>[Linux raspberrypi 4.14.98-v7+ #1200 SMP Вт, 12 февраля 20:27:48 GMT 2019 armv7l] Up: 15:33:34,58
I Я настроил свой домашний маршрутизатор так, чтобы внешний порт WAN, обращенный к порту 1234, перенаправлял порт на порт 192.168.1.30 161, который является стеком SNMP на rasp pi.
Я знаю, что мои dydns и переадресация портов работают хорошо, потому что та же самая команда snmpstatus, используемая для получения состояния SNMP принтера в той же локальной сети, доступ к которой осуществляется из глобальной сети, с использованием аналогичного режима переадресации портов работает просто отлично.
Ниже приведен мой файл snmpd.conf, используемый на rasp pi.
Файл snmp.conf существует и пуст.
Содержимое /etc/snmp/snmpd.conf вставлено ниже
agentAddress udp:161,udp6:[::1]:161
# ниже разрешен любой IP-адрес в диапазоне от 192.168.1.0 до 192.168.1.254 доступ к этому SNMP, включая маршрутизатор по адресу 192.168.1.1
rocommunity public 192.168.1.0/24
# разрешает проброс портов через маршрутизатор из глобальной сети (т.е. с внешней стороны маршрутизатора)
rocommunity public me .my_dydns.org
Неверный IP-адрес в файле SNMP. Однако он уже включен в 192.168.0/24, поскольку в примечании правильно указано «включая маршрутизатор». например. вы можете закомментировать строкуrocommunity public me.my_dydns.org
Тем не менее, из соображений безопасности не рекомендуется предоставлять службы SNMP на открытых интерфейсах Интернета. Гораздо меньше SNMP с аутентификацией v1/v2, где аутентификация не шифруется.
Я бы посоветовал настроить VPN для общения по SNMP через VPN.
Однако, насколько я помню, некоторые протоколы не совместимы с NAT, а SNMP не является одним из самых дружественных к NAT. например. SNMP плохо работает через NAT. Это может сработать или не сработать, а в данном случае, скорее всего, нет.
Я бы посоветовал настроить VPN для общения по SNMP через Интернет.
На примере оборудования Cisco:
Network Address Translation > NAT Issues
Table 4-1 IP Traffic Types/Applications Supported by Cisco NAT
Traffic Types/Applications Not Supported SNMP
ПС. В корпоративном оборудовании у них есть инспекторы/специализированные агенты, которые переписывают пакеты SNMP для работы через NAT.