我正在尝试在我的服务器上设置 BIND9,并尝试按照我在网上找到的指南进行操作。有一件事让我感到警惕,那就是我找到的每一份指南似乎都在其示例中使用了私有 IP 地址。但是,每当我使用 CloudFlare 等第三方 DNS 服务时,我总是输入公共 IP 地址,而不是类型地址192.168.*
。
现在,我明白这是因为第三方 DNS 服务无法通过私有 IP 访问我的 Web 服务器(当然),因此公共 IP 地址是访问我的服务器的唯一方式,但让 DNS 服务器向查询返回私有 IP 地址似乎有点奇怪。那么用户是否会尝试连接到该私有 IP他们自己的网络?
tl;dr?简而言之:
设置 BIND9,引导在线使用私有 IP。此dig
输出能解析吗?
julian@server:~$ dig @123.456.789.101 www.example.org
; <<>> DiG 9.8.1-P1 <<>> @123.456.789.101 www.example.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58151
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;www.example.org. IN A
;; ANSWER SECTION:
www.example.org. 10800 IN CNAME example.org.
example.org. 10800 IN A 192.168.182.55
;; AUTHORITY SECTION:
example.org. 10800 IN NS ns1.example.org.
example.org. 10800 IN NS ns2.example.org.
;; ADDITIONAL SECTION:
ns1.example.org. 10800 IN A 192.168.182.55
ns2.example.org. 10800 IN A 192.168.182.55
;; Query time: 2 msec
;; SERVER: 123.456.789.101#53(123.456.789.101)
;; WHEN: Sat Mar 16 18:07:02 2013
;; MSG SIZE rcvd: 135
答案1
您提供给 BIND 的文件会告诉 BIND 查询返回什么(权威性),或去哪里解决查询(非权威性)。它将返回您提供的任何地址。
是的,您可以在本地网络上运行 BIND,解析由私有 IP 组成的 LAN 的名称。此 BIND 无需在整个互联网上都可以访问,此功能即可运行。
是的,如果可以通过 NAT 路由器访问 BIND 实例,则查询服务器时它将返回这些 IP。仅供私人使用且可公开访问的 BIND 可能会泄露您的网络详细信息。
书籍示例通常使用私有 IP 范围,以防止人们盲目复制示例并给无辜的第三方造成不当流量 - 此外,在使用私有范围内的 IP 范围的 LAN 上运行 DNS 服务器也并不罕见。
除非满足以下条件,否则任何人都无法访问您家庭网络上的 DNS 服务器:
您的静态公共 IP 已在全球根区域 DNS 服务器中注册,该服务器将该公共 IP 标识为给定域的权威区域。此处无法指定私有 IP。
您说服某人使用您的可公开访问的 DNS 服务器(如果您的 ISP 为您提供动态 IP,这将有问题,但并非不可能)。要通过这种方式解析除您自己的域之外的任何域的 IP,您必须将 BIND 设置为使用全局 DNS 作为转发器(基本上将所有本地无法解析的 DNS 查找转发到另一台服务器,例如 OpenDNS)。他们还会获得您的私有 IP,除非巧合,否则这些 IP 在他们的本地网络上无法使用。这是一个愚蠢的想法(除非您真的想通过 VPN 或某种深奥的东西连接两个 LAN),而且通常不是您想要做的。
上述文件可以工作但可能对我们没有用,除非您真的希望程序能够通过 DNS 查找ns1.example.org
并获取 IP 地址 192.168.182.55 等等。