Преобразование адреса полезной нагрузки SNMP


Я использую iptables под linux для NAT SNMP трафика. Некоторые пакеты SNMP имеют VARBINDs, которые содержат (реальные) IP-адреса устройств, которые их сгенерировали. Это смущает стандартные инструменты управления, которые нужно увидеть адреса NATted в VARBINDs. Поэтому мне нужно перевести адреса в полезной нагрузке в дополнение к тем, которые находятся в заголовках.

Стандартным инструментом является модуль ядра nf_nat_snmp_basic.ko, но исходная версия переводит только первый октет адреса а последняя версия просто портит пакеты в целом. Это, по-видимому, "общеизвестно" в интернете (www.netfilter.org) и я проверил это на своем собственном оборудовании.

Прежде чем я погружусь в ядро, кто-нибудь еще работал над этой проблемой и нашел подходящее решение? На данный момент достаточно перевести только те VARBINDs, OID которых определяют их тип в качестве IP-адреса. Другими словами, мне не нужно переводить адреса, встроенные в строковые данные, которые это было бы гораздо сложнее.

Спасибо за ваши предложения!

1 3

1 ответ:

Возможное решение DIY от Роберта Гэмбла здесь: утилиты для обработки пакетов помимо iptables?

Обновления и еще больше похвал, которые придут после небольшого юнит-тестирования - спасибо, Роберт!