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