Трансляция адресов полезной нагрузки SNMP
-
05-07-2019 - |
Вопрос
Я использую iptables
в Linux для трафика NAT SNMP. Некоторые из пакетов SNMP имеют VARBIND, которые содержат (реальные) IP-адреса устройств, которые их сгенерировали. Это сбивает с толку стандартные инструменты управления, которые должны видеть NAT-адреса в VARBIND. Поэтому мне нужно перевести адреса в полезную нагрузку в дополнение к адресам в заголовках.
Стандартным инструментом является модуль ядра nf_nat_snmp_basic.ko
, но оригинальная версия транслирует только первый октет адреса, а последняя версия просто полностью повреждает пакеты. Это, по-видимому, «общеизвестно» в Интернете (www.netfilter.org), и я проверил это на своем оборудовании.
Прежде чем я углублюсь в ядро, кто-нибудь еще работал над этой проблемой и придумал подходящее решение? Пока достаточно перевести только те VARBIND, чьи OID определяют их тип в качестве IP-адреса. Другими словами, мне не нужно переводить адреса, встроенные в строковые данные, что было бы гораздо сложнее.
Спасибо за ваши предложения!
Решение
Возможное решение «Сделай сам» от Роберта Гэмбла здесь: Утилиты пакетного управления помимо iptables? р>
Обновления и еще больше похвалы после небольшого модульного тестирования - спасибо, Роберт!