因此,我在 OpenStack 环境中运行 Ubuntu 14.04 VM。DNS 机器有一个外部 IP(10.14.6.3)和一个内部 IP(192.168.1.3)。我在同一个项目中还有另外两台机器 [h1],它们有一个外部 IP(10.14.6.4)和一个内部 IP(192.168.1.4),[n1] 有一个外部 IP(10.14.6.5)和内部 IP(192.168.1.5)。
h1 和 n1 在其 resolv.conf 中设置了 DNS 机器的 IP,并且可以正确解析。
我还将我的本地机器(openstack 之外)设置为使用 10.14.6.3 作为我的 DNS 服务器。
在 DNS 机器绑定数据库文件中,我有以下条目:
h1 IN A 192.168.1.4
h1 IN A 10.14.6.4
n1 IN A 192.168.1.5
n1 IN A 10.14.6.5
指针文件具有以下内容:
1 IN PTR h1.
2 IN PTR h1.
3 IN PTR n1.
4 IN PTR n1.
我的本地机器只能与 10.14 子网通信。我希望 h1 和 n1 通过 192.168 子网(而不是 10.14)相互解析。
大多数情况下,这种方法都行得通。如果我从 n1 ping h1,它会解析为 192.168.1.4。如果我从本地计算机 ping h1,它会解析为 10.14.6.4
但偶尔,如果我从任意一台机器 ping,则会使用另一个 IP。有时我的本地机器会将 h1 解析为 192.168.1.4,这不起作用。
我的问题是,有没有办法强制进行顺序解析而不使用本地主机文件?我希望 openstack 内部的机器通过本地 IP 192.168.xx 相互解析,并且我希望 openstack 外部的机器通过机器外部 IP 10.14.xx 解析名称
答案1
我不太清楚你想要什么,但是单个区域中同一资源记录的多个条目例如:
h1 IN A 192.168.1.4
h1 IN A 10.14.6.4
叫做轮询 DNS效果正如你所描述的那样,有时访问主机 h1 时使用 ip 地址 192.168.1.4,另一次使用 10.14.6.4
我希望 openstack 内部的机器通过本地 IP 192.168.xx 相互解析,并且我希望 openstack 外部的机器通过机器外部 IP 10.14.xx 解析名称
您可以通过使用以下方法解决该问题水平分割 DNS,它允许根据 DNS 请求的来源位置对相同的主机名进行不同的解析,或者只是为每个 IP 地址提供唯一的名称,例如h1.int.example.com.
和h1.ext.example.com.
。