Post này sẽ hướng dẫn cấu hình một master DNS server trên BIND 9 trong một trường hợp cụ thể. Yêu cầu để có thể làm đc là đã hiểu được khác niệm cơ bản về DNS.
Giả sử tôi có mô hình mạng gồm các server và host như sau:
Domain: mydomain.local
Hosts | DNSname | IP address
-----------------------------------------------------------------------------------------------------
DNS server dns.mydomain.local 10.0.0.2/24
Mail server mail.mydomain.local 10.0.0.3/24
Web/ftp server www.mydomain.local 10.0.0.4/24
----------------------------------------------------------------------------------------------------
1.Cài đặt BIND
Có thể cài đặt thông qua yum (đang setup trên CentOS) hoặc từ build từ source
2.Xác định số zone files
Ta sẽ phải thiết lập các zone files để phục vụ cho việc phân giải tên (thuận / nghịch)
Ta sẽ cần tối thiểu các zone files sau:
-2 zone file cho việc phân giải thuận từ IP sang tên host. Một file dùng cho mydomain.local. Một file dùng cho localhost.
-2 zone file cho việc phân giải nghịch từ tên sang IP. Một file dùng cho subnet 10.0.0.0/24. Một file dùng cho localhost.
-Một zone file phân giải các root servers. Download tại http://www.internic.net/zones/named.root
Ta sẽ đặt tên các file đó như sau:
-Phân giải thuận: mydomain.local.zone (dùng cho mydomain.local) và localhost.zone (dùng cho localhost)
-Phần giải nghịch: localhost.rev.zone (dùng cho localhost) và mydomain.local.rev.zone (dùng cho 10.0.0.0/24 subnet)
Nội dung các file như sau:
[root@dns named]# ls *.zone
localhost.rev.zone mydomain.local.rev.zone
localhost.zone mydomain.local.zone
[root@dns named]# more mydomain.local.zone
$TTL 2d ; set TTL value for zone
$ORIGIN mydomain.local. ; domain name
; SOA record
@ IN SOA dns.mydomain.local. admin.mydomain.local. (
2011261200; serial number
2h;
10m;
7d;
1h;
)
IN NS dns.mydomain.local.
IN MX 10 mail.mydomain.local.
;defining ip address maps to each host name
dns IN A 10.0.0.2
mail IN A 10.0.0.3
www IN A 10.0.0.4
ftp IN CNAME www.mydomain.local.
localhost.rev.zone mydomain.local.rev.zone
localhost.zone mydomain.local.zone
[root@dns named]# more mydomain.local.zone
$TTL 2d ; set TTL value for zone
$ORIGIN mydomain.local. ; domain name
; SOA record
@ IN SOA dns.mydomain.local. admin.mydomain.local. (
2011261200; serial number
2h;
10m;
7d;
1h;
)
IN NS dns.mydomain.local.
IN MX 10 mail.mydomain.local.
;defining ip address maps to each host name
dns IN A 10.0.0.2
mail IN A 10.0.0.3
www IN A 10.0.0.4
ftp IN CNAME www.mydomain.local.
--------------------------------------------
[root@dns named]# more mydomain.local.rev.zone
;Zone file for mydomain.local
;Name: mydomain.local.rev.zone
$TTL 2d
$ORIGIN 0.0.10.in-addr.arpa.
@ IN SOA dns.mydomain.local. admin.mydomain.local (
2011261200; serial number
2h
10m
7d
1h
)
IN NS dns.mydomain.local.
2 IN PTR dns.mydomain.local.
3 IN PTR mail.mydomain.local.
4 IN PTR www.mydomain.local.
------------------------------------------------------
[root@dns named]# more localhost.zone
;Zone file for localhost
;Name: localhost.zone
$TTL 2d
$ORIGIN localhost.
@ IN SOA localhost root.localhost (
2011261200; serial number
2h
10m
7d
1h
)
@ 1D IN NS @
1D IN A 127.0.0.1
--------------------------------------------------
[root@dns named]# more localhost.rev.zone [root@dns named]# more mydomain.local.rev.zone
;Zone file for mydomain.local
;Name: mydomain.local.rev.zone
$TTL 2d
$ORIGIN 0.0.10.in-addr.arpa.
@ IN SOA dns.mydomain.local. admin.mydomain.local (
2011261200; serial number
2h
10m
7d
1h
)
IN NS dns.mydomain.local.
2 IN PTR dns.mydomain.local.
3 IN PTR mail.mydomain.local.
4 IN PTR www.mydomain.local.
------------------------------------------------------
[root@dns named]# more localhost.zone
;Zone file for localhost
;Name: localhost.zone
$TTL 2d
$ORIGIN localhost.
@ IN SOA localhost root.localhost (
2011261200; serial number
2h
10m
7d
1h
)
@ 1D IN NS @
1D IN A 127.0.0.1
--------------------------------------------------
;Reverse map for localhost
;Filename: localhost.rev.zone
$TTL 2d
@ IN SOA localhost root.localhost (
2011261200; serial number
2h
10m
7d
1h
)
@ 3W IN NS localhost.
1 3W IN PTR localhost.
3.Thiết lập file cấu hình named.conf
[root@dns etc]# more named.conf
options {
directory "/var/named"; // set the container folder
allow-transfer {"none";};
dump-file "/var/log/named_dump.db";
};
###### zones definitions #######
zone "." in {
type hint;
file "named.root";
};
zone "mydomain.local" in {
type master;
file "mydomain.local.zone";
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.10.in-addr.arpa" in {
type master;
file "mydomain.local.rev.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "localhost.rev.zone";
};
Như vậy đã có đầy đủ các thành phần để xây dựng một Master DNS server đơn giản với BIND.
Cần điều chỉnh DNS của host về địa chỉ IP của DNS server là 10.0.0.2.
Test thử:
[root@mail ~]# more /etc/resolv.conf
nameserver 10.0.0.2
domain mydomain.local
[root@mail ~]# nslookup
> www.mydomain.local
Server: 10.0.0.2
Address: 10.0.0.2#53
Name: www.mydomain.local
Address: 10.0.0.4
> ftp
Server: 10.0.0.2
Address: 10.0.0.2#53
ftp.mydomain.local canonical name = www.mydomain.local.
Name: www.mydomain.local
Address: 10.0.0.4
> 10.0.0.3
Server: 10.0.0.2
Address: 10.0.0.2#53
3.0.0.10.in-addr.arpa name = mail.mydomain.local.
>
Lưu ý: nếu cài gói bind-chroot thì thư mục root của BIND sẽ nằm ở /varnamed/chroot
[root@dns chroot]# pwd
/var/named/chroot
[root@dns chroot]# ls
dev etc proc var
có cách nào triển khai dns server mà không sửa file resolv.conf, chỉ được sửa file interfaces không ạ
ReplyDelete