Giới thiệu về DNS

1. DNS là gì?


DNS được coi là danh bạ điện thoại trên Internet. Giống như danh bạ chúng ta thường sử dụng, mỗi tên miền tương ứng với tên chúng ta lưu trong danh bạ và địa chỉ IP sẽ tương ứng với số điện thoại loằng ngoằng và khó nhớ. DNS sử dụng để phân giải một tên miền sang đia chỉ IP, để các máy tính có thể giao tiếp với nhau.

2. Tại sao cần có DNS?


Trong mạng Internet, các máy tính, thiết bị… muốn giao tiếp với nhau đều phải thông qua địa chỉ IP, nhưng địa chỉ IP là 1 chuỗi số nhị phân, mặc dù đã được viết thành dạng thập phân trong IPv4 hoặc thập lục phân trong IPv6 nhưng vẫn là những con số loằng ngoằng, khó nhớ nhất là khi địa chỉ IPv6 đang dần thay thế địa chỉ IPv4. Vì vậy để hỗ trợ con người trong việc sử dụng Internet, hệ thống DNS ra đời để phân giải tên miền dễ nhớ sang địa chỉ IP khó nhớ không có ý nghĩa.

3. Các loại DNS Server


3.1. Recursor nameserver

Khi người dùng thực hiện truy vấn đến 1 tên miền, đầu tiên nó sẽ đi đến server DNS Recursor. Khi nhận được truy vấn, server DNS Recursor sẽ trả lại cho người dùng kết quả của truy vấn trong bộ nhớ đệm của nó (nếu có) hoặc nó sẽ giúp người dùng gửi các truy vấn đến root nameserver, TLD nameserver và Authoritative nameserver để lấy kết quả, sau đó nó sẽ trả lời cho người dùng kết quả nó nhận được. Sau quá trình truy vấn, DNS Recursor sẽ lưu lại kết quả trong bộ nhớ đệm, và khi có người dùng khác truy vấn lại đến tên miền đó, nó sẽ có thể trả lại kết quả ngay mà không cần phải thực hiện lại quá trình truy vấn.

Các Server DNS Recursor nổi tiếng có thể kể đến 45.124.93.62 của Bizfly Cloud xây dựng riêng cho khách hàng, 8.8.8.8 của Google hay 1.1.1.1 của CloudFlare.

3.2. DNS Root Nameserver

Là nameserver nằm trên đỉnh của hệ thống phân cấp DNS. Nó sẽ chứa toàn bộ các thông tin về domain và IP của các Top Level Domain (TLD) Nameserver. Khi có truy vấn được gửi đến nó, root nameserver sẽ trả lại thông tin của TLD Nameserver để client tiếp tục truy vấn kết quả.

3.3. Top Level Domain Nameserver

Là nameserver chứa toàn bộ thông tin về mọi tên miền cùng chung phần mở rộng tên miền như .com, .vn, .net,…  Khi nhận được truy vấn, TLD nameserver sẽ trả lại cho client thông tin của Authoritative Nameserver quản lý tên miền đang được truy vấn.

3.4. Authoritative Nameserver

Là máy chủ chứa toàn bộ thông tin về tên miền mà nó quản lý (Bizfly Cloud DNS thuộc loại DNS Server này). Authoritative DNS Server chỉ trả lời các truy vấn về tên miền nó quản lý và không trả lời các truy vấn về tên miền bên ngoài. Authoritative DNS Servers có các đặc điểm sau:

– Trả lời truy vấn cực nhanh: Authoritative Server có tất cả các thông tin về tên miền nó quản lý do đó khi nhận được truy vấn nó thường trả lời rất nhanh

– Không trả lời các truy vấn recursive: Vì nó không xử lý các truy vấn recursive nên nó là DNS Server duy nhất không bao giờ thực hiện truy vấn đến các DNS Server khác. Điều đó khiến Authoritative Server chỉ có thể trả lại câu trả lời đầy đủ hoặc trả lại một lời giới thiệu đến Server khác mà nó được ủy quyền khi nhận được truy vấn.

– Không cache kết quả truy vấn: Vì Authoritative Server không bảo giờ thực hiện truy vấn đến Server khác để giải quyết các yêu cầu nên nó sẽ không cần cache các kết quả. Tất cả thông tin mà nó cần đã có sẵn trong hệ thống.

4. Truy vấn DNS


4.1. Recursive Query

Là truy vấn mà DNS Server sẽ phải đưa ra câu trả lời đầy đủ cho truy vấn đó hoặc đưa ra thông báo lỗi. Tức là với truy vấn này, DNS Server sẽ chịu trách nhiệm đi truy vấn hộ người dùng và lấy kết quả, sau đó trả lại kết quả cho người dùng.

4.2. Iterative Query

Là truy vấn mà DNS Server có thể cung cấp câu trả lời hoặc 1 phần câu trả lời (như 1 lời giới thiệu) cho clients (hoặc đưa ra thông báo lỗi). Với truy vấn này, nếu DNS Server có câu trả lời cho truy vấn trong bộ nhớ đệm của nó, nó sẽ trả lại kết quả cho người dùng, nếu không, nó sẽ trả lại lời giới thiệu đến DNS Server biết được câu trả lời của truy vấn, để người dùng tự truy vấn.

5. Các loại bản ghi


DNS có các loại bản ghi cơ bản như A, AAAA, CNAME, MX,… trong hệ thống. Nhưng với DNS của Bizfly Cloud sẽ có thêm các bản ghi nâng cao như AA, AP hay GEO. Chúng ta sẽ cùng đi tìm hiểu chi tiết về các bản ghi bên dưới.

5.1. Bản ghi SOA

Bản ghi Start of Authority (SOA), là bản ghi chứa các thông tin quan trọng về tên miền như email admin, time to live mặc định,…

5.2. Bản ghi NS

Bản ghi NameServer (NS) là bản ghi của tên miền giúp bạn chỉ định nameserver chịu trách nhiệm cho tên miền đó. Một tên miền thường có nhiều bản ghi NS chỉ đến nhiều nameserver khác nhau nhằm mục đích dự phòng khi có sự cố xảy ra.

5.3. Bản ghi A

Là DNS record đơn giản nhất và được dùng nhiều nhất dùng để trỏ tên miền tới một địa chỉ IPv4 cụ thể.

5.4. Bản ghi AAAA

Cũng giống như bản ghi A dùng để ánh xạ một tên miền tới một địa chỉ, nhưng khác với bản ghi A trỏ tới địa chỉ IPv4 thì bản ghi AAAA sẽ trỏ tới địa chỉ IPv6.

5.5. Bản ghi CNAME

Tạo một bí danh (alias) cho một tên miền cụ thể.

5.6. Bản ghi MX

Bản ghi Mail Exchange (MX) chỉ định server nào quản lý dịch vụ email của tên miền đó.

5.7. Bản ghi TXT

Là bản ghi giúp bạn chứa các thông tin dạng text (văn bản) của tên miền. Thường bản ghi TXT dùng để giúp máy chủ email xác định xem mail có phải được gửi đi từ một nguồn đáng tin cậy hay không, hoặc xác định quyền sở hữu của một tên miền.

5.8. Bản ghi AA

Bản ghi AA là bản ghi đặc biệt của hệ thống BizflyCloud DNS. Bản ghi AA giúp trỏ 1 tên miền đến nhiều địa chỉ IP khác nhau (cả IPv4 và IPv6) và hoạt động theo cơ chế active-active. Ví dụ khi trỏ tên miền bizflycloud.vn sử dụng bản ghi AA, trỏ đến 2 địa chỉ IP là 192.168.1.1 và 192.168.1.2, thì khi thực hiện truy vấn đến tên miền bizflycloud.vn, người dùng sẽ được trả lại 1 trong 2 địa chỉ IP bên trên. Khi cấu hình bản ghi AA, sẽ phải cấu hình cùng health check, dùng để kiểm tra trạng thái của backend, khi một backend rơi vào trạng thái DOWN, backend đó sẽ được loại ra khỏi truy vấn đến tên miền. Như ví dụ trên khi backend 192.168.1.1 down, thì truy vấn đến tên miền bizflycloud.vn sẽ chỉ trả lại backend 192.168.1.2 mà thôi.

5.9. Bản ghi AP

Cũng giống bản ghi AA dùng để trỏ một tên miền đến nhiều địa chỉ IPv4 hoặc IPv6, nhưng bản ghi AP sẽ hoạt động theo cơ thế active-passive. Như ví dụ bên trên, nếu chúng ta cấu hình primary là địa chỉ 192.168.1.1 và secondary là 192.168.1.2, thì khi truy vấn đến tên miền bizflycloud.vn sẽ chỉ trả lại địa chỉ 192.168.1.1, trừ khi health check đến backend 192.168.1.1 fail, thì truy vấn sẽ trả lại 192.168.1.2.

5.10. Bản ghi GEO

Bản ghi GEO cũng sử dụng để trỏ một tên miền đến nhiều địa chỉ IPv4 hoặc IPv6 nhưng sẽ trỏ theo vị trí địa lý. Ví dụ server 192.168.1.1 chúng ta cấu hình vị trí địa lý là Hà Nội, còn 192.168.1.2 chúng ta cấu hình theo vị trí địa lý là Hồ Chí Mình. Khi người dùng thực hiện truy vấn đến tên miền bizflycloud.vn, hệ thống DNS của Bizfly Cloud sẽ thực hiện kiểm tra vị trí địa lý của người dùng và trả lại server gần với người dùng nhất, giúp giảm thiểu độ trễ giữa người dùng và server.