如何在 tinc VPN 中运行 dockerized dnsmasq 名称服务器,每个容器只有一个进程

如何在 tinc VPN 中运行 dockerized dnsmasq 名称服务器,每个容器只有一个进程

我有一个 tinc VPN 网状网络,它被世界各地各种类型的主机使用,我想部署一个 dockerized dnsmasq 名称服务器以供该 tinc 网状网络内使用。

我已经成功构建并配置了一个“胖”多进程 docker 容器(使用 runit),它可以满足我的要求。它同时运行 tinc 进程和 dnsmasq 进程,并且 dnsmasq 配置为绑定到容器中的 tinc 网络接口。但现在我正尝试使用 1 进程容器构建相同的功能。

我知道如何构建和配置基本的 1 进程 dnsmasq 容器,也知道如何构建和配置基本的 1 进程 tinc 容器。我可以编写一个简单的 docker-compose 文件来启动它们。

我不知道如何使用 tinc 容器作为网关,将 dnsmasq 容器暴露给网状网络,从而允许该 tinc 网络上的其他主机针对 dnsmasq 运行 DNS 查询。这可能吗?

答案1

在进行了一些深入的谷歌搜索并适应了 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 配置绑定到该网络接口,它就会正常工作。

凉爽的。

相关内容