Thứ Năm, 2 tháng 8, 2012

Cấu hình Dynamic DNS trên CentOS 5.x

Đây là bài viết tiếp theo sau 2 bài DNS và DHCP trước. Vấn đề đặt ra ở đây là khi cấp phát các địa chỉ IP cho client xong thì làm thế nào để DNS cập nhập các bản ghi đó để tiện cho việc quản lý.
Ở bài này không phải cài lại từ đầu mà chỉ cần thay đổi 1 số nhỏ trong các file cấu hình của BIND và DHCP là xong.
1, Tạo key dành cho việc chứng thực giữa DHCP và BIND , tên của nó là rndckey :
- [root@srv2 ~]# rndc-confgen > /var/named/chroot/etc/rndc.key
2, Chỉnh sửa trong file rndc.key trong đường dẫn /var/named/chroot/etc/ : đặt dấu # tại các dòng in đậm, sao cho giống như file mẫu sau
# Start of rndc.conf
key "rndckey" {
     algorithm hmac-md5;
     secret "4zxdQwfZxHkp4puLMnkWCg==";
};
#options {
# default-key "rndckey";
# default-server 127.0.0.1;
# default-port 953;
#}
;
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndckey" {
# algorithm hmac-md5;
# secret "4zxdQwfZxHkp4puLMnkWCg==";
# };
#
# controls {
# inet 127.0.0.1 port 953
3, Chỉnh sửa file named.conf trong /var/named/chroot/etc/ : chú ý các dòng in đậm phải thêm vào

include "/etc/rndc.key";
options {
directory "/etc";
forwarders {208.67.222.222;};
};
zone "." {
type hint;
file "/etc/root.db";
};
zone "example.com" {
type master;
file "/var/named/example.com.db";
allow-update { key rndckey; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/var/named/1.168.192.db";
allow-update { key rndckey; };
};
4, Chỉnh sửa file dhcpd.conf trong /etc/ : lưu ý sửa cho đúng theo những đoạn đã in đậm

include "/etc/rndc.key";
authoritative;
server-identifier srv2.example.com;
ddns-domainname "example.com";
ddns-rev-domainname "in-addr.arpa";
ddns-updates on;
allow client-updates;

ddns-update-style interim;
DHCPARGS=eth1;
zone example.com. {
primary 192.168.1.2;
key rndckey;
}
zone 1.168.192.in-addr.arpa. {
primary 192.168.1.2;
     key rndckey;
}


subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.1.2;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.1.2;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.1.20 192.168.1.100;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
hardware ethernet 00:0C:29:FA:41:88;
fixed-address 192.168.1.50;
}
}
5, Trong thư mục /var/named/chroot/var/named , tạo sẵn 2 file có dạng sau và chmod cho chúng để có thể ghi vào các file :
- [root@srv2 named]# touch 1.168.192.db.jnl       ( bỏ )
- [root@srv2 named]# touch example.com.db.jnl     ( bỏ )
- [root@srv2 named]# chmod 776 example.com.db.jnl 1.168.192.db.jnl   ( bỏ )
- [root@srv2 named]# chmod 666 example.com.db 1.168.192.db
- [root@srv2 named]# chmod 770 /var/named/chroot/var/named/

6, Cấu hình selinux cho phép thực hiện update các bản ghi :
- [root@srv2 /]# setsebool -P named_write_master_zone=1

7, Khởi động lại các dịch vụ :
- [root@srv2 /]# /etc/init.d/named restart
- [root@srv2 /]# /etc/init.d/dhcpd restart

8, Test bằng cách để 1 client nhận địa chỉ IP động từ DHCP, sau đó nslookup chính địa chỉ IP mà máy đó nhận được , nếu có kết quả trả về tức là thành công. Lúc này trong đường dẫn /var/named/chroot/var/named/ sẽ tạo ra 2 file example.com.db.jnl1.168.192.db.jnl ( bắt đầu có client nhận IP từ DHCP thì lúc đó mới tạo ra 2 file trên )


P/S :
- Đã sửa dòng ddns-rev-domainname "1.168.192.in-addr.arpa"; trong file dhcpd.conf thành ddns-rev-domainname "in-addr.arpa"; vì nếu có 1.168.192 ở đầu thì nó sẽ cập nhập vào trong 1.168.192.db thành dòng có dạng
100.1.168.192    PTR   client.example.com.
 làm cho máy client không thể phân giải được địa chỉ. Nếu đúng thì phải là
100                     PTR   client.example.com.
- File 1.168.192.db sẽ trở thành có dạng như sau, file example.com.db cũng tương tự :
$ORIGIN .
$TTL 86400      ; 1 day
1.168.192.in-addr.arpa  IN SOA  example.com. root.example.com. (
                                2007121802 ; serial
                                14400      ; refresh (4 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      srv2.example.com.
$ORIGIN 1.168.192.in-addr.arpa.
1                       PTR     srv1.example.com.
$TTL 10800      ; 3 hours
100                     PTR     client.example.com.
$TTL 86400      ; 1 day
2                       PTR     srv2.example.com.
3                       PTR     srv3.example.com.

- Gạch bỏ 1 số bước ở trên.
- Làm trên CentOS 5.7 nhanh hơn 5.5 ( ? )


Không có nhận xét nào:

Đăng nhận xét