Кэширование UDP-пакетов с помощью iptables

У меня есть сервер, настроенный для пересылки всех своих пакетов через определенный порт другому хосту с помощью следующей команды;iptables -t nat -A PREROUTING -p udp --dport PORT -j DNAT --to-destination IP:PORT

Это вызвано большой задержкой из-за того, что серверы находятся далеко друг от друга, а данные почти всегда одинаковы. Мне было интересно, если у iptables есть какой-то метод, поэтому, если он получает пакет UDP, он может кэшировать ответ и затем отправлять его обратно на все идентичные запросы.

Например, если сервер получает "привет" в UDP-пакете, он пересылает его на другой сервер и получает "мир" с этого сервера (так как весь его трафик на этом порту пересылается). Затем я хочу, чтобы он отвечал "world" каждый раз, когда получал "hello", не пересылая его на второй сервер снова. Например, все последующие запросы кэшируются.

Надеюсь, кто-то может указать мне в правильном направлении с этим. Благодарю.

1 ответ

Нет, вы не сможете сделать это с iptables, То, что вам нужно, потребует написания реальной программы для прослушивания этих портов и самостоятельного взаимодействия с пакетами, а также отслеживания пар ключ-значение для мгновенного ответа.

Другие вопросы по тегам