如何使用bind9从外部解析域?

时间:2014-11-25 21:32:54

标签: bind resolve

前言

我通过家庭网络在同一个盒子上托管Web服务器和DNS服务器。外部IP是动态的。为了解决这个问题,我使用名为no-ip.com的付费服务来自动更新mydnsserver.com的IP(假设外部IP为11.22.33.444)。我想使用mydnsserver.com来解析mywebsite.com(以及之后的任何其他网站),以便所有与mywebsite.com的外部连接都将由Apache处理。

问题

我遇到的问题是找不到解决办法,当我在手机上访问mywebsite.com(外部连接)时,我的浏览器会解析为localhost。我需要域(在服务器内部和外部)解析到运行在mydnsserver.com上的Apache,以便从我的服务器呈现网站。我想这样做而不必为A记录输入服务器的IP地址。

注册商设置(Godaddy)

mywebsite.com名称服务器设置

ns.mydnsserver.com
ns2.mydnsserver.com

mydnsserver.com名称服务器设置

ns1.no-ip.com
ns2.no-ip.com
ns3.no-ip.com
ns4.no-ip.com
ns5.no-ip.com


解析配置

/etc/resolve.conf

domain mywebsite.com
search mywebsite.com
nameserver 127.0.0.1


Bind9配置

/etc/bind/named.conf

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

/etc/bind/named.conf.options

options {
    directory "/var/cache/bind";
    dnssec-validation auto;
    auth-nxdomain no;
    listen-on-v6 { any; };
    listen-on port 53 { any; };
};

/etc/bind/named.conf.default-zones

zone "." {
    type hint;
    file "/etc/bind/db.root";
};

zone "mywebsite.com" {
    type master;
    file "/etc/bind/zones/mywebsite.zone";
};

zone "localhost" {
    type master;
    file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};

/etc/bind/zones/mywebsite.zone

$TTL 1d
@       IN      SOA     mywebsite.com. root.mywebsite.com. (
                       2014112501   ; serial#
                       1h           ; refresh, seconds
                       1h           ; retry, seconds
                       1h           ; expire, seconds
                       1h )         ; minimum, seconds

@               IN      NS      mywebsite.com.
@               IN      A       127.0.0.1
@               IN      MX 0    mail.mywebsite.com.
www     IN      A       127.0.0.1


NSLOOKUP

mywebsite.com

Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   mywebsite.com
Address: 127.0.0.1

mydnsserver.com

Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   mydnsserver.com
Address: 11.22.33.444


我正在做的是不可能的?我 - 有 - 使用真实的IP地址来解决?看起来它正在做的是完全按照我输入的区域文件,并将任何浏览器设置为完全相同。

1 个答案:

答案 0 :(得分:1)

将区域文件移出/ etc / bind / zones并更新named.conf.default以查找新位置中的区域解决了问题。