У меня есть несколько виртуальных машин (комбинация док-контейнеров и машин VirtualBox). Я хочу связать службы в этих виртуальных машинах с частными адресами, чтобы:
- Я могу использовать свой частный DNS-сервер для маршрутизации к этим службам на хосте
- Одинаковое разрешение адресов можно использовать на виртуальных машинах (как на док-контейнерах, так и на машинах VirtualBox).
Для контейнеров Docker это довольно просто, по крайней мере для контейнеров, работающих в сети по умолчанию: я просто привязываюсь к интерфейсу docker0
и настраиваю свою конфигурацию DNS так, чтобы она указывала на IP-адрес интерфейса docker0. Задача решена. Я думаю, что это злоупотребляет тем фактом, что все Docker-контейнеры имеют полный доступ к этому общему интерфейсу.
Но это препятствует тому, чтобы машины VirtualBox достигли док-контейнеров: поскольку IP-адрес docker0 (172.17.0.1
) является частным, VB не будет направлять трафик на него.
У меня есть обходной путь: кража общедоступного маршрутизируемого адресного пространства в хосте, так что я гарантирую, что VB направит трафик к нему. Но это безобразный хак.
Есть ли лучший способ использовать один преобразователь DNS для всех виртуальных машин, используя частные адреса?