Назад | Перейти на главную страницу

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

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

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

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

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

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