我需要一些有关在 Ubuntu 服务器 12.04.2 中配置 BIND 9 的帮助。我们有一个company.com
带有外部注册商的域。通过它,我们可以管理位于 Internet 上的 VPS 中的网站 (www.company.com) 的所有 DNS 设置。
现在我们还需要让 crm 应用程序 (crm.company.com) 可从 Internet 访问。但是,CRM 位于我们 LAN 中的 Linux 服务器上,与使用 BIND 9 的服务器不同。
我如何配置我的 BIND 来管理crm.company.com
请求并将其转发到正确的服务器?
编辑-基于 douggro 先生的额外帮助
我尝试更好地解释我的 IT 结构,涉及 douggro 先生的建议:
公共注册器 => 管理 company.com 的 DNS 条目
中间 SRV => 我的服务器装有 BIND9、IpTbales、WAN 上的 eth0、LAN 上的 eth1(10.1.1.120)
WEB SRV => 我的服务器装有 apache、mysql、php5 eth0,位于 LAN(10.1.1.122)上,crm 在其中运行
答案1
您不需要对 BIND 配置进行任何操作。通过域名注册商管理 DNS,您应该能够输入crm.company.com
指向 LAN 路由器公共 IP 地址的新 A 记录。如果服务器尚未分配该主机名,
crm.company.com IN A 12.34.56.789
则需要配置 Linux 服务器上的 Apache 以处理作为虚拟主机的请求。crm.company.com
您需要配置您的 LAN 路由器以打开并将必要的端口 (例如 http 和 https 的 80 和 8080) 转发到 Linux 服务器的内部 LAN IP 地址。
如果您的 LAN 路由器使用静态公共 IP 地址,则此方法可行。如果您的路由器使用动态公共 IP 地址,则情况会变得更加复杂,您需要研究使用动态 DNS 服务(如 dyn.com)来管理crm.company.com
域的 DNS,并将主 DNS 配置为指向动态 DNS 服务以解析子域。
编辑-根据评论中的附加信息
由于您有一个充当路由器并运行 BIND 的中间服务器,您希望它来管理子域名解析,并且您的主 DNS 是通过域名注册商管理的,因此解析到您所需的配置会变得有点复杂。注册商很少支持子域名 DNS 服务,希望您或您的托管提供商处理任何子域名委托。
对于您所需的配置,我能想到的最简单的解决方案是,如果可能的话,在您的 VPS 上运行 BIND,并让其成为您域的权威主机。然后,您需要在 VPS 服务器上的 BIND 中为您的中间服务器添加一条 A 记录,并为其提供 FQDN 和主机名(company.local
不起作用 - 它需要类似于zones.company.com
可在外部解析的内容。)服务器 VPS 上的其他 PTR 记录crm.company.com
也应指向您的中间服务器。然后,应为中间服务器上的 BIND 设置一个主区域,并向zones.company.com
其添加一条指向服务器 LAN IP 的 A 记录crm
: crm.company.com IN A 10.1.1.122
您需要确保 IPTABLES 允许转发和传递 CRM 系统所需的端口。