Вопрос или проблема
Такое поведение последовательно воспроизводимое. Я использую Linux-гостевые системы на хосте macOS с QEMU (через UTM, графический интерфейс QEMU).
brennan@eugene ~$ ping google.com
PING google.com (142.250.64.110): 56 байт данных
64 байта от 142.250.64.110: icmp_seq=0 ttl=255 время=4106536135042530803712,000 мс
64 байта от 142.250.64.110: icmp_seq=0 ttl=255 время=4106536135042530803712,000 мс (ДУП!)
64 байта от 142.250.64.110: icmp_seq=0 ttl=255 время=-7944632498817993801728,000 мс (ДУП!)
64 байта от 142.250.64.110: icmp_seq=0 ttl=255 время=-7944632498817993801728,000 мс (ДУП!)
64 байта от 142.250.64.110: icmp_seq=0 ttl=255 время=-7944631970489462423552,000 мс (ДУП!)
^C--- статистика пинга google.com ---
5 пакетов передано, 1 пакет получен, +4 дубликата, 80% потерь пакетов
время в пути мин/ср/макс/стандартное отклонение = -7944632498817993801728,000/-3124164939608077893632,000/4106536135042530803712,000/5903842705162658381824,000 мс
Ответ или решение
Причины, по которым временные метки ping в QEMU появляются в искажённом виде, могут быть достаточно комплексными, особенно в контексте использования виртуальных машин на macOS с Linux-гостями. Рассмотрим основные факторы, влияющие на данную проблему:
### 1. Ошибки синхронизации времени
Одна из наиболее распространённых причин искажённых временных меток — это несоответствие временной синхронизации между хостом и гостевыми системами. QEMU, как виртуализатор, использует свой собственный способ управления временем, который может отличаться от метода, используемого в Linux на реальном оборудовании. При этом, если временные зоны или настройки часового пояса не синхронизированы, это может приводить к неправильным временным меткам.
### 2. Выбор источника времени
QEMU может использовать виртуальные таймеры, которые не всегда способны точно синхронизировать время с реальным оборудованием. Если в конфигурации QEMU не указаны настройки для использования внешнего хронографа, временные метки ICMP-запросов могут быть искажены. Кроме того, использование неправильной модели времени (например, вместо TSC — временной метки процессора) может привести к ненадёжным результатам.
### 3. Ошибки в сетевых настройках
Настройки сети в QEMU также могут играть важную роль. Использование неправильного сетевого моста или NAT может дополнительно усложнить процесс передачи пакетов, что может в свою очередь сказаться на расчёте времени ответа. Нестандартные драйвера сетевых устройств также могут быть источником ошибок.
### 4. Проблемы виртуализации
Виртуальные машины работают с различными уровнями абстракции, и QEMU не всегда идеально эмулирует работу реального оборудования. Это может вызывать ошибки при обработке сетевых пакетов и влияет на расчёт времени задержки. Дополнительно, необходимо учитывать, что виртуальные машины могут использоваться на оборудовании с разной производительностью, что также может внести свою лепту в искажение временных меток.
### 5. Изменение параметров ICMP
В некоторых конфигурациях может быть применён агрессивный режим обработки ICMP-пакетов, что приведёт к увеличению количества дубликатов и неправильной интерпретации временных меток. Это может проявляться в виде сообщений о дублирующих пакетах и значений времени, которые выглядят как аномалии.
### Заключение
Резюмируя, искажённые временные метки ICMP в QEMU являются следствием множества факторов, включая проблемы синхронизации времени, ошибки в сетевой конфигурации, особенности виртуализации и неправильные параметры обработки ICMP. Для устранения данной проблемы рекомендуется:
– Проверить синхронизацию времени между хостом и гостем.
– Пересмотреть сетевую конфигурацию и убедиться, что используются правильные драйвера.
– Убедиться, что настройки QEMU соответствуют требованиям к работе с временными метками.
Внедрение этих рекомендаций может значительно улучшить качество отображаемых временных меток и повысить общую надежность сетевой связи внутри виртуального окружения.