Я анализирую дамп трафика, в котором есть несколько стандартных DNS-запросов, но их ответы находятся в пакетах ICMP. Структура этих пакетов ICMP:
IP-> ICMP-> IP-> UDP-> DNS (ответ)
скажем client = a.b.c.d server = w.x.y.z
Запросы идут в стандартном DNS-пакете с src = a.b.c.d и dst = w.x.y.z. Однако в пакете ICMP есть два заголовка IP (которые я рассматриваю как ответ, поскольку он имеет разрешение указанного выше запроса DNS). Внешний заголовок IP имеет src = a.b.c.d и dst = w.x.y.z, а внутренний заголовок IP имеет src = w.x.y.z и dst = a.b.c.d
Теперь я не понимаю, кто кому отправляет этот пакет и почему ответ DNS не в стандартной форме, как это должно быть.
Я искал в Интернете и обнаружил на разных ресурсах, что ответ DNS занимает слишком много времени для клиента (a.b.c.d), который закрывает свой порт, и когда получен ответ (от сервера w.x.y.z), его ядро отправляет пакеты ICMP о недоступности порта.
Проблема в том, что я не вижу фактического ответа от сервера, и только два пакета на запрос видны в дампе, клинет-> сервер (запрос DNS) и клиент-> сервер (ICMP со встроенным ответом DNS). Как этот ответ дошел до клиента, если нет пакета с сервером-> клиентом (ответ DNS). А также, почему пакеты ICMP содержат такие ответы DNS?