Dịch vụ DNS

Dịch vụ DNS (Port 53) hoạt động ở tầng ứng dụng (Application) của mô hình TCP/IP với giao thức truyền là TCP hoặc UDP (Tin cậy hoặc không tin cậy)

- Mô hình TCP/IP có 4 tầng: Physical, Internet, Transport, Application

- DNS sử dụng chủ yếu kiểu truyền UDP hay TCP(Transmission control protocol)?

- Khi nào DNS sử dụng kiểu truyền UDP và khi nào sử dụng?

Một số giao thức (Dịch vụ) ở tầng ứng dụng như: DNS, FTP - File Transfer Protocol (Truyền tải tập tin, upload), HTTP (Giao thức truy cập), HTTPS, SMTP - Simple Mail Transfer Protocol (Giao thức ửi nhận thư điện tử), SMB, POP3, SSH, SNMP - Simple Network Management (Giao thức giám sát quản trị các thiết bị), Telnet (Giao thức giống như RDP nhưng chỉ có màn hình văn bản),...

Gọi là DNS, FTP,.. gọi là một dịch vụ thì sẽ đúng khi triển khai thực tế, còn ở phương diện kĩ thuật gọi đúng nhất là một giao thức.

Nhiệm vụ của dịch vụ:

- Phân giải tên của 1 máy tính thành 1 địa chỉ IP, hoặc đáp lời lại các máy client để dịch những tên domain thành địa chỉ IP tương ứng.

Ví dụ:  

112.45.44.55 cisco.com 

112.45.44.55 cisco.com

Thường thì mỗi domain sẽ có 1 hoặc nhiều địa chỉ IP tương 

DNS Server là gì?

- Là một thiết bị trong mạng để quản lý các tên miền (Tên máy + tên). 

- Khi client gửi yêu cầu lên DNS Server tên máy tính/tên miền (Ví dụ: tenmay1.abc.com.vn) thì DNS Server trả về kết quả là 1 địa chỉ IP tương ứng, hoặc ngược lại, client gửi lên 1 địa chỉ IP và DNS Server trả về cho biết IP đó tương ứng với máy tên gì. (Thường sẽ dùng chiều thuận nhiều: Client gửi lên tên miền/tên máy  và nhờ DNS Server phân giải)

- Một hệ thống DNS được cài đặt, xây dựng theo 1 cấu trúc hình cây với nhiều cấp độ hoặc mức (Level) của DNS Server.


- Domain tượng trưng bằng dấu chấm "." gọi là root domain

- Dưới root domain gọi là những domain cấp (Gọi là top level )

Ví dụ: .com là domain của những công ty về kinh doanh, .edu là những đơn vị về giáo dục, .gov là những đơn vị của chính phụ, .vn là tổ chức mà nằm trong nước Việt Nam

- Dưới domain cấp 1 thì có domain cấp 2 (Gọi là domain )

- Mỗi domain trên (root, cấp 1, cấp 2) thì nó có một hoặc nhiều DNS Server.

- DNS Server sẽ quản lý những cái tên trong Domain

- Ở cấp 1: Ở DNS Server của Domain .vn (Cấp 1), nó biết được địa chỉ của các DNS cấp con (Cấp 2). DNS cấp 1 nó quản lý được địa chỉ của các DNS Server cấp con (Cấp 2)

- Ở cấp root: DNS Server của domain root nó biết được địa chỉ của các DNS Server cấp con (Cấp 1) và quản lý được luôn.

Quản lý chỉ được 1 cấp gần nhất, chứ không vượt 2 cấp


Ví dụ:

domain.com.vn

domain.gov.vn

Trên 1 nút trên cây là tên của nút đó đi ngược về gốc.

     .            ← Root (gốc)

     ┌──┼────────┬──────┬─────┬───────┐

    com edu     gov    vn    fr     uk  ← TLDs

                         │

            ┌────────────┼────────────┐

         vnn.vn       com.vn      edu.vn ... ← SLDs (Second-Level Domains)



Ví dụ: nano.com (Top domain)

      .

       └── com

             └── nano


nano.edu.vn

       .

        └── vn

              └── edu

                    └── nano


nano.gov.vn

      .

       └── vn

             └── gov

                   └── nano


Cơ sở dữ liệu của dịch vụ DNS


Có web server: 

Domain: ctt.com.vn


DNS Server của ctt biết được địa chỉ DNS Server miền con của nó là www, tương tự mấy DNS Server khác cũng vậy

www ở ô ctt là viết tắt www chứ nếu rõ ràng ra là www.ctt.com.vn

Ví dụ:

Khi client gửi 1 tên miền lên DNS Server, thì DNS Server nó sẽ biết cách để tìm tên miền được gửi lên có IP là bao nhiêu, tên miền đó nằm ở Domain nào thì nó sẽ đến domain đó nó hỏi DNS Server của domain đó nó sẽ ra kết quả

Quy trình client gửi yêu cầu tên và tìm ra tên tương ứng với địa chỉ IP là bao nhiêu?



Bước 1: (Request) Client gửi yêu cầu lên DNS Server vnn truy vấn với tên miền: www.yahoo.com địa chỉ là bao nhiêu?

- DNS Server vnn lúc này không có quản lý miền yahoo.com, chỉ quản lý miền vnn nên lúc này DNS Server vnn gửi (request) thẳng tên www.yahoo.com lên root DNS Server "."

- (Reply) Root DNS Server "." lúc này thấy tên miền .com thì Root DNS Server nói với DNS Server vnn qua DNS .com để hỏi (Root sẽ cho biết địa chỉ DNS Server của .com mà nó quản lý)

- DNS biết được địa chỉ của DNS Server miền .com thì sẽ (request) hỏi DNS Server .com thử yahoo nằm ở dâu

- (Reply) DNS Server quản lý miền .com nhận được tên www.yahoo.com thì nó thấy tên này là của miền con yahoo nên nó sẽ cho DNS Server vnn biết địa chỉ IP của DNS Server đang quản lý miền yahoo.com.

- Lúc này DNS Server miền vnn biết được máy DNS đang quản lý miền yahoo.com thì nó sẽ gửi (request) đến DNS Server đang quản lý miền yahoo.

- (Reply) Tại đây DNS Server yahoo có quản lý tên www.yahoo.com là máy web server bên dưới nên DNS Server quản tên miền yahoo sẽ gửi kết quả về cho DNS Server vnn địa chỉ IP của Web Server www.yahoo.com

- Cuối cùng DNS Server vnn biết được địa chỉ của tên miền www.yahoo.com nó sẽ trả kết quả về cho client

Cơ bản là cứ xuất phát từ root, root chỉ đến đâu thì cứ nhảy qua đó hỏi đến khi đến đích

Hiểu rõ hơn về DNS

DNS như là 1 cơ sở dữ liệu phân tán, trong cơ sở dữ liệu đó nó sẽ chứa những cặp ánh xạ(Địa chỉ IP) từ tên máy tính sang kiểu dữ liệu


Thành phần tham gia vào quá trình phân giải DNS:

- DNS Client

- DNS Server cục bộ

- DNS trên mạng Internet


Thế nào là DNS Query:

- Là lời yêu cầu được gửi lên DNS Server để yêu cầu phân giải

- Có 2 loại query DNS là recursive(Đệ quy, DNS Server sẽ hỏi các DNS Server khác đến khi nào có câu trả lời, chỉ cần hỏi 1 lần) và iterative (Lặp, hỏi và được chỉ rồi đi hỏi tiếp đến khi có câu trả lời)

Authoritative và non Authoritative trong DNS Server

- Authoritative (Máy chủ DNS có thẩm quyền): Client hỏi rồi tự Server xử lý rồi trả lời (Chủ thể).

DNS Server gốc của domain, lưu bản ghi gốc cho domain cụ thể mà nó quản lý. Trả lời truy vấn chính xác có thể là Primary Server(master) hoặc Secondary Server(slave) (Được đồng bộ từ Primary)

Nếu domain không tồn tại thì có thể trả lời là không nhưng ở vai trò chủ quyền, thẩm quyền

Ví dụ: Nếu domain example.com được cấu hình tại Cloudflare DNS, thì DNS server của Cloudflare là authoritative cho example.com.

Client gửi query lên DNS Server, DNS Server kiểm tra Database của DNS Server gọi là Zone(Forward lookup zone) và trả về kết quả

Ví dụ: DNS của Google quản lý google.com → nó là authoritative cho google.com.

- Non-Authoritative: Client hỏi rồi tự Server đi hỏi người khác rồi trả lời

Client gửi yêu cầu phân giải giúp domain nano -> Server không có thông tin tương ứng nên gửi câu query qua DNS Server khác để DNS Server xử lý (Gọi là forwarder)

DNS Server không giữ bản ghi gốc của domain nhưng có thể trả kết quả truy vấn thông qua cache của các lần hỏi trước (Dữ liệu có thể không còn chính xác nếu hết hạn)

Thao tác ở đây là gửi truy vấn đến 1 máy chủ cụ thể gọi là forwarder (Gọi là DNS trung gian).

Dùng Root hints (danh sách địa chỉ các máy chủ root DNS Server) để tìm câu trả lời cho truy vấn. Khi cài đặt dịch vụ DNS thì tự có các root hints này



Vai trò DNS resolver như:

1.1.1.1

8.8.8.8

DNS của nhà mạng

Ví dụ: DNS của nhà mạng (VNPT, Viettel...) trả lời bạn truy vấn youtube.com bằng cách dùng cache hoặc hỏi DNS khác.

Forwarder DNS

Client gửi request domain lên DNS Server1, DNS server không quản lý tên miền này, thay vì chuyển qua root hỏi thì nó hỏi DNS Server2 khác (Đóng vai trò trung gian), lúc này DNS Server2 sẽ đi hỏi các DNS Server khác, đến khi nào có kết quả thì chỉ cần trả lại IP tương ứng với miền truy vấn cho client



Này lại tốn thêm 1 bước trung gian, tại sao không ra ngoài hỏi thẳng?

Tại vì đôi khi chính sách bảo mật trong hệ thống, mình không muốn DNS Server ngoài internet liên lạc trực tiếp với DNS Server trong hệ thống local-> Mọi truy vấn thực hiện qua máy trung gian nếu có request từ client.

Nếu thực hiện FWD DNS Server cho DNS Local thì công việc và cấu hình của Local DNS Server khá đơn giản (Mọi query từ client đến Local DNS Server đều được đẩy lên Forwarder DNS Server và nó chỉ cần nhận kết quả trả về)


Caching DNS

Dùng để lưu tạm thời các kết quả để giúp quá trình phân giải được nhanh hơn.


Ví dụ: Client 1 hỏi máy A địa chỉ là bao nhiêu?

Nó sẽ cache lại trong DNS Server trong vòng 28s, trong vòng 28s máy client cũng hỏi máy A địa chỉ bao nhiêu thì nó không cần qua DNS Server của máy A hỏi nữa mà nó sẽ lấy caching từ DNS Server hiện tại.

Cách dịch vụ DNS được lưu và bảo quản

DNS dùng các zone file để lưu tập tin về domain (Gồm hostname, IP)

Zone file có 2 loại:

- Forward Lookup zone (Tên sang địa chỉ)

- Revert lookup zone (Địa chỉ qua tên)

Mỗi 1 dòng là 1 record, mỗi 1 zone file chứa nhiều resource record

A: Phân giải tên sang địa chỉ

PTR: Phân giải từ địa chỉ qua tên

SOA: Là record đầu tiên trong mỗi Zone file (SOA record sẽ lưu những thông tin, cách thức mà Secondary DNS Server liên lạc với Primary DNS Server như thế nào.)

SRV: Cung cấp thông tin về 1 dịch vụ nào đó (ít dùng, Phân giải tên các Server mà cung cấp những dịch vụ nào đó)

NS: Xác định DNS Server của miền này là máy nào

MX: Xác định mail server của miền này là máy nào 

CNAME: Cho biết những bí danh của máy là tên gì (Cùng 1 địa chỉ IP mà tương ứng với máy có nhiều tên)





Ý nghĩa của dòng NS trong DNS Server trên hình

Domain có NS là máy server1.demo.com, và tương tự các dòng khác (Same as parent folder là domain hiện tại)

CNAME (bí danh): Tên www.demo.com là tên thứ 2 của máy server1.demo.com

Phân biệt Zone và domain? 

Ví dụ: Domain north có 3 domain là sale, support, training

Zone domain north bao gồm những domain chưa ủy thác (North với training) như hình thì zone north còn 2 domain kia đã ủy thác cho đơn vị khác quản lý

Nhưng thực tế ở ngoài zone và domain gần như trùng nhau.

Vì ở ngoài không có miền con nếu công ty nhỏ: abc.com, xzy.com -> Do đó domain cũng tính là zone

Dù có những domain con khác nhưng không ủy thác cho những phòng ban khác tự quản lý thì zone như nhau



Các loại Zone của DNS Server

Primary Zone: Database quản lý tên máy tính thì có thể thêm xóa sửa được

Secondary Zone: Chỉ xem nội dung chứ không sửa được vì secondary nó copy dữ liệu từ primary mang về nên muốn thay đổi thì cứ thay đổi trên Primary.

Stub chỉ copy 1 phần nào đó đem về (Ít dùng trừ khi mạng lớn)



Forward lookup zone

Zone file reverse lookup zone cú pháp viết ngược.



Zone Transfers

Là quá trình đồng bộ các zone (Database) giữa các DNS Server, hay cách khác là quá trình copy dữ liệu từ Primary đến Secondary Server


Quy trình transfers

Bước 1: Secondary sẽ yêu cầu lấy SOA record trong Primary 

Bước 2: Primary sẽ gửi SOA về Second

Để Second dựa vào SOA phân tích thử có thay đổi gì không, biết thời điểm nào thì liên lạc với Primary

Bước 3: Second gửi yêu cầu lấy những record từ Primary

Bước 4: Primary gửi record về cho Second



Bài viết tiếp theo Bài viết trước đó
Chưa có bình luận
Thêm bình luận
comment url
sr7themes.eu.org