应用程序堆栈有多个组件。例如 api、公共应用程序和内部应用程序。我想让内部应用程序只能从内部网络 IP 范围访问。我将 nginx(反向代理)配置为仅允许某些 IP 范围(例如 192.168.1.0/24)。我使用的域名是:mydomain.com
假设内部应用程序正在使用子域名app.mydomain.com
下还有一个网站(在外部运行),(www.)mydomain.com
外部 DNS(授权机构)配置为指向我的服务器的公共静态 IP,这是公共 API(例如api.mydomain.com
)所需要的。
但在本地网络(包括 VPN)上,我想在内部引导流量。例如,PC 应该使用本地 IP 而不是公共 IP,这样 nginx 反向代理才会允许那些具有本地 IP 的 PC。为此,我正在配置还运行 DNS 服务器的 Windows AD 服务器。我正在尝试配置此 DNS 以将网络中的计算机引导到本地网络上的服务器。
当我尝试为 mydomain.com 定义一个主要区域,并为 app.mydomain.com 定义一个条目以指向内部服务器地址时,nslookup app.mydomain.com
会返回本地 IP,但mydomain.com
不再www.mydomain.com
起作用。
有没有办法将所有其他子域指向外部 DNS(权威)?
当我尝试配置辅助区域时,传输失败。我认为权威机构(外部 DNS)不允许我这样做。
我想知道如何才能实现这一点?
您可以通过创建一个名为的主要区域
app.mydomain.com
并在其中创建一个指向服务器内部 IP 地址的空A
记录来实现此目的;这是因为空记录与区域本身的名称匹配,而不是其中的实际主机名。这样,DNS 服务器将只认为自己对该
app.mydomain.com
区域具有权威性,而对更高级别的mydomain.com
区域则不具有权威性;因此,对区域中所有其他内容的查询都将以标准方式解析(从根服务器递归或转发器(如果配置))。