Почему DNS перестает разрешаться в «пользовательской сети» QEMU, когда хост перемещается в определенную сеть?

Попробуйте это,

 find. -type d  -regex '^./[0-9]+' -exec sh -c 'test "{}" ">" "./201412"' \; -print

Как я спросил в комментариях. В текущем каталоге могут быть файлы с числовыми именами -и без них

.
  • type -dбудут перечислены только каталоги
  • -regex '^./[0-9]+'будут перечислены только имена с цифрами
  • testиспользуется для сравнения результата

Здесь вы можете добавить maxdepth, чтобы ограничить поиск текущим каталогом, но наш regexсам сделает то же самое.

1
11.11.2020, 09:59
1 ответ

В сети «режим пользователя» по умолчанию QEMU использует только первый DNS-сервер имен с хост-компьютера. Таким образом, если этот сервер имен не разрешается должным образом, QEMU не будет использовать другие серверы имен, которые могут быть настроены как вторичные на хосте. Это приводит к очевидной потере подключения к Интернету гостями, в то время как хост все еще может использовать свои резервные серверы имен, «скрывая» проблему.

Это известное поведение QEMU, которое, как ожидается, не будет исправлено в QEMU. Вот цитата из журнала отчетов об ошибках Debian #625689 за 2011 год:

No the limitation isn't documented (yet), and it will be difficult to fix too, or maybe not worth a trouble really. Two reasons. First of all, user-mode networking is not suitable for anything serious, you really want tap networking with bridges, which is about 100 times faster and actually works (e.g. ICMP). Second, the implementation is rather simplistic - for DNS it merely forwards (like a NAT box) packets from guest to a nameserver from host /resolv.conf - only one nameserver, because you can't NAT to TWO destinations at once. So in order to fix that, qemu has to become application-level proxy for DNS, instead of a simplande NAT "device".

Эту проблему легко воспроизвести, добавив мусор в качестве первого nameserverпо /etc/resolv.confна узле. Гость немедленно перестает разрешать.

Для гостевой машины Debian для восстановления работы сети было достаточно добавить другой известный преобразователь, например 8.8.8.8, в /etc/resolv.conf. Такое изменение конфигурации не сохраняется после перезагрузки гостя.

5
18.03.2021, 22:57

Теги

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