Кэширование UDP-пакетов с помощью iptables
У меня есть сервер, настроенный для пересылки всех своих пакетов через определенный порт другому хосту с помощью следующей команды;iptables -t nat -A PREROUTING -p udp --dport PORT -j DNAT --to-destination IP:PORT
Это вызвано большой задержкой из-за того, что серверы находятся далеко друг от друга, а данные почти всегда одинаковы. Мне было интересно, если у iptables есть какой-то метод, поэтому, если он получает пакет UDP, он может кэшировать ответ и затем отправлять его обратно на все идентичные запросы.
Например, если сервер получает "привет" в UDP-пакете, он пересылает его на другой сервер и получает "мир" с этого сервера (так как весь его трафик на этом порту пересылается). Затем я хочу, чтобы он отвечал "world" каждый раз, когда получал "hello", не пересылая его на второй сервер снова. Например, все последующие запросы кэшируются.
Надеюсь, кто-то может указать мне в правильном направлении с этим. Благодарю.
1 ответ
Нет, вы не сможете сделать это с iptables
, То, что вам нужно, потребует написания реальной программы для прослушивания этих портов и самостоятельного взаимодействия с пакетами, а также отслеживания пар ключ-значение для мгновенного ответа.