Web back-end (2) - Hệ thống tên miền

1.1       Hệ thống tên miền

1.1.1       Tổ chức và hoạt động

Chúng ta cùng xem lại quá trình duyệt web, sau khi người dùng nhập địa chỉ website (ví dụ: https://en.wikipedia.org/) vào thanh địa chỉ của trình duyệt, bấm Enter. Trình duyệt sẽ dựa vào địa chỉ website để kết nối tới máy server.

Vậy, bằng cách nào trình duyệt kết nối được tới máy server dựa vào địa chỉ website?

Như đã biết, địa chỉ website (hay URL của website) có dạng như sau:

scheme://domain:port/path?query_string#fragment_id

Trình duyệt sẽ lấy trường domain (tên miền) trong URL (ví dụ: en.wikipedia.org), thực hiện truy vấn trên hệ thống tên miền để tìm được địa chỉ IP của server có tên miền tương ứng. Khi đã có địa chỉ IP, trình duyệt tạo một “yêu cầu” (ví dụ HTTP request), gửi tới server để yêu cầu “cho nội dung trang web mặc định của website” (ví dụ trang index).

Xem hình minh họa:


Hệ thống tên miền (Domain Name System – DNS) là một hệ thống có nhiệm vụ chuyển đổi địa chỉ dạng “tên miền” thành địa chỉ IP và ngược lại. Ví dụ, hệ thống DNS sẽ giúp máy tính biết được tên miền en.wikipedia.org  sẽ có địa chỉ IP tương ứng là 103.102.166.224.

Quan sát một vài ví dụ:

Ví dụ 1: khi biết tên miền, có thể biết được địa chỉ IP của server ứng với tên miền đó. Cách làm:

– Trong hệ điều hành Windows, mở chương trình dòng lệnh (CMD), gõ lệnh:

ping en.wikipedia.org

– Nếu lệnh ping thành công, bạn sẽ thấy được địa chỉ IP của tên miền en.wikipedia.org.

Xem minh họa:

C:\Users\Maxsys>ping en.wikipedia.org

 

Pinging dyna.wikimedia.org [103.102.166.224] with 32 bytes of data:

Reply from 103.102.166.224: bytes=32 time=58ms TTL=59

Reply from 103.102.166.224: bytes=32 time=55ms TTL=59

Reply from 103.102.166.224: bytes=32 time=54ms TTL=59

Reply from 103.102.166.224: bytes=32 time=54ms TTL=59

 

Ping statistics for 103.102.166.224:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 54ms, Maximum = 58ms, Average = 55ms

Ví dụ 2, khi biết địa chỉ IP của một server, có thể biết được tên miền của máy server đó (lưu ý một server có thể chứa nhiều website, do vậy tên miền của máy server không nhất thiết phải đồng nhất với tên miền của website). Sử dụng lệnh ping –a IP, hoặc lệnh nslookup IP.

Xem minh họa:

C:\Users\Maxsys>ping -a 103.102.166.224

 

Pinging text-lb.eqsin.wikimedia.org [103.102.166.224] with 32 bytes of data:

Reply from 103.102.166.224: bytes=32 time=57ms TTL=59

Reply from 103.102.166.224: bytes=32 time=54ms TTL=59

Reply from 103.102.166.224: bytes=32 time=55ms TTL=59

Reply from 103.102.166.224: bytes=32 time=53ms TTL=59

 

Ping statistics for 103.102.166.224:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 53ms, Maximum = 57ms, Average = 54ms

Hoặc dùng lệnh nslookup:

C:\Users\Maxsys>nslookup 103.102.166.224

Server:  dns.google

Address:  8.8.8.8

 

Name:    text-lb.eqsin.wikimedia.org

Address:  103.102.166.224

Trong một số trường hợp, có thể truy cập website bằng tên miền hoặc địa chỉ IP. Ví dụ: có thể truy cập trang google bằng http:// 142.250.66.78 hoặc http://google.com.

Hệ thống tên miền gồm 3 thành phần: DNS namespace, Name server và Resolver

– DNS namespace (hệ thống tên): hệ thống tên của DNS được tổ chức theo cấu trúc cây (tree). Mỗi nhánh của cây xác lập một miền (domain). Mỗi miền chứa các bản ghi (resource record): là thông tin ánh xạ giữa tên và địa chỉ IP, cùng các thông tin khác. Mục đích của quá trình truy vấn DNS là tìm kiếm các thông tin chứa trong các bản ghi tại mỗi miền.

– Name server: là máy tính đã được cài đặt dịch vụ DNS server và có chứa các bản ghi thông tin của miền. Đôi khi, máy này cũng chứa thông tin liên quan đến việc quản lý các nút con trong miền. Name server có thể trả lời các truy vấn liên quan đến tên miền do nó quản lý, ngoài ra, nó cũng có khả năng chuyển tiếp các truy vấn tới các name server khác trong trường hợp nó không thể trả lời được.

– Resolver (DNS client): là thành phần tạo ra các truy vấn DNS và gửi nó tới các Name server. DNS client có thể là chương trình (ví dụ trình duyệt web), máy tính, máy tính có cài đặt dịch vụ DNS server (nhưng không chứa các bản ghi thông tin của miền, ví dụ máy 8.8.8.8 của Google).

Tóm lại, DNS namespace là dữ liệu, Name server là máy chứa dữ liệu và cung cấp dịch vụ truy vấn, Resolver là máy tính (hoặc ứng dụng) truy vấn dữ liệu.

Xem hình minh họa:


Hệ thống tên của DNS

Hệ thống tên của DNS được tổ chức theo cấu trúc cây.

– Bắt đầu là nút gốc (DNS root), kí hiệu là (.) (dấu chấm). Khi duyệt web, bạn hoàn toàn có thể thêm dấu chấm (.) vào cuối mỗi tên miền. Đó mới là địa chỉ đầy đủ của website. Tuy nhiên, trong thực tế mọi người không cần thêm dấu chấm vì trình duyệt không bắt buộc điều đó.

– Tiếp theo là tên cấp cao (Top Level Domain – TLD). Ví dụ org, edu, com, vn, uk

– Tiếp theo là các tên miền thứ cấp  (Second Level Domain, Third Level Domainvv). Ví dụ wikipedia (Second Level Domain), en (Third Level Domain). 

Xem hình minh họa:


Quá trình đổi tên miền sang IP của DNS client

InterNIC (Internet Network Information Center) là Trung tâm thông tin mạng Internet, tổ chức chịu trách nhiệm trong việc nhận đăng ký và duy trì các tên miền .com, .edu, .gov, .net, và .org…v.v, theo dõi tên miền và các DNS server tương ứng. Nó không phụ trách việc phân giải tên miền.

Việc phân giải tên miền là trách nhiệm của DNS server thuộc các tổ chức quản lý website. Chúng ta sẽ nắm rõ hơn ý này khi thực hành cấu hình web server.

Quá trình đổi tên miền sang IP được thực hiện như sau (trên máy Windows):

– Bước 1: máy DNS client tìm trong DNS cache tại DNS client xem có bản ghi tên miền – IP hay không?

– Bước 2: nếu Bước 1 chưa tìm thấy, máy DNS client tiếp tục tìm trong tập tin hosts xem có bản ghi tên miền – IP hay không? (thực tế nội dung của tập tin hosts sẽ được nạp vào DNS cache).

– Bước 3: sau 2 bước trên, nếu vẫn không có bản ghi cần tìm, thì máy DNS client sẽ gửi truy vấn tới máy DNS server được khai báo trong cạc mạng (mục Preferred DNS server). Sau đó DNS server sẽ thực hiện việc phân giải tên miền. Quá trình phân giải tên miền của DNS server (DNS Iterator) được minh họa trong hình sau:




– Bước 4: trong máy DNS Iterator có chứa địa chỉ IP của các root nameserver, một trong số đó có IP là 198.41.0.4, do đó nó sẽ tạo truy vấn để hỏi máy root nameserver đầu tiên: máy org nằm ở đâu? ý là địa chỉ IP của org là gì?

– Bước 5: trong máy root nameserver chứa mẩu tin org – 204.74.112.1. Root nameserver trả lời: “máy org có IP là 204.74.112.1”.

– Bước 6: DNS Iterator tiếp tục gửi truy vấn tới org. nameserver: wikipedia.org nằm ở đâu? ý là địa chỉ IP của wikipedia.org là gì?

– Bước 7: trong máy org. nameserver có chứa mẩu tin wikipedia - 207.142.131.234. Vì vậy .org nameserver trả lời: “wikipedia.org có IP là 207.142.131.234”.

– Bước 8: DNS Iterator tiếp tục gửi truy vấn tới wikipedia.org. nameserver: máy www.wikipedia.org nằm ở đâu? ý là địa chỉ IP của www.wikipedia.org là gì?

– Bước 9: trong máy wikipedia.org. nameserver có chứa mẩu tin www - 103.102.166.224. Nó sẽ gửi thông tin này về cho DNS Iterator. Và DNS Iterator sẽ chuyển về cho DNS client.

1.1.2       Đăng ký tên miền

Đăng ký tên miền là việc xác lập quyền sở hữu của chủ thể (cá nhân, tổ chức, cơ quan, công ty) đối với một tên miền cụ thể. Việc đăng ký tên miền cần có hợp đồng giữa chủ thể tên miền và nhà cung cấp dịch vụ tên miền.

Đăng ký tên miền để xây dựng, bảo vệ thương hiệu. Khi đã có tên miền bạn có thể xây dựng website để quản lý, dạy học, làm việc, làm thương mại, quảng cáo, quảng bá thương hiệu.

Tổ chức quản lý và cung cấp tên miền của quốc tế là ICANN, của Việt Nam là VNNIC. Tuy nhiên, chúng ta không thể trực tiếp đăng ký tên miền với 2 tổ chức này. Thay vì vậy, chúng ta sẽ đăng ký tên miền qua các công ty, đại lý trung gian, chuyên cung cấp dịch vụ đăng ký tên miền. Ví dụ: GoDaddy, MatBao, NhanHoa, TenTen, Pavietnam,…v.v.


Tên miền quốc tế là gì?

Tên miền quốc tế là tên miền do tổ chức ICANN (Internet Corporation for Assigned Names and Numbers – Tập đoàn Internet cấp số và tên miền) cấp. Ví dụ các tên miền có đuôi là .com, .net, .org, .info, edu …v.v.

Ý nghĩa một số đuôi của tên miền:

– .COM là tổ chức liên quan đến thương mại (COMmercial)

– .NET liên quan đến mạng lưới (NETwork)

– .ORG  liên quan đến các tổ chức (ORGanizations)

– .INFO liên quan đến thông tin (INFOrmation)

– .EDU liên quan đến giáo dục (EDUcation)

Tên miền cấp quốc gia là gì?

Tên miền quốc gia là tên miền riêng của từng nước hay vùng lãnh thổ, có phần đuôi là kí hiệu của mỗi quốc gia. Ví dụ: .vn là Việt Nam, .UK là của Anh, .us là của Mỹ.

Tên miền Việt Nam do VNNIC quản lý.

Tên miền Việt Nam, có phần đuôi là .vn; .com.vn; .edu.vn.

Một vài gợi ý về cách chọn tên miền

– Tên miền nên có chứa từ khóa tìm kiếm, giúp tăng thứ hạng trong các hệ thống tìm kiếm. Ví dụ: nhaxeABC, trungtamXYX, ABCshop.

– Tên miền nên ngắn gọn,  sáng tạo, dễ phát âm, dễ viết

– Không nên sử dụng dấu gạch ngang (-) trong tên miền

– Nên chọn tên có tính khả mở (khoaitaydalat, raudalat, raucudalat)

– Đăng ký nhanh, tránh trì hoãn, có thể bị người khác đăng ký trước

– Chọn nhà cung cấp uy tín

– Đăng ký tên miền cùng chỗ thuê đặt website để có được nhiều ưu đãi

Tên miền miễn phí

Có rất nhiều các website cho phép đăng ký tên miền miễn phí.

Ví dụ:

pages.github.com

000webhostapp.com

wordpress.com

blogspot.com

my.noip.com

my.freenom.com

somee.com

biz.nf

– Một số tên miền miễn phí chỉ sử dụng được trong một khoảng thời gian nhất định, có thể bị mất bất cứ khi nào

– Phần đuôi của tên miền thường là tên của nhà cung cấp

– Tên miền miễn phí không nhận được hỗ trợ kĩ thuật

Tên miền có phí

– Có hợp đồng giữa chủ sở hữu và nhà cung cấp

– Được hỗ trợ kỹ thuật

– Được chọn tên theo ý muốn

– Được bảo hộ về quyền sở hữu, thương hiệu

– Sử dụng lâu dài

1.1.3       Xem và đọc thêm

Các từ khóa: DNS, Fully Qualified Domain Name, hệ thống tên miền, đăng ký tên miền, tên miền quốc tế, tên miền quốc gia.

– [1] DNS (read): https://dzone.com/refcardz/dns

– [2] FQDN: https://en.wikipedia.org/wiki/Fully_qualified_domain_name

– [3] DNS wiki (read): https://en.wikipedia.org/wiki/Domain_Name_System

– [4] DNS (đọc): https://vi.wikipedia.org/wiki/H%E1%BB%87_th%E1%BB%91ng_ph%C3%A2n_gi%E1%BA%A3i_t%C3%AAn_mi%E1%BB%81n

– [5] Đăng ký tên miền: https://wiki.matbao.net/ten-mien-la-gi-dang-ky-ten-mien-o-dau-la-tot-nhat/

– [6] Chọn tên miền: https://www.wpbeginner.com/beginners-guide/tips-and-tools-to-pick-the-best-domain-for-your-blog/

– [7] DNS explained: https://www.youtube.com/watch?v=FsGUi5pXpLk

1.1.4       Bài tập và thực hành

Bài tập 1. Tìm địa chỉ IP hoặc tên miền còn thiếu trong bảng sau:

Địa chỉ IP

Tên miền

 

https://tuoitre.vn/

 

https://www.google.com/

128.30.52.100

 

108.177.125.18

 

127.0.0.1

 

 

localhost

Bài tập 2. Trong hệ điều hành Windows, mở và thêm một bản ghi trong tập tin hosts (ví dụ: “127.0.0.1 hocdns.com”. Kiểm tra DNS cache để quan sát bản ghi trong tập tin hosts đã được nạp vào DNS cache.

Bài tập 3. Thay đổi lại địa chỉ Preferred DNS server trong cạc mạng là một địa chỉ của Google, Singapore, VNPT và của Viettel.

Bài tập 4. Đăng ký 2 tên miền miễn phí.

Bài tập 5. Kể tên 3 nhà cung cấp dịch vụ đăng ký tên miền (2 của Việt Nam, 1 của quốc tế). Để đăng ký một tên miền có phí, cần chuẩn bị những gì? Khảo sát bảng giá của một số tên miền. Thử đăng ký một tên miền có phí.

[Gợi ý đáp án]

Bài tập 1. Tìm địa chỉ IP hoặc tên miền còn thiếu trong bảng sau:

Địa chỉ IP

Tên miền

222.255.239.80

https://tuoitre.vn/

216.58.220.196

https://www.google.com/

128.30.52.100

https://www.w3.org/

108.177.125.18

https://mail.google.com/

127.0.0.1

Localhost

127.0.0.1

Localhost

Bài tập 2. Trong hệ điều hành Windows, mở và thêm một bản ghi trong tập tin hosts (ví dụ: “127.0.0.1 hocdns.com”. Kiểm tra DNS cache để quan sát bản ghi trong tập tin hosts đã được nạp vào DNS cache.

– Đường dẫn của tập tin hosts: C:\Windows\System32\drivers\etc, mở tập tin hosts bằng notepad

– Thêm bản ghi “127.0.0.1 hocdns.com” vào cuối tập tin, lưu lại và đóng notepad

– Mở chương trình CMD hoặc Powershell, dùng lệnh ipconfig /displaydns đối với CMD, hoặc dùng lệnh Get-dnsclientcache đối với Powershell để xem kết quả.

Bài tập 3. Có nhiều cách làm, đây là một cách (làm trên hệ điều hành Windows):

– Chuột phải vào biểu tượng cạc mạng ở System tray

– Chọn Open Network & Internet settings

– Chọn Wifi (nếu dùng mạng không dây), hoặc Ethernet (nếu dùng mạng có dây)

– Chọn Change adapter options

– Bấm đúp chuột vào cạc mạng đang sử dụng (Wifi hoặc Ethernet)

– Chọn Properties\Internet Protocol Version 4\ chọn Use the following DNS server addresses, sửa địa chỉ IP trong mục Preferred DNS server.

– Lên mạng tìm “IP DNS server của Google”, VNPT,…v.v.

1.1.5       Câu hỏi ôn tập

Câu 1. DNS là  viết tắt của:

A. Domain Name Services

B. Domain Name System

C. Domain Network Services

D. Document Name System

Câu 2. The DNS is a hierarchical and _________ naming system for computers, services, or other resources connected to the Internet or a private network.

A. centralized

B. domain

C. decentralized

D. digital

Câu 3. Hệ thống DNS gồm 3 thành phần là:

A. Name server, DNS namespace và Resolver

B. DNS system, Resolver và Name server

C. Root server, DNS namespace, và Name server

D. DNS namespace, Domain Name và Resolver

Câu 4. Dấu chấm ở cuối tên miền “http://www.vidu.com.”,  mang ý nghĩa gì?

A. Không mang ý nghĩa gì, do viết thừa

B. Tên miền gốc (root domain)

C. Tên miền mức cao (top level domain)

D. Thư mục gốc của website

Câu 5. Tổ chức quản lý và cung cấp tên miền quốc tế và Việt Nam là:

A. W3C và VNPT

B. eBay và Mắt bão

C. ICANN và VNPT

D. ICANN và VNNIC

Câu 6. Trong hệ điều hành Windows, tập tin hosts chứa cái gì?

A. Danh sách các máy chủ

B. Địa chỉ các máy host

C. Các bản ghi IP-Domain name

D. Địa chỉ các DNS server

-----

Video

Slide

-----

Cập nhật: 14/8/2023

-----

Bạn muốn tự học HTML bài bản? Xem thêm