Giới thiệu.

Trong bài viết trước chúng ta đã tìm hiểu về DNS là gì và một số khái niệm chung. Hôm nay mình sẽ trình bày cách thức thiết lập một DNS server đơn giản. Ở mức độ đơn giản thì chúng ta có thể sử dụng cho mạng nội bộ. Mục tiêu có thể là phục vụ cho hệ thống gồm 50 máy trạm trở xuống chẳng hạn.

Bài Lab này sẽ sử dụng các máy ảo với thông tin như sau:

  • Primary DNS server (Máy chủ DNS chính):
    • Operating system : Ubuntu 16.04 LTS 64 bit server
    • Hostname : dns1.echip.local
    • IP address : 192.168.1.101/24
  • Secondary DNS server (Máy chủ DNS dự phòng):
    • Operating system : Ubuntu 16.04 LTS 64 bit server
    • Hostname : dns2.echip.local
    • IP address : 192.168.1.102/24
  • DNS Client (Máy trạm của nhân viên):
    • Operating system : Windows XP
    • Hostname : echip-xpclient
    • IP address : 192.168.1.103/24

Hướng dẫn cài đặt và cấu hình trên Primary DNS server.

Cài đặt BIND.

Bước 1: Ta cài đặt BIND và các gói cần thiết bằng lệnh:

sudo apt-get install bind9 bind9utils bind9-doc

Cài đặt Caching DNS.

Bước 2: Ta chỉnh sửa file /etc/bind/named.conf.options bằng lệnh:

sudo nano /etc/bind/named.conf.options

Bước 3: Tìm đoạn có thông số forwarders sửa nội dung lại như sau:

forwarders {
 8.8.8.8;
 };

Bước 4: Bấm Ctrl + X. Sau đó bấm Y rồi enter để lưu lại. Tiếp theo khởi động lại Bind9 bằng lệnh:

sudo systemctl restart bind9

Xác định Forward zone và Reverse zone.

Bước 5: Chỉnh thông số Forward zoneReverse zone bằng cách sử file /etc/bind/named.conf.local:

sudo nano /etc/bind/named.conf.local

Bước 6: Thêm nội dung dưới đây vào:

zone "echip.local" {
        type master;
        file "/etc/bind/for.echip.local";
        allow-transfer { 192.168.1.102; };
        also-notify { 192.168.1.102; };
 };
zone "1.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/rev.echip.local";
        allow-transfer { 192.168.1.102; };
        also-notify { 192.168.1.102; };
 };

Bước 7: Tạo Forward zone file bằng lệnh:

sudo nano /etc/bind/for.echip.local

Bước 8: Thêm nội dung bên dưới và lưu lại:

$TTL 86400
@   IN  SOA     dns1.echip.local. root.echip.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          dns1.echip.local.
@       IN  NS          dns2.echip.local.
@       IN  A           192.168.1.101
@       IN  A           192.168.1.102
@       IN  A           192.168.1.103
dns1    IN  A           192.168.1.101
dns2    IN  A           192.168.1.102
echip-xpclient  IN  A   192.168.1.103

Bước 9: Tạo Reverse zone file bằng lệnh:

sudo nano /etc/bind/rev.echip.local

Bước 10: Thêm nội dung bên dưới rồi lưu lại:

$TTL 86400
@   IN  SOA     dns1.echip.local. root.echip.local. (
        2011071002  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          dns1.echip.local.
@       IN  NS          dns2.echip.local.
@       IN  PTR         echip.local.
dns1     IN  A          192.168.1.101
dns2     IN  A          192.168.1.102
echip-xpclient  IN  A   192.168.1.103
101     IN  PTR         dns1.echip.local.
102     IN  PTR         dns2.echip.local.
103     IN  PTR         echip-xpclient.echip.local.

Bước 11: Phân quyền cho thư mục /etc/bind:

sudo chmod -R 755 /etc/bind
sudo chown -R bind:bind /etc/bind

Bước 12: Kiểm tra các file config đã đúng chưa bằng lệnh bên dưới. Nếu không báo lỗi gì là OK nha các bạn.

sudo named-checkconf /etc/bind/named.conf
sudo named-checkconf /etc/bind/named.conf.local

Bước 13: Kiểm tra các zone file config đúng chưa:

sudo named-checkzone echip.local /etc/bind/for.echip.local
zone echip.local/IN: loaded serial 2011071001
OK
sudo named-checkzone echip.local /etc/bind/rev.echip.local
zone echip.local/IN: loaded serial 2011071002
OK

Bước 14: Khởi động lại Bind

sudo systemctl restart bind9

Bước 15: Chỉnh sửa file /etc/network/interfaces và thêm option dns-nameservers:

sudo nano /etc/network/interfaces
dns-nameservers 192.168.1.101
dns-nameservers 192.168.1.102

Hướng dẫn cài đặt và cấu hình trên Secondary DNS server.

Bước 1: Ta cài đặt BIND và các gói cần thiết bằng lệnh:

sudo apt-get install bind9 bind9utils bind9-doc

Xác định Forward zone và Reverse zone file.

Bước 2: Chỉnh sửa file /etc/bind/named.conf.local

sudo nano /etc/bind/named.conf.local

Bước 3: Thêm nội dung dưới đây và lưu lại:

zone "echip.local" {
        type slave;
        file "/var/cache/bind/for.echip.local";
        masters { 192.168.1.101; };
 };
zone "1.168.192.in-addr.arpa" {
        type slave;
        file "/var/cache/bind/rev.echip.local";
        masters { 192.168.1.101; };
 };

[box type=”note” align=”” class=”” width=””]Lưu ý: Địa chỉ 192.168.1.101 là địa chỉ của Primary DNS server. Và đường dẫn của zone file phải là /var/cache/bind/ vì tường lửa AppArmor chỉ cho phép quyền write ở đó.[/box]

Bước 4: Phân quyền cho thư mục /etc/bind:

sudo chmod -R 755 /etc/bind
sudo chown -R bind:bind /etc/bind

Bước 5: Chỉnh sửa file /etc/network/interfaces và thêm option dns-nameservers:

sudo nano /etc/network/interfaces
dns-nameservers 192.168.1.101
dns-nameservers 192.168.1.102

Bước 6: Khởi động lại máy chủ Secondary DNS để các thiết lập có hiệu lực:

sudo reboot

Hướng dẫn đặt DNS cho máy Client và test.

Video hướng dẫn.

[box type=”note” align=”” class=”” width=””]Sau bài này chúng ta sẽ học cấu hình DHCP để cấp địa chỉ IP tự động cho các máy client trong mạng nội bộ nhé.[/box]

5 Bình luận
  1. Nam Tran 1 năm trước

    ah oi may clent da phan giai duocdia chi cua hai server nhung khong the ping duoc google.com thi phai lam the nao a.EM cam on

    • Tác giả
      Hoàng Nguyễn 1 năm trước

      Bạn xem lại chỗ cấu hình forwarders ấy điền vào đó địa chỉ 8.8.8.8 và 8.8.4.4 là opendns của google để khi local dns không phân giải được thì nó sẽ hỏi những server đó. Làm trên máy ảo có khi nó chậm á, trong video mình làm nó cũng bị chậm tưởng ping không được luôn.

  2. Sói 6 tháng trước

    Bạn ơi, cho mình hỏi là thay vì cấu hình gía trị”masters{}” trong mỗi zone của file “/etc/bind/named.conf.local”, thì giờ mình cấu hình giá trị “masters{}” một lần duy nhất trong file “named.conf.options” có được không. Để sau này có thay đổi IP ns1 đỡ phải update từng zone ấy 😀 Cảm ơn bạn nhiều nha.

    • Tác giả
      Hoàng Nguyễn 6 tháng trước

      Không được nhé bạn. Vì người lập trình phần mềm họ quy định sẵn file nào có thể cấu hình những gì. Làm khác thì xảy ra lỗi.

Gửi phản hồi

hoặc

Đăng nhập bằng tài khoản của bạn

hoặc    

Quên thông tin của bạn?

hoặc

Create Account

%d bloggers like this: