我已经设置绑定为我的Intranet DNSparsing服务(在Ubuntu 16.04.02 LTS上运行)。
我想实现的是:拥有指向服务器的公共域名(例如:domain.com – > 1.2.3.4)使用指向内部机器的相同子域名(例如:machine1.domain.com – > 192.168。 1.100)
我做了什么:(configuration)
文件: /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.
问题:当我从一台计算机(DNS服务器设为DNS服务器“192.168.2.4”)为域名服务器的IP进行DNS查询时,它不会返回一个值,因此不会打开外部网页服务器(domain.com)。
我需要更改哪些DNS服务器才能正常工作?
为什么不为domain.com的区域设置转发,并为本地名称服务器具有权威性的domain.com的子域创build新的区域?
我的例子使用example.com而不是domain.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 |
| |
+ ------------------------- +
这里是configuration:
/etc/bind/named.conf.options :
选项{
目录“/ var / cache / bind”;
dnssec-validation auto;
auth-nxdomain no;
};
/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 IN A 192.168.33.5
; 主机
client1 IN A 192.168.33.1
server1 IN A 192.168.33.2
ns1 IN A 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在PTR client1.corp.example.com中。
2在PTR server1.corp.example.com中。
5 IN PTR ns1.corp.example.com。
注意:您在db.2.168.192区域文件中缺less$ ORIGIN指令,但在PTR RR中使用了快捷方式。
使用BIND的本地安装进行Nslookuptesting(转发到zone.com的8.8.8.8 ,以便我们可以得到一些结果):
>服务器127.0.0.1 默认服务器:127.0.0.1 地址:127.0.0.1#53 > set type = ns > corp.example.com 服务器:127.0.0.1 地址:127.0.0.1#53 corp.example.com nameserver = ns1.corp.example.com。
> set type = a > server1.corp.example.com 服务器:127.0.0.1 地址:127.0.0.1#53 名称:server1.corp.example.com 地址:192.168.33.2
> set type = a > www.example.com 服务器:127.0.0.1 地址:127.0.0.1#53 非权威的回答: 名称:www.example.com 地址:93.184.216.34
正如所说的,你需要分离内部地址空间和外部地址空间,例如:
http://www.xyz.com在互联网1.1.1.1(它的一个例子:P)
和www.xyz.com内部是192.168.1.20(示例)
你不能有相同的主机指向2个不同的地址,并期望得到一个内部和一个外部,除非你做“意见”。
如果ip是公网IP,那么你仍然可以连接到www.xyz.com,但是你的路由器需要能够做“发卡”连接,基本上它将stream量路由到自己的公共接口上。 大多数路由器都不愿意这样做。 你可以在外部维护2个DNS,在内部维护2个DNS,并且具有相同的视图效果。
每个公司域都有相同的问题,所以它已经完成;-)
实际上,在configuration中的任何位置都没有Alogging。
你想添加一些像
A 192.168.2.120 A 192.168.2.121
作为Alogging正好在你的NSlogging下面(或者刚好在上面)。 这将parsing“domain.com”到两个服务器。
(出于各种原因,虽然指向server1和server2的一对CNAME将是一个很好的答案,但通常DNS不允许这样做。)
你有所有的名称服务器和主机的logging,但没有域名本身。 您可能也需要该域的MXlogging。