Что делает “Предупреждение: ответ запроса не набор”, средний в, роет вывод?

Проблема здесь, что Ваш маршрутизатор не делает NAT адрес Вашего внутреннего клиента. Таким образом, сбои квитирования TCP.

Давайте примем следующего дюйм/с

  • Клиент: 192.168.1.3
  • Сервер: 192.168.1.2
  • Внутренний маршрутизатор: 192.168.1
  • Внешний маршрутизатор: 123.123.123.1

Вот то, что происходит:

  1. Клиент (192.168.1.3) отправляет TCP-SYN в Ваш внешний IP, Порт 80 (123.123.123.1:80)
  2. Маршрутизатор видит, что перенаправление портов управляет, и передает пакет к серверу (192.168.1.2:80), не изменяя исходный IP (192.168.1.3)
  3. Клиент ожидает SYN-ACK от внешнего IP
  4. Сервер передает его ответ обратно клиенту непосредственно, потому что это находится на той же подсети. Это не отправляет пакет на маршрутизатор, который инвертировал бы NAT.
  5. Клиент принимает SYN-ACK от 192.168.1.2 вместо 123.123.123.1. И отбрасывания это.
  6. Клиент все еще ожидает SYN-ACK от 123.123.123.1 и испытывает таймаут.
0
задан 21 October 2010 в 05:12
2 ответа

Похож это происходит из-за неправильной установки части QR заголовка ответа.

1
ответ дан 4 December 2019 в 12:07

QR бит (MSB в 3-м октете в заголовке) указывает, является ли пакет запросом (0) или ответом (1).

Все клиенты ДОЛЖНЫ поэтому отправить пакеты с тем ясным битом, и сервер ДОЛЖЕН передать его обратно с тем набором битов. Сообщения об ошибках говорят Вам, что ответ был получен, который был отмечен как запрос.

BTW, была известная ошибка в сервере Microsoft DNS несколько лет назад, где это ответило бы на пакет, даже если бы QR укусил, был установлен в том пакете! В результате было возможно вызвать пакетный цикл.

3
ответ дан 4 December 2019 в 12:07

Теги

Похожие вопросы