DNS - 使用公共域名供内部使用

DNS - 使用公共域名供内部使用

我已将 Bind 设置为我的内联网 DNS 解析服务(在 Ubuntu 16.04.02 LTS 上运行)。

我想要实现的目标: 具有指向服务器的公共域名(例如:domain.com -> 1.2.3.4) 使用指向内部机器的相同子域名(例如:machine1.domain.com -> 192.168.1.100)

我所做的:(配置)

文件:/etc/bind/named.conf.options

options {
    directory "/var/cache/bind";

    recursion yes;
    allow-recursion { 192.168.2.0/24; };
    listen-on {192.168.2.4; };
    allow-transfer { none; };

    forwarders {
            192.168.2.1; #router
            8.8.8.8; #public dns
    };

    dnssec-validation auto;
    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

    acl "truested" {
            192.168.2.0/24;
            192.168.2.4; # ns1
            192.168.2.5; # ns2
};

文件:/etc/bind/named.conf.local

zone "domain.com" {
    type master;
    file "/etc/bind/zones/db.domain.com";
    allow-transfer { 192.168.2.5;};
};

zone 2.168.192.in-addr.arpa {
    type master;
    file "/etc/bind/zones/db.2.168.192";
    allow-transfer { 192.168.2.5; };
};

文件:/etc/bind/zones/db.domain.com

$TTL    604800
@       IN      SOA     ns1.domain.com. root.domain.com. (
                          5         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
; name servers - NS Records
    IN      NS      ns1.domain.com.
    IN      NS      ns2.domain.com.

; name servers - A Records
ns1.domain.com. IN      A       192.168.2.4
ns2.domain.com. IN      A       192.168.2.5

; 192.168.2.0/24 - A Records
server.domain.com.      IN      A       192.168.2.120
server2.domain.com.     IN      A       192.168.2.121
ns1.domain.com.         IN      A       192.168.2.4
ns2.domain.com.         IN      A       192.168.2.5

文件:/etc/bind/zones/db.2.168.192

$TTL    604800
@       IN      SOA     ns1.domain.com. root.domain.com. (
                          4         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
; name servers - NS Records
    IN      NS      ns1.domain.com.
    IN      NS      ns2.domain.com.

;       PTR Records
4       IN      PTR     ns1.domain.com.
5       IN      PTR     ns2.domain.com.
120     IN      PTR     server.domain.com.
121     IN      PTR     server2.domain.com.

问题:当我从计算机(将此服务器“192.168.2.4”设置为 DNS 服务器)执行 DNS 查找时,查找以下 IP 地址:域名.com它没有返回值。因此无法打开外部服务器 (domain.com) 的网页。

我必须进行哪些更改才能使 DNS 服务器按我希望的方式工作?

答案1

为什么不为该区域设置转发域名.com并为子域创建一个新区域域名.com哪个本地名称服务器具有权威性?

我的示例使用示例.com代替域名.com ...

                                   192.168.33.0/24                               
+-----------------------------+ |                                     
| | |                                     
| 客户端 1 |192.168.33.1 | +----------------------+
| client1.corp.example.com |----------- | |
| | |192.168.33.5 | 企业名称服务器|
+-----------------------------+ --------------| ns1.corp.example.com |
                                         | | |
                                         | +----------------------+
+-------------------------+ |                                     
| | |                                     
|服务器1 | 192.168.33.2 |                                     
|server1.corp.example.com |-----------|                                     
| | | +------------+          
+-------------------------+ |192.168.33.7 | |          
                                         --------------- 路由器 |          
                                         | | |          
                                         | +------|-----+          
                                         | |                
                                                              |                
                                                              |1.2.3.4         
                                                              |                
                                                              |                

                                                         互联网          
                                       1.2.3.5 /-----                       
                                   /-------------- |               
                +------------------ |               
                | | | 1.2.3.6       
                | WWW服务器 | |               
                | www.example.com | +------------|------------+  
                | | | |  
                +-----------------+ | example.com 名称服务器 |  
                                                  | ns.example.com |  
                                                  | |  
                                                  +-------------------------+

配置如下:

/etc/bind/named.conf.options

选项 {
    目录“/var/cache/bind”;

    dnssec 验证自动;

    auth-nxdomain 没有;
};

/etc/bind/named.conf.local

区域“example.com”{
    输入前进;
    货运代理 {
        1.2.3.6;
    };
};

区域“corp.example.com”{
    類型主屬;
    文件“/etc/bind/db.corp.example.com”;
};

区域 33.168.192.in-addr.arpa {
    類型主屬;
    文件“/etc/bind/db.192.168.33”;
};

/etc/bind/db.db.corp.example.com

                                       
$TTL 604800
$ORIGIN corp.example.com。

@ IN SOA ns1.corp.example.com.admin.example.com.(
                        5;         
                        604800;
                        86400;   
                        2419200;
                        604800;

;名称服务器
        在 NS ns1.corp.example.com 中。

;名称服务器
ns1 在 192.168.33.5

;主持人
客户端1在192.168.33.1中
服务器1 在 192.168.33.2 中
ns1 在 192.168.33.5

/etc/bind/db.192.168.33

$TTL 604800
$ORIGIN 33.168.192.in-addr.arpa。

@ IN SOA ns1.corp.example.com.admin.example.com.(
                        4;
                        604800;
                        86400;
                        2419200;
                        604800;
;名称服务器
        在 NS ns1.corp.example.com 中。

;主持人
1 IN PTR client1.corp.example.com。
2 IN PTR server1.corp.example.com。
5 输入 PTR ns1.corp.example.com。

注意:您缺少原产地指令数据库.2.168.192区域文件,但您在 PTR RR 中使用快捷方式。

使用本地安装的 BIND 进行 Nslookup 测试(转发到8.8.8.8对于区域示例.com这样我们就能得到一些结果):

> 服务器 127.0.0.1
默认服务器:127.0.0.1
地址:127.0.0.1#53
> 设置类型=ns
> corp.example.com
服务器:127.0.0.1
地址:127.0.0.1#53

corp.example.com 名称服务器 = ns1.corp.example.com。
> 设置类型=a
> server1.corp.example.com
服务器:127.0.0.1
地址:127.0.0.1#53

名称:server1.corp.example.com
地址:192.168.33.2

对于www.example.com

> 设置类型=a
> www.example.com
服务器:127.0.0.1
地址:127.0.0.1#53

非权威答案:
名称:www.example.com
地址: 93.184.216.34

答案2

如上所述,您需要分离内部地址空间和外部地址空间,例如:

互联网上的 www.xyz.com 1.1.1.1(这是一个例子:P)

www.xyz.com 内部地址为 192.168.1.20 (示例)

除非您做出“查看”,否则您不能让同一主机指向两个不同的地址并期望获得一个内部地址和一个外部地址。

如果 IP 是公共 IP,您仍然可以连接到 www.xyz.com,但您的路由器需要能够进行“发夹”连接,基本上它会在其公共接口上将流量路由到自身。大多数路由器都没有设置这样做。您可以维护 2 个 DNS,一个在外部,一个在内部,它们具有与视图相同的效果。

每个公司域名都有同样的问题,所以已经完成了;-)

答案3

您的配置中实际上并没有 domain.com 的 A 记录。

你想添加类似

   A       192.168.2.120
   A       192.168.2.121

作为 NS 记录下方(或上方)的 A 记录。这会将“domain.com”解析到两个服务器中。

(由于各种原因,虽然一对指向 server1 和 server2 的 CNAME 是一个很好的答案,但一般 DNS 不允许这样做。)

您拥有所有名称服务器和主机的 A 记录,但域名本身却没有。您可能还需要域名的 MX 记录。

相关内容