我有一台本地服务器,用于管理多台虚拟机Qemu-KVM在 ubuntu 18.04 下。本地服务器已经有静态 IP 和公司 IT 提供的域名,比如域名主页。我在每个 VM 上运行 Web 应用程序,每个 VM 都有一个与主服务器通信的内部 IP(以 192.168 开头),以及一个可从其访问的外部 IP(以 172.18 开头)。
我想要实现的是能够通过包含正在运行的应用程序的子域定义的 URL 从内联网访问正在运行的 Web 应用程序。假设 URLhttp://elk.main.company.com我应该访问在端口 80 上的 VM 中运行的 kibana Web 应用程序。
我尝试使用 bind9 设置主服务器的正向和反向区域,将 main.company.com 作为 DNS 服务器,并使用其本地 (192.168) 和私有 (172.18) IP 设置具有 A 名称记录的主机,但无法实现我想要的效果。任何帮助都将不胜感激。
答案1
从您的问题中我了解到,您只为 main.mycompany.com 分配了一条 A 记录。您无法将子域名添加到 A 记录。您可以将子域名添加到区。
你需要有一个NS 记录(一个或多个)为 main.mycompany.com 定义,指向安装了 BIND 的计算机(这称为域委派)。然后您可以在该 BIND 配置中定义区域。
以我的域名rafa.eu.org
为例:
有一条 A 记录分配给rafa.eu.org
:
raj@jarek-02:~$ host -t a rafa.eu.org
rafa.eu.org has address 217.182.79.14
但该域也有(在本例中是三个) NS 记录:
raj@jarek-02:~$ host -t ns rafa.eu.org
rafa.eu.org name server e.ns.buddyns.com.
rafa.eu.org name server new.rafa.eu.org.
rafa.eu.org name server c.ns.buddyns.com.
域的主名称服务器是new.rafa.eu.org
(实际上与 的 IP 地址相同rafa.eu.org
,前缀“new”是我将服务器从一家托管公司迁移到另一家托管公司时留下的 - 当时的 IP 地址不同,一些服务已迁移到“新”服务器,而一些服务仍留在“旧”服务器上),我可以在该服务器的 BIND 配置中定义 rafa.eu.org 的任何子域。其他两个名称服务器是辅助名称服务器,它们只从主服务器获取配置(我使用了流行的免费辅助 NS 服务)。