是否有可能基于客户端的Mac(或其他任何东西)返回不同的IP为同一个域?
例如,我有一个在localnet中使用的dynamic.test域,当userA查询dynamic.test的IP时,DNS服务器应该返回userA提供的预定义的IP地址,而当userB查询时,DNS服务器应该返回由userB 。
这个过程是这样的:
[userA] # dns-register dynamic.test 10.0.0.100 [userB] # dns-register dynamic.test 10.0.0.101 [userA] # nslookup dynamic.test #==> should give 10.0.0.100 [userB] # nslookup dynamic.test #==> should give 10.0.0.101 [userA] # dns-register dynamic.test 10.0.0.103 [userA] # nslookup dynamic.test #==> should give 10.0.0.103
dns-register是DNS server提供的示例工具
也许不是直接的,但与DHCP组合,这是可能的。 第一步是为两个(或更多)池configurationDHCP,它们可以在同一个子网中,并为已知的MAC添加一个池中的静态保留。
第二步是configuration支持view的DNS服务器,例如BIND,通过IP od子网view匹配的客户端,并且可以针对不同的客户端返回不同的值。 Pro DNS和BIND中的一个view的例子:
view "trusted" { match-clients { 192.168.23.0/24; }; // our network recursion yes; // other view statements as required zone "example.com" { type master; // private zone file including local hosts file "internal/master.example.com"; }; // add required zones }; view "badguys" { match-clients {"any"; }; // all other hosts // recursion not supported recursion no; // other view statements as required zone "example.com" { type master; // public only hosts file "external/master.example.com"; }; // add required zones };