Как запустить dockerized сервер имен dnsmasq в tinc VPN только с одним процессом на контейнер

У меня есть ячеистая сеть tinc VPN, которая используется различными типами хостов по всему миру, и я хочу развернуть dockerized сервер имен dnsmasq для использования в этой tinc mesh.

У меня есть уже успешно построил и настроил «толстый» многопроцессорный контейнер докеров (с использованием runit), который делает то, что я ищу. Он запускает как процесс tinc, так и процесс dnsmasq, а dnsmasq настроен для привязки к сетевому интерфейсу tinc в контейнере. Но теперь я пытаюсь создать ту же функциональность, используя однопроцессные контейнеры.

Я знаю, как создать и настроить базовый однопроцессный контейнер dnsmasq, и я знаю, как построить и настроить базовый однопроцессный контейнер tinc. Я могу написать простой файл docker-compose, который вызовет их обоих.

Я не знаю, как сделать что-то вроде использования контейнера tinc в качестве шлюза, который открывает контейнер dnsmasq для ячеистой сети, позволяя другим хосты в этой сети tinc для выполнения DNS-запросов к dnsmasq. Возможно ли это?

0
задан 23 October 2017 в 21:23
1 ответ

После интенсивного поиска в Google и адаптации аналогичных сценариев использования с openVPN я нашел рабочую установку. По сути, вы привязываете сеть контейнера dnsmasq к контейнеру tinc. Вот сокращенный docker-compose.yml, который показывает самое необходимое:

version: '3'
services:

  tinc:
    ...

  dnsmasq:
    depends_on: 
      - tinc
    network_mode: "service:tinc"

Если вы docker exec -ti dnsmasq / bin / sh после этого, а затем выполните ifconfig внутри dnsmasq, вы увидите сетевой интерфейс tinc, который создает контейнер tinc. Итак, если ваша конфигурация dnsmasq привязана к этому сетевому интерфейсу, она просто работает.

Круто.

0
ответ дан 24 November 2019 в 03:42

Теги

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