Як перенаправити локальні запити DNS до VM, коли macOS перебуває в автономному режимі?


0

Для проекту мені потрібно перехопити / перенаправити запити DNS до VM, який у свою чергу працює dnsmasq. Цей VM розміщується xhyve, і при підключенні до мережі налаштування працює добре; У мене є файл, у /etc/resolver.conf/test.ioякому:

сервер імен 192.168.64.20
search_order 1

Виконувати dig node.test.io @192.168.64.20чи dig node.test.ioдати очікувані результати.

Але, переходячи в офлайн, виникає проблема. Здається, що коли macOS не підключений до мережі, він дозволяє лише /etc/resolver.conf/*записам працювати, коли вони використовуються 127.0.0.1.

Я спробував налаштувати переадресацію портів, наприклад:

$ ехо "                           
rdr передають inet proto udp з будь-якого порту 127.0.0.1 53 -> 192.168.64.20 порт 53
"| sudo pfctl -ef -

і змінюється /etc/resolver.conf/test.ioна:

сервер імен 127.0.0.1
search_order 1

Однак домен test.ioнеможливо знайти, коли я намагаюся зробити nslookupабо dig node.test.io @localhost. VM все ще доступний, оскільки dig node.test.io @192.168.64.20все ще вирішується.

scutil --dns дає наступне:

резолюція №9
  домен: test.io
  сервер імен [0]: 127.0.0.1
  прапори: запит записів, запит записів AAAA
  охоплення: 0x00030002 (доступна, локальна адреса, безпосередньо доступна адреса)
  порядок: 1

Примітка: nslookupсхоже, не добре поводиться з резолюцією, тому я також намагався використовувати curl / wget та браузер, щоб перевірити, чи правильно вирішено запити. Також різниці з dns-sd. Все не вдалося ...

Відповіді:


1

У відключеному режимі взагалі не відбувається запит DNS ... Ми вирішили це, додавши пристрій TUN / TAP до вузла macOS і "зробивши вигляд", що він підключений.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.