使用 BIND9 覆盖 DNS 记录?

使用 BIND9 覆盖 DNS 记录?

抱歉,如果之前已经问过这个问题,但我似乎找不到任何针对我的情况的具体信息。

我运行一个服务器,如果用户将他们的 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

这肯定不如使用域名系统,但值得了解。

相关内容