Phần này tôi sẽ hướng dẫn cách delegate cho một subdomain.
Giả sử tôi có một subdomain là br1.mydomain.local. Đây là một chi nhánh của tổ chức mydomain.local.
Tôi muốn cho họ tự chịu trách nhiệm về việc quản lý các vấn đề liên quan đến DNS trong chi nhánh của họ. Khi đó, tôi sẽ ủy quyền cho họ để họ có thẩm quyền với cái br1.mydomain.local.
Ý tưởng chung sẽ là:
-Dựng một dns server trong br1.mydomain.local (ns.br1.mydomain.local)
-Trong SOA record của dns của mydomain.local (dns.mydomain.local), ta sẽ tiến hành ủy quyền về br1.mydomain.local.
-Sau khi đã ủy quyền cho br1.mydomain.local thì bất cứ vấn đề về dns của subdomain này sẽ do người admin của br1.mydomain.local chịu trách nhiệm xử lý.
Giả sử ns.br1.mydomain.local có địa chỉ ip là 10.0.0.10/24
File cấu hình của dns.mydomain.local
------------------------------------------------------------------------------
[root@dns chroot]# more etc/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";
};
File zone của mydomain.local
-------------------------------------------------------------------------
[root@dns chroot]# more var/named/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
; 2003080800 ; se = 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.
;subdomain definitions
$ORIGIN br1.mydomain.local.
IN NS ns.br1.mydomain.local.
ns IN A 10.0.0.10
Hãy chú ý phần tôi bôi đỏ. Đó chính là mấu chốt của việc uỷ quyền. Kể từ lúc này, biến ORIGIN sẽ là br1.mydomain.local. Ở đây, tôi cũng khai báo nameserver cho br1.mydomain.local là ns.br1.mydomain.local với ip là 10.0.0.10
Đối với ns.br1.mydomain.local
FIle cấu hình chính:
[root@ns chroot]# more etc/named.conf
options {
directory "/var/named"; // set the container folder
allow-transfer {10.0.0.2;};
dump-file "/var/log/named_dump.db";
};
###### zones definitions #######
zone "." in {
type hint;
file "named.root";
};
zone "br1.mydomain.local" in {
type master;
file "br1.mydomain.local.zone";
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.10.in-addr.arpa" in {
type master;
file "br1.mydomain.local.rev.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "localhost.rev.zone";
};
--------------------------------------------------------------------
Zone file của br1.mydomain.local
[root@ns chroot]# more var/named/br1.mydomain.local.zone
$TTL 2d ; set TTL value for zone
$ORIGIN br1.mydomain.local. ; domain name
; SOA record
@ IN SOA ns.br1.mydomain.local. admin.mydomain.local. (
2011261200; serial number
; 2003080800 ; se = serial number
2h;
10m;
7d;
1h;
)
IN NS ns.br1.mydomain.local.
; IN MX 10 mail.mydomain.local.
;defining ip address maps to each host name
ns IN A 10.0.0.10
mail IN A 10.0.0.3
Ở đây, tôi sử dụng mail server của mydomain.local để minh họa. Lúc này mail.mydomain.local cũng sẽ có một name mới là mail.br1.mydomain.local và vẫn có địa chỉ cũ 10.0.0.3
Test lại:
----------------
[root@mail ~]# hostname
mail.br1.mydomain.local
[root@mail ~]# more /etc/resolv.conf
nameserver 10.0.0.10
domain br1.mydomain.local
[root@mail ~]# nslookup
> ns
Server: 10.0.0.10
Address: 10.0.0.10#53
Name: ns.br1.mydomain.local
Address: 10.0.0.10
> mail
Server: 10.0.0.10
Address: 10.0.0.10#53
Name: mail.br1.mydomain.local
Address: 10.0.0.3
> 10.0.0.10
Server: 10.0.0.10
Address: 10.0.0.10#53
10.0.0.10.in-addr.arpa name = ns.br1.mydomain.local.
>
Sunday, February 19, 2012
Sunday, February 12, 2012
Cấu hình Linux DNS Server (P2)
Phần 1 đã hướng dẫn cách cấu hình một master nameserver tức là server chịu trách nhiệm chính cho việc phân giải tên cho toàn miền.
Trong DNS có thêm một khái niệm nữa là một nameserver đóng vai trò của một server dự phòng gọi là slave nameserver (hay secondary server). Khi nameserver chính xảy ra vấn đề và không thể đảm nhận trách nhiệm phân giải cho toàn miền thì slave nameserver sẽ chịu trách nhiệm phân giải tên cho miền.
Slave nameserver làm nhiệm vụ dự phòng nên dữ liệu mà nó chứa cũng giống như dữ liệu của master nameserver chứa.
Giả sử slave nameserver có địa chỉ IP là 10.0.0.10/24. Các bước cấu hình như sau:
1.File cấu hình chính
Nội dung của file cấu hình chính named.conf của slave nameserver sẽ như sau:
Như vậy, đối với named.conf của slave nameserver cần phải chỉ ra kiểu của server và đâu là master server.
2.Vấn đề về zone files:
Zone files trong slave nameserver có nội dung tương tự như của master nameserver. Do đó, ta có thể lấy lại nội dung các files của master nameserver.
[root@dns chroot]# ls var/named/*.zone
var/named/localhost.rev.zone var/named/mydomain.local.rev.zone
var/named/localhost.zone var/named/mydomain.local.zone
3.Kiểm tra
Đối với client, cần phải chỉnh sửa thông số của secondary nameserver trỏ về địa chỉ IP 10.0.0.10. Sau đó kiểm tra việc phân giải của slave nameserver khi master server đã bị disabled.
Như vậy, slave nameserver 10.0.0.10 đã đóng vai trò của một nameserver phân giải cho miền.
Trong DNS có thêm một khái niệm nữa là một nameserver đóng vai trò của một server dự phòng gọi là slave nameserver (hay secondary server). Khi nameserver chính xảy ra vấn đề và không thể đảm nhận trách nhiệm phân giải cho toàn miền thì slave nameserver sẽ chịu trách nhiệm phân giải tên cho miền.
Slave nameserver làm nhiệm vụ dự phòng nên dữ liệu mà nó chứa cũng giống như dữ liệu của master nameserver chứa.
Giả sử slave nameserver có địa chỉ IP là 10.0.0.10/24. Các bước cấu hình như sau:
1.File cấu hình chính
Nội dung của file cấu hình chính named.conf của slave nameserver sẽ như sau:
[root@dns chroot]# more etc/named.conf
options {
directory "/var/named"; // set the container folder
allow-transfer {"none";};
dump-file "/var/log/named_dump.db";
allow-notify {10.0.0.2;}; <-- cho phép nhận các thông tin update từ master nameserver
};
###### zones definitions #######
zone "." in {
type hint;
file "slaves/named.root";
};
zone "mydomain.local" in {
type slave; <-- định kiểu cho server là slave
file "slaves/mydomain.local.zone";
masters {10.0.0.2;}; <-- định địa chỉ của master server
};
zone "localhost" in {
type master;
file "slaves/localhost.zone";
};
zone "0.0.10.in-addr.arpa" in {
type slave;
file "slaves/mydomain.local.rev.zone";
masters {10.0.0.2;};
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "slaves/localhost.rev.zone";
};
options {
directory "/var/named"; // set the container folder
allow-transfer {"none";};
dump-file "/var/log/named_dump.db";
allow-notify {10.0.0.2;}; <-- cho phép nhận các thông tin update từ master nameserver
};
###### zones definitions #######
zone "." in {
type hint;
file "slaves/named.root";
};
zone "mydomain.local" in {
type slave; <-- định kiểu cho server là slave
file "slaves/mydomain.local.zone";
masters {10.0.0.2;}; <-- định địa chỉ của master server
};
zone "localhost" in {
type master;
file "slaves/localhost.zone";
};
zone "0.0.10.in-addr.arpa" in {
type slave;
file "slaves/mydomain.local.rev.zone";
masters {10.0.0.2;};
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "slaves/localhost.rev.zone";
};
Như vậy, đối với named.conf của slave nameserver cần phải chỉ ra kiểu của server và đâu là master server.
2.Vấn đề về zone files:
Zone files trong slave nameserver có nội dung tương tự như của master nameserver. Do đó, ta có thể lấy lại nội dung các files của master nameserver.
[root@dns chroot]# ls var/named/*.zone
var/named/localhost.rev.zone var/named/mydomain.local.rev.zone
var/named/localhost.zone var/named/mydomain.local.zone
3.Kiểm tra
Đối với client, cần phải chỉnh sửa thông số của secondary nameserver trỏ về địa chỉ IP 10.0.0.10. Sau đó kiểm tra việc phân giải của slave nameserver khi master server đã bị disabled.
[root@mail ~]# more /etc/resolv.conf
nameserver 10.0.0.2
nameserver 10.0.0.10
domain mydomain.local
[root@mail ~]# nslookup
> ftp
Server: 10.0.0.10
Address: 10.0.0.10#53
ftp.mydomain.local canonical name = www.mydomain.local.
Name: www.mydomain.local
Address: 10.0.0.4
> mail
Server: 10.0.0.10
Address: 10.0.0.10#53
Name: mail.mydomain.local
Address: 10.0.0.3
> 10.0.0.4
Server: 10.0.0.10
Address: 10.0.0.10#53
4.0.0.10.in-addr.arpa name = www.mydomain.local.
>
nameserver 10.0.0.2
nameserver 10.0.0.10
domain mydomain.local
[root@mail ~]# nslookup
> ftp
Server: 10.0.0.10
Address: 10.0.0.10#53
ftp.mydomain.local canonical name = www.mydomain.local.
Name: www.mydomain.local
Address: 10.0.0.4
Server: 10.0.0.10
Address: 10.0.0.10#53
Name: mail.mydomain.local
Address: 10.0.0.3
> 10.0.0.4
Server: 10.0.0.10
Address: 10.0.0.10#53
4.0.0.10.in-addr.arpa name = www.mydomain.local.
>
Như vậy, slave nameserver 10.0.0.10 đã đóng vai trò của một nameserver phân giải cho miền.
Thursday, February 9, 2012
Cấu hình Linux DNS Server (P1)
BIND là một phần mềm đang được sử dụng rộng rãi trong việc triển khai DNS service cho hệ thống mạng. Ngoài BIND ra còn một số phần mềm mã nguồn mở khác cũng cho phép ta thiết lập, cấu hình một DNS server như PowerDNS, djbdns,...
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:
;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
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
Subscribe to:
Posts (Atom)