我有一台 CentOS 服务器 (amanda01),在三个不同的子网上有三个 IP 地址。
eth0 = 10.0.2.0 subnet eth0.vlan101 = 10.101.0.0 subnet eth0.vlan107 = 10.107.0.0 subet
(正如您所看到的,每个 IP 都位于其自己的 VLAN 上,并且每个 VLAN 都从父接口 eth0 出去)
我的 DNS 服务器中有 3 个 A 记录。
amanda01.domain.grp IN A 10.0.2.81 amanda01.domain.grp IN A 10.101.0.14 amanda01.domain.grp IN A 10.107.0.14
我从 10.0.2.0 子网上的服务器 ping 主机名amanda01
,DNS 服务器使用上面列出的三个 IP 中的任何一个进行响应。这显然是循环行为。
我的问题如下:
如何使 DNS 服务器仅响应原始请求所在的子网? 即:如果我要 ping 的服务器位于 IP 10.0.2.11 上,我只需要 10.0.2.81 的响应。
答案1
您必须使用所谓的水平分割或分割视图 DNS。
并非所有服务器都支持此功能。你可能需要使用ISC绑定为了实现这一目标,如NLnet 实验室的 NSD大多数其他现代重写不会宣传对此的支持。
从实际角度来看,我建议考虑创建一个包含所有主机名的单个区域,然后使用 shell 脚本根据原始区域自动生成分割区域(通过为每个分割视图仅选择相应的子网) 。你可以使用类似的东西格雷普西德尔如果您的子网比单纯的 /24 更复杂。