AWS 上的自定义 DNS 服务器
Custom DNS server on AWS
我正在尝试在 AWS EC2 实例上为我的域创建自定义 DNS 服务器。该实例是 运行ning Ubuntu 20.04 LTS,DNS 服务器是使用 bind 9 配置的。当我使用
重新启动绑定服务器时
sudo service bind9 restart
/var/log/syslog 显示启动成功,没有错误。
现在,如果我 运行 对服务器本身进行挖掘,例如:
dig @localhost mydomain.com
我得到了正确的回应。类似于:
; <<>> DiG 9.16.1-Ubuntu <<>> @localhost mydomain.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15819
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 8abafb45d049d921010000006212f87a85a91753aaa86a24 (good)
;; QUESTION SECTION:
;cirtructor.com. IN A
;; ANSWER SECTION:
mydomain.com. 604800 IN A 99.99.999.999
;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Feb 21 02:27:06 UTC 2022
;; MSG SIZE rcvd: 87
但是现在当我 运行 来自另一台机器的挖掘命令时:
dig @888.888.888.888 mydomain.com
在我使用 DNS 服务器 IP 地址代替 888.888.888.888 的地方,我得到:
; <<>> DiG 9.16.1-Ubuntu <<>> @888.888.888.888 mydomain.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
我还尝试从同一 VPC 上的实例进行挖掘。类似于:
dig @10.0.0.999 mydomain.com
仍然无法正常工作。
为了检查 DNS 服务器是否连接到互联网,我在 AWS 的安全组中打开了端口 88,并在端口 88 上 运行 了一个 http 服务器。我可以通过访问 http://888.888.888.888:88
所以服务器已连接,但 DNS 查询不知何故无法到达。
IP 表策略为 ACCEPT,未添加任何规则。 53端口已经在安全组中开放。
我可以采取哪些步骤来弄清楚发生了什么?有没有办法跟踪 DNS 查找失败的位置?任何帮助或建议都将非常有用。
来自Modify the DNS attributes for your VPC - Amazon Virtual Private Cloud:
Amazon provides a DNS server (the Amazon Route 53 Resolver) for your VPC. To use your own DNS server instead, create a new set of DHCP options for your VPC.
另请参阅:Add custom domain name resolution with DHCP options sets - Amazon Virtual Private Cloud
这让我想起了两个场景,我以前有过,你检查过这些吗?
- 返回查询系统的路由 there/not 根本不起作用,因此 DNS 答案从未返回到源头。因此只有本地查找有效,但在 VPC 内部和外部解析不起作用。
- 有一些其他服务正在侦听 UDP/TCP53。我没有想到任何确切的场景,绑定服务可以成功响应但仍然无法侦听 DNS 端口,但我也可以想象。
我会使用的工具是 tcpdump 和 traceroute。
我正在尝试在 AWS EC2 实例上为我的域创建自定义 DNS 服务器。该实例是 运行ning Ubuntu 20.04 LTS,DNS 服务器是使用 bind 9 配置的。当我使用
重新启动绑定服务器时sudo service bind9 restart
/var/log/syslog 显示启动成功,没有错误。
现在,如果我 运行 对服务器本身进行挖掘,例如:
dig @localhost mydomain.com
我得到了正确的回应。类似于:
; <<>> DiG 9.16.1-Ubuntu <<>> @localhost mydomain.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15819
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 8abafb45d049d921010000006212f87a85a91753aaa86a24 (good)
;; QUESTION SECTION:
;cirtructor.com. IN A
;; ANSWER SECTION:
mydomain.com. 604800 IN A 99.99.999.999
;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Feb 21 02:27:06 UTC 2022
;; MSG SIZE rcvd: 87
但是现在当我 运行 来自另一台机器的挖掘命令时:
dig @888.888.888.888 mydomain.com
在我使用 DNS 服务器 IP 地址代替 888.888.888.888 的地方,我得到:
; <<>> DiG 9.16.1-Ubuntu <<>> @888.888.888.888 mydomain.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
我还尝试从同一 VPC 上的实例进行挖掘。类似于:
dig @10.0.0.999 mydomain.com
仍然无法正常工作。
为了检查 DNS 服务器是否连接到互联网,我在 AWS 的安全组中打开了端口 88,并在端口 88 上 运行 了一个 http 服务器。我可以通过访问 http://888.888.888.888:88
所以服务器已连接,但 DNS 查询不知何故无法到达。
IP 表策略为 ACCEPT,未添加任何规则。 53端口已经在安全组中开放。
我可以采取哪些步骤来弄清楚发生了什么?有没有办法跟踪 DNS 查找失败的位置?任何帮助或建议都将非常有用。
来自Modify the DNS attributes for your VPC - Amazon Virtual Private Cloud:
Amazon provides a DNS server (the Amazon Route 53 Resolver) for your VPC. To use your own DNS server instead, create a new set of DHCP options for your VPC.
另请参阅:Add custom domain name resolution with DHCP options sets - Amazon Virtual Private Cloud
这让我想起了两个场景,我以前有过,你检查过这些吗?
- 返回查询系统的路由 there/not 根本不起作用,因此 DNS 答案从未返回到源头。因此只有本地查找有效,但在 VPC 内部和外部解析不起作用。
- 有一些其他服务正在侦听 UDP/TCP53。我没有想到任何确切的场景,绑定服务可以成功响应但仍然无法侦听 DNS 端口,但我也可以想象。
我会使用的工具是 tcpdump 和 traceroute。