Microsoft Tìm hiểu DNS

nessi

Moderator

DNS
Domain Name System

Nội dung:


I. Tìm hiểu DNS?
I.3. DNS Protocol
I.4. Các loại DNS Record
I.5. Hoạt động của DNS
I.6. Phân tích gói tin DNS

I. Tìm hiểu DNS?


1. DNS là gì? Tại sao cần DNS?




Domain Name System – DNS là hệ thống giúp người dùng Internet và thiết bị mạng khám phá được các website, máy chủ sử dụng tên thân thiện với con người thay vì địa chỉ IP ở dạng số. Nói tóm gọn DNS là cách mà dịch từ một tên địa chỉ ở dạng tên sang IP tương ứng.

Human-Friendly Name
Machine-Friendly Number
171.235.25.87​
125.212.247.5, 125.212.247.8​
112.213.89.38​
8.8.8.8, 8.8.4.4,
2001:4860:4860::8888, 2001:4860:4860::8844​
Ví dụ: Khi sử dụng trình duyệt truy cập 1 trang web với tên miền www.example.com, máy tính sẽ nhờ hệ thống DNS Server phân giải từ tên miền trên thành 1 địa chỉ IP 12.34.56.78 mà hệ điều hành có thể hiểu để chuyển hướng traffic request trang web.
1629983393898.png

Hệ thống phân giải tên miền giúp truy cập vào địa chỉ IP của web mà ta muốn dễ dàng và nhanh chóng hơn. Bởi mỗi trang web public đều sẽ có một địa chỉ IP duy nhất trên toàn thế giới, 1 địa chỉ IP Public với những con số khó nhớ nếu như không có hệ thống DNS việc truy cập những trang web đó sẽ rất khó khăn. Cũng giống như việc tìm địa chỉ 1 ngôi nhà nào đó bằng Google Maps, chúng ta không thể nào nhớ chính xác toạ độ của ngôi nhà đó, thay vào đó chúng ta sử dụng Số nhà, tên đường cụ thể sẽ dễ dàng tìm được ngôi nhà đó chính xác.

I.2. Kiến trúc DNS ?

Đầu tiên ta cần nắm khái niệm FQDN
  • Fully Qualified Domain Name - FQDN là một tên miền đầy đủ hoặc gọi là một tên miền tuyệt đối xác định vị trí chính xác của Host trong DNS, được viết bằng hostname và tên miền, bao gồm tên miền cấp cao nhất (Top-level domain), theo thứ tự: [Hostname].[Domain].[TLD]. Việc sắp xếp thự tự có quy tắc này giúp dễ dàng truy vấn địa chỉ IP của tên miền một cách cụ thể theo kiến trúc DNS.
1629983416933.png

Cấu trúc DNS là hệ thống cơ sử dữ liệu phân tán tán và phân cấp hình cây. Với [.] Root là đỉnh của cây và sau đó các miền (domain) được phân nhánh dần xuống dưới và phân quyền quản lý.

Khi một máy khách (client) truy vấn một tên miền nó sẽ đi lần lượt từ root phân cấp xuống dưới để đến DNS quản lý domain cần truy vấn.
1629983449031.png


  • Zone
Hệ thống tên miền (DNS) cho phép phân chia tên miền để quản lý và nó chia hệ thống tên miền thành zone và trong zone quản lý tên miền được phân chia đó.

Các Zone chứa thông tin vê miền cấp thấp hơn, có khả năng chia thành các zone cấp thấp hơn và phân quyền cho các DNS server khác quản lý.

Ví dụ : Zone “.vn” thì do DNS server quản lý zone “.vn” chứa thông tin về các bản ghi có đuôi là “.vn” và có khả năng chuyển quyền quản lý (delegate) các zone cấp thấp hơn cho các DNS khác quản lý như “.fpt.vn” là vùng (zone) do fpt quản lý.

Hệ thống cơ sở dữ liệu của DNS là hệ thống dữ liệu phân tán hình cây như cấu trúc đó là cấu trúc logic trên mạng Internet
1629983460962.png

Trong hệ thống mạng Internet Công cộng, để phân giải được một tên miền sau một địa chỉ IP Public thì cần 4 DNS Server liên quan để giải quyết việc phân giải tên miền:

DNS recursor
Là máy chủ nhận các truy vấn DNS từ máy khách. Các máy chủ này thông thường là các Public DNS, ví dụ một số Public DNS phổ biến như 8.8.8.8, 1.1.1.1, ...
1629983476706.png

1629983484386.png

Thông tin về máy chủ DNS recursor thường được cấu hình tự động thông qua phương thức DHCP, hoặc cũng có thể cấu hình thủ công bằng Network Connection (với Windows).

  • DHCP
1629993116414.png

  • Thủ công
1629983498850.png


Đối với một DNS Recursor trong mạng nội bộ có thể đóng vai trò phân giải những tên miền nội bộ của tổ chức ngoài còn đóng vai trò như một DNS Client chuyển tiếp những query của Client local ra ngoài.

Root nameserver
Là bước đầu trong việc dịch – phân giải tên miền thành địa chỉ IP. Là một phân giải tên miền gốc bởi vì tất cả các tên miền trên thế giới đều phải thông qua nó.

DNS root server quản lý tất cả cả các tên miền Top-level Domain ví dụ như: .com, .org, .vn, .net,... dùng để tham chiếu đến các vị trí cụ thể hơn.

Hiện tại trên thế giới có khoảng 13 Root Servers được các tổ chức quản lý. Khi một truy vấn DNS tới, 1 Root Servers ở trong List sẽ được lựa chọn để truy vấn theo thuật toán Round Robin.

Ví dụ: Một truy vấn tên miền securityzone.vn. tới Root Server a.root-servers.net, tách tên miền thành các phần [.] là địa chỉ truy vấn Root Server (ex a.root-servers.net) và nhìn vào phần tiếp theo là [.vn], Root Server sẽ cung cấp thông tin địa chỉ IP và FQDN những TLD Server [.vn] để tiếp tục quá trình truy vấn tên miền.


1629989057728.png



Top-level Domain name server
Là phần cuối cùng của một tên miền Internet ví dụ [.vn], tên miền cấp cao nhất được Tổ chức cấp phát số hiệu Internet (Internet Asigned Numbers Authority – IANA) chia thành 3 loại

+) Tên miền quốc gia cấp cao nhất (Country-code top-level domain -ccTLD): Được sử dụng bởi 1 quốc gia hoặc lãnh thổ và nó có 2 kí tự ví dụ VN => Việt Nam

+) Tên miền cấp cao nhất dùng chung (Generic top-level domain – gTLD): là tên miền được sử dụng phổ biến và được dùng chung trên toàn thế giới mà không phụ thuộc vào mã quốc gia nào.

+) Tên miền cấp cao nhất hạ tầng (Infrastructure top-level domain) là tên miền đại diện cho tổ chức ARPA và dành riêng cho (Internet Corporation for Assigned Names and Numbers – quản lý số liệu IP và hệ thống tên miền gốc) ICANN để giải quyết các vấn đề cơ sở hạ tầng.

Đối với những Name Server TLD này sẽ chưa thông những tên miền được Authoritative name server (máy chủ định danh có thẩm quyền) có lên quan tới tên miền

Ví dụ: Những máy chủ tên miền quốc gia của Việt Nam.


1629989078613.png

Nhiệm vụ chính của TLD name server:

  • Quản lý không gian tên miền TLD và các tên miền cấp 2 dùng chung thuộc hệ thống tên miền ví dụ [.VN] (com.vn, net.vn, org.vn, ...)
  • Phân cấp và chuyển giao không gian tên miền TLD cho các đơn vị khác quản lý theo thoả thuận
  • Tiếp nhận và trả lời các truy vấn tên miền TLD từ các nguồn truy vấn hợp lệ trên Internet. Đảm bảo hoạt động truy vấn tên miền TLD của người dùng Internet được thông suốt, nhanh chóng và an toàn.
Ví dụ: Tiếp tục ví dụ ở phần Root name server, khi truy vấn tên miền securityzone.vn tới 1 trong TLD Name server, nó sẽ trả lời lại địa chỉ IP Authoritative name server có chứa thông tin tên miền securityzone.



Authoritative name server
Máy chủ định danh có thẩm quyền, được xác định trong bản ghi SOA DNS. Nó đưa ra câu trả lời cho các câu hỏi được hỏi về một Name trong một Zone, nó chỉ trả lời các câu hỏi về tên miền đã được quản trị định cấu hình cụ thể.

Ví dụ: Tiếp tục ví dụ ở phần TLD name server, khi truy vấn tên miền securityzone.vn tới 1 trong những Authoritative name server mà TLD name server cung cấp, cụ thể nhà đăng kí quản lý ở đây là Công ty TNHH PA Việt Nam. Những máy chủ trực tiếp quản lý tên miền Securityzone.vn sẽ trả lời truy vấn cho DNS Recursor 1 địa chỉ IP được yêu cầu.
1629988973666.png


1629988858044.png


Ngoài ra, có một tổ chức chịu trách nhiệm về domain

ICANN
(Internet Corporation for Assigned Names and Numbers) là tổ chức phi lợi nhuận quản lý DNS và thực hiện các chính sách về domain name. ICANN cấp phép cho các công ty được gọi là Domain Name Registrars cho việc bán domain. Các công ty này sẽ thay mặt bạn thực hiện các thay đổi đối với cơ quan đăng ký domain.

Công ty đăng ký domain có thể bán domain, quản lý hồ sơ, gia hạn và chuyển nhượng cho các công ty đăng ký domain khác.



I.3. DNS Protocol

1629984914559.png

UDP 53 trong việc Query.
TCP 53 trong việc Zone Tranfers để duy trì sự nhất quán giữa cơ sở dữ liệu DNS và Server.

I.4. Các loại DNS Record
1. SOA (Start of Authority)
Trong mỗi tập tin cơ sở dữ liệu DNS phải có một và chỉ một record SOA. Bao gồm thông tin về Domain trên DNS Server, thông tin về zone tranfer.

1629989987703.png

1629989997385.png

1629990005940.png


Cú pháp:
  • Ad01.securityzone.local: giá trị DNS chính của tên miền hoặc máy chủ
  • Hostmaster.securityzone.local: chuyển đổi từ dạng hostmaster@securityzone.local thể hiện chủ sở hữu của tên miền này
  • Serial: Áp dụng cho mọi dữ liệu trong zone và có định dạng YYYYMMDDNN, trong đó NN là số lần sửa đổi dữ liệu zone trong ngày, số này luôn tăng. Khi máy chủ Secondary liên lạc với máy chủ Primary trước tiên nó sẽ hỏi số serial. Nếu mà số Serial của máy Secondary nhỏ hơn so với số serial của máy Primary tức là dữ liệu zone trên Secondary đã cũ và sau đó máy Secondary sẽ sao chép dữ liệu mới từ máy Primary thay cho dữ liệu đang có.
  • Refesh: Chỉ khoảng thời gian máy chủ Secondary kiểm tra dữ liệu zone trên máy Primary để đề cập nếu cần.
  • Retry: Nếu máy chủ Secondary không kết nối được với máy chủ Prirmary theo thời hạn mô tả trong refesh. Ví dụ: Máy chủ Primary bị shutdown vào lúc đó máy chủ Secondary phải tìm cách kết nối lại với máy chủ Primary theo một chu kỳ Thời gian được mô tả trong Retry. Thông thường giá trị này phải nhỏ hơn giá trị fresh.
  • Expire: Sau khoảng thời gian này mà máy chủ Secondary không kết nối được với máy chủ Primary thì dữ liệu Zone trên máy chủ Secondary sẽ bị quá hạn. Khi này máy chủ Secondary sẽ không trả lời mỗi truy vấn về zone này nữa. Giá trị Exprie > fresh > retry.
  • Default TTL: Time to live, giá trị này áp dụng cho mọi record trong zone được đính kèm trong thông tin trả lời một truy vấn. Mục đích của nó là chỉ ra thời gian mà các máy chủ Name Server khách cache lại thông tin trả lời.
2. NS (Name Server)
Record tiếp theo cần có trong zone là NS (Name server) record. Mỗi NS cho zone sẽ có một NS record, chứa địa chỉ IP của DNS Server cùng với các thông tin về Domain đó.
1629990021963.png


3. Record A/AAAA
Record A là một record căn bản và quan trọng, dùng để ánh xạ từ một domain thành địa chỉ IP cho phép có thể truy cập Website, hoặc là ánh xạ một FQDN thành một IP. Record A có dạng
1629990029204.png


Record AAAA: có nhiệm vụ tương tự như record A, nhưng thay vì địa chị IPv4 sẽ là địa chỉ IPv6.
1629990044481.png


4. Record PTR
DNS thông thường cho phép chuyển đổi tên miền sang đỉa chỉ IP. Trong thực tế, một số dịch vụ Internet đòi hỏi hệ thống máy chủ DNS phải có chức năng chuyển đổi từ địa chỉ IP sang tên miền. Tên miền ngược thường được sử dụng trong một số trường hợp xác thực email gửi đi.
1629990057811.png


5. Record SRV
Bản ghi SRV được sử dụng để xác định vị trí các dịch vụ đặc biệt trong 1 domain, ví dụ tên máy chủ và số cổng của các máy chủ cho các dịch vụ được chỉ định.

Một Clien trong trường hợp này có thể nhờ DNS nhận ra rằng, trong tên miền securityzone.local có LDAP Server mà có thể liên lạc qua cổng TCP Port 389. Các trường trong một Record SRV(Service Location)
  • Tên dịch vụ service
  • Giao thức sử dụng
  • Tên miền domain
  • TTL: Thời gian RR được giữ trong cache
  • Class: Standard DNS class luôn là IN
  • Ưu tiên: ưu tiên của Host offer dịch vụ, số càng nhỏ càng ưu tiên
  • Trong lượng: khi cùng mức ưu tiên, thì trọng lượng 3 so với trọng lượng 2 sẽ được lựa chọn 60% (hỗ trợ loadblacing)
  • Port của dịch vụ (tcp/udp)
  • Target chỉ định FDQN cho host hỗ trợ dịch vụ
1629990067441.png

1629990238923.png



  • Thuật toán Weighted Round Robin: Bản chất giống như thuật toán Round Robin, tuy nhiên chúng ta có thể cấu hình cho một máy chủ nào đó thường xuyên được sử dụng hơn.
6. Record CNAME
Cho phép tên miền có nhiều bí danh khác nhau, khi truy cập các bí danh sẽ cùng về một địa chỉ tên miền. Để sử dụng bản ghi CNAME cần khai báo bản ghi A trước. Ví dụ :
1629985587943.png


Khi có một truy vấn yc đến địa chỉ sip2.securityzone.vn thì DNS sẽ tìm đến IP 10.120.80.105 thông qua bản ghi A.

7. Record MX
Bản ghi MX có tác dụng xác định, chuyển thử đến domain hoặc subdomain đích, bảng ghi MX có dạng.
1629990117567.png


Độ ưu tiên càng cao thì số càng thấp. Bảng ghi MX không nhất thiết phải trỏ đến Hosting của người dùng. Nếu đang sử dụng dịch vụ mail của bên thứ ba như Gmail thì cần sử dụng bản ghi MX do họ cung cấp.

8. Record TXT
Bản ghi TXT (text) được sử dụng để cung cấp khả năng liên kết văn bản tuỳ ý với máy chủ. Chủ yếu dùng trong mục đích xác thực máy chủ với tên miền.
1629990587701.png


I.5. Hoạt động của DNS
Các dạng DNS Query

1629990355598.png

  • Recursive Query: Truy vấn đệ quy - là quá trình truy vấn giữa DNS Client và DNS Recursor.
  • Iterative Query: Truy vấn lặp đi lặp lại - là quá trình truy vấn giữa DNS Recursor với Root server, TLD name server và Authoritative name server.
  • Non-recursive Query: Không truy vấn đệ quy, xảy ra khi DNS resolver client truy vấn máy chủ DNS một Record mà Server có quyền truy cập hoặc bản ghi tồn tại bên trong bộ đệm của Server. Thông thường, một máy chủ DNS sẽ lưu các bản ghi DNS để ngăn chặn việc tiêu thụ thêm băng thông và giảm tải cho các máy chủ DNS khác.
Ngoài ra những trình duyệt cũng thường tự lưu thông tin bản ghi DNS tại bộ nhớ đệm của nó.
Chrome: chrome://net-internals/#dns
1629985700054.png

DNS Query
Quá trình truy vấn DNS được thực hiện từ DNS Client cho tới DNS Resolver thuộc dạng Recursive Query, và từ DNS Resolver tới Root Server, TLD Server, Authirative Name Server thuộc dạng Iterative Query.
1629990494395.png

Quá trình query DNS khi không sự tham gia của DNS Cache bao gồm các bước:

1. Khi người dùng nhập [securityzone.vn] vào trình duyệt web và truy vấn sẽ được gửi đi, và được nhận bởi DNS Recursor.

2. DNS Recursor bắt đầu gửi truy vấn [securityzone.vn] tới 1 trong 13 Root nameserver DNS [.] theo thuận toán Round Robin.

3. Tiếp đến Root Nameserver phản hồi resolover bằng địa chỉ của máy chủ DNS Tên miền cấp cao (TLD) dựa trên câu truy vấn [securityzone.vn] trong trường hợp này là những máy chủ TLD [.vn].

4. Tiếp tục DNS Recursor thực hiện một truy vấn [securityzone.vn] tới TLD .vn (ví dụ a.name-servers.vn)

5. Sau đó Máy chủ TLD [.vn] sẽ phản hồi với địa chỉ IP Nameserver của domain [securityzone.vn] trong trường hợp này là ns1.pavietnam.vn dựa trên thông tin Authoritative name server PA VietNam đã regis với TLD.

6. Tiếp đến, DNS Recursor sau đó gửi một truy vấn đến 1 Name Server của Tên miền securityzone.vn.

7. Địa chỉ IP cho www.securityzone.vn được trả về từ Nameserver

8. DNS Resolver sau đó trả lời DNS Client bằng địa chỉ IP của tên miền được yêu cầu từ 1. Kết thúc quá trình truy vấn DNS.

9. Khi 8 bước tra cứu DNS đã trả về địa chỉ IP cho securityzone.vn, trình duyệt có thể đưa ra yêu cầu cho trang web, tạo yêu cầu https tới địa chỉ đó.

10. Máy chủ web với IP đó trả về trang web được hiển thị trong trình duyệt.
1629989650517.png

1629989539596.png

Bộ nhớ đệm DNS
Resolver DNS cấp hệ điều hành là điểm dừng cục bộ thứ hai. Và cuối cùng trước khi truy vấn DNS rời khỏi máy tính của chúng ta. Quá trình bên trong hệ điều hành của bạn được thiết kế để xử lý truy vấn này thường được gọi là “stub resolver” hoặc DNS client.

Khi stub resolver nhận được yêu cầu từ một ứng dụng. Đầu tiên nó sẽ kiểm tra bộ đệm của chính nó để xem nó có bản ghi hay không. Nếu không, nó sẽ gửi một truy vấn DNS (với một cờ đệ quy) tới một recursive resolver DNS.

Khi recursive resolver nhận được truy vấn DNS. Giống như tất cả các bước trước đó. Nó cũng sẽ kiểm tra xem record được yêu cầu đã được lưu trữ bên trong cache của nó chưa.

Recursive resolver cũng có chức năng bổ sung. Tùy thuộc vào loại bản ghi mà nó có trong bộ đệm.

1. Nếu resolver không có bản ghi A , nhưng có bản ghi NS cho authoritative nameserver. Nó sẽ truy vấn trực tiếp các nameserver đó, bỏ qua một số bước trong truy vấn DNS. Việc này ngăn chặn tra cứu từ root nameserver và .vn (ví dụ .vn). Và giúp việc giải quyết truy vấn DNS diễn ra nhanh hơn.

2. Nếu resolver không có bản ghi NS, nó sẽ gửi một truy vấn đến các máy chủ TLD, bỏ qua root nameserver.

3. Trong trường hợp không chắc là resolver không có các bản ghi trỏ đến các máy chủ TLD, thì nó sẽ truy vấn các root nameserver. Điều này thường xảy ra sau khi bộ đệm DNS đã bị xóa.

I.6. Phân tích gói tin DNS
Phần này ta sẽ đi phân tích gói tin truy vấn DNS để minh hoạ cho 8 bước truy vấn ở phần I.5. Hoạt động của DNS.

Mình có một sơ đồ kết nối đơn giản cho việc bắt gói tin truy vấn của DNS như hình dưới, trong đó mình cài Wireshark lên DNS Server để bắt và xem gói tin.

1629989431376.png


DNS Server query
Đầu tiên, mình sẽ test nslookup securityzone.vn ngay trên DNS Server.

  • Câu lệnh CMD: nslookup securityzone.vn
1629989396822.png

  • Quá trình diễn ra từ gói tin No. 26 tới No. 33 như trong hình
1629989249718.png


  • Gói tin No.26, câu query đầu tiên sẽ hỏi một trong những Root Server, cụ thể ở đây là 192.203.230.10 (e.root-servers.net)
1629989128509.png


  • No. 27, Root server trả lời lại với thông tin máy chủ TLD [.vn]. Xem chi tiết gói tin cho thấy câu Query ở Record Type A và thông tin về IP cũng những FQDN của TLD [.vn].
1629989164889.png


  • No. 28, dựa vào thông tin Root Server trả lời, DNS Recursor lựa chọn một máy chủ TLD (g.dns-servers.vn) để gửi câu truy vấn tiếp.
  • No. 29, máy chủ TLD g.dns-servers.vn nhận câu truy vấn và phản hồi lại bằng một Record Type NS chứa thông Name Server nhà cung cấp cho Domain Securityzone.vn là PA Việt Nam.
1629985769524.png


  • No. 30, tiếp tục gửi truy vấn tới một NS PA Việt Nam mà TLD đã cung cấp thông tin ở gói No. 29.
  • No. 31, một NS của PA Việt Nam đã nhận câu truy vấn và tìm thông tin cho câu query Type A trong Record Database của máy chủ DNS Name Server này. Trả lời cho câu truy vấn thông tin Record Type A => securityzone.vn có IPv4 171.235.25.87.
1629989222661.png

  • Ngoài ra, gói tin No. 32 và No. 33 là câu truy vấn và phản hồi về Record Type AAAA cung cấp thông tin IPv6 cho securityzone.vn


------------------Hết phần 1: Lý thuyết DNS------------------
 

Attachments

Last edited:
Top