Sunday, February 19, 2012

Cấu hình Linux DNS Server (P3)

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.
>

No comments:

Post a Comment