抱歉,如果之前已经问过这个问题,但我似乎找不到任何针对我的情况的具体信息。
我运行一个服务器,如果用户将他们的 DS 主 DNS 服务器更改为我的盒子,他们就可以连接到 Nintendo DS 游戏。我目前正在使用一个简单的 Python 脚本,该脚本基本上将所有请求转发到他们的实际地址,但有一个除外:gamestats2.gs.nintendowifi.net
它将转发到我的 IP。问题是这个脚本往往会在一两天后停止工作,需要我重新启动它。
我能否在 BIND9 中覆盖该单个主机,同时将所有其他地址转发到其正确的 IP?或者是否有其他更好的服务器?
答案1
我将使用 dnsmasq 并在配置中设置特定的覆盖
address=/gamestats2.gs.nintendowifi.net/Yo.Ur.Ip.Ad
指示...
答案2
记录:您也可以使用 BIND 执行此操作,但操作会稍微复杂一些。您需要将 bind 配置为要覆盖的特定资源记录的权威名称服务器。例如,如果您想将 gamestats2.gs.nintendowifi.net 重定向到您自己的主机,您需要在您的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
也就是说,您的区域文件必须至少提供一条SOA
记录,至少一条
NS
记录,并且必须存在A
列出的名称服务器的有效记录......并且您可能需要一条A
记录来提供您选择的地址。
有了这些:
$ 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
这肯定不如使用域名系统,但值得了解。