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

Повреждение порта с помощью iptables NAT в Enterprise Linux 6

Я пытаюсь настроить перенаправление адаптивного веб-портала на CentOS, используя следующую конфигурацию:

Эта конфигурация работает для первых нескольких пакетов, но затем в ответе сервера внезапно порт назначения оказывается поврежденным. Трассировка пакета выглядит так:

Клиент: Хост, выполняющий исходный веб-запрос. Сервер: исходное место назначения для запроса. Портал: сервер адаптивного портала.

Эта трассировка пакета берется из места, которое может видеть трафик клиента и портала. Строки, начинающиеся с c: со стороны клиента, а p: со стороны портала.

c: client:57877 -> server:80 [SYN]
p: client:1092 -> portal:80 [SYN]  NAT adjusted SYN
p: portal:80 -> client:1092 [SYN, ACK]
c: server:80 -> client:57877 [SYN, ACL] NAT reversed on the SYN/ACK
c: client:57877 -> server:80 [ACK]
c: client:57877 -> server:80 HTTP GET
p: client:1092 -> portal:80 [ACK]
p: client:1092 -> portal:80 HTTP GET
p: portal:80 -> client:1092 [ACK]
c: server:68 -> client:57877 [ACK]
          ^^ WTF?!?

На этом этапе соединение залито. Клиент не ожидает пакета на этом порту и отправляет RST. Номер сломанного порта увеличивается на 1 при каждой попытке подключения (предположительно, с этого момента он будет работать после 12 попыток). Все повторные передачи имеют один и тот же неработающий номер порта в ответе. Понятия не имею, что могло быть причиной этого.

Это ошибка или я что-то не так делаю? У этой машины действительно несколько необычная конфигурация. Настроен как мост. Чтобы применить правило NAT только к пакетам, идущим в одном направлении, пакеты сначала помечаются правилом NAT ebtables, и эта отметка проверяется при применении iptables NAT.

Это на Enterprise Linux 6 с ядром 2.6.32-279.5.2.el6.x86_64

Правило NAT:

target     prot opt in     out     source               destination         
DNAT       tcp  --  ilb    any     anywhere             anywhere            multiport dports http,https mark match 0x8 to:<portal IP>

ilb - это мост.