У меня есть несколько виртуальных машин (комбинация док-контейнеров и машин VirtualBox). Я хочу связать службы в этих виртуальных машинах с частными адресами, чтобы:

  1. Я могу использовать свой частный DNS-сервер для маршрутизации к этим службам на хосте
  2. Одинаковое разрешение адресов можно использовать на виртуальных машинах (как на док-контейнерах, так и на машинах VirtualBox).

Для контейнеров Docker это довольно просто, по крайней мере для контейнеров, работающих в сети по умолчанию: я просто привязываюсь к интерфейсу docker0 и настраиваю свою конфигурацию DNS так, чтобы она указывала на IP-адрес интерфейса docker0. Задача решена. Я думаю, что это злоупотребляет тем фактом, что все Docker-контейнеры имеют полный доступ к этому общему интерфейсу.

Но это препятствует тому, чтобы машины VirtualBox достигли док-контейнеров: поскольку IP-адрес docker0 (172.17.0.1) является частным, VB не будет направлять трафик на него.

У меня есть обходной путь: кража общедоступного маршрутизируемого адресного пространства в хосте, так что я гарантирую, что VB направит трафик к нему. Но это безобразный хак.

Есть ли лучший способ использовать один преобразователь DNS для всех виртуальных машин, используя частные адреса?

0