对不起,如果这之前已经问过,但我似乎无法find任何具体的信息我的情况。
我运行一个服务器,用户可以通过这个服务器连接任天堂DS游戏,如果他们将DS的主DNS服务器更改为我的机器。 我目前正在使用一个简单的Python脚本,基本上转发所有的请求到他们的实际地址,除了一个: gamestats2.gs.nintendowifi.net ,它转发到我的IP。 问题是这个脚本在一两天后会停止工作,需要我重新启动它。
我能否在BIND9中覆盖单个主机,同时将所有其他地址转发到其正确的IP? 还是有另一台服务器会更好?
我会使用dnsmasq并在configuration中使用
address=/gamestats2.gs.nintendowifi.net/Yo.Ur.Ip.Ad
指示…
为了logging:你也可以用BIND来做这个,但是这个更复杂。 您需要将绑定configuration为要覆盖的特定资源logging的权威名称服务器。 例如,如果你想将gamestats2.gs.nintendowifi.netredirect到你自己的主机,你需要在你的named.conf这个:
zone "gamestats2.gs.nintendowifi.net" { type master; file "override.zone"; };
在override.zone ,像这样的区域定义:
$TTL 3600 $ORIGIN gamestats2.gs.nintendowifi.net. @ IN SOA localhost. lars.localhost. ( 2010011800 ; sn = serial number 172800 ; ref = refresh = 2d 900 ; ret = update retry = 15m 1209600 ; ex = expiry = 2w 3600 ; min = minimum = 1h ) ; we need one nameserver IN NS ns0 ; and we're overriding the public ip address with ; this address. IN A 10.0.0.1 ns0 IN A 127.0.0.1
也就是说,你的区域文件必须至less提供一个SOAlogging,至less有一个NSlogging,并且所列出的名称服务器必须存在有效的Alogging…你可能需要一个Alogging来提供你select的地址。
有了这一切:
$ host gamestats2.gs.nintendowifi.net localhost Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases: gamestats2.gs.nintendowifi.net has address 10.0.0.1
这当然不像使用dnsmasq那么方便,但是值得了解。