Friday, September 2, 2016

Vì sao bạn có thể vào Tinh tế bằng địa chỉ tinhte.vn mà không phải gõ số IP dài ngoằn?

Máy chủ tên miền là thứ giúp bạn có thể gõ tinhte.vn vào trình duyệt và xem được Tinh tế thay vì phải gõ địa chỉ IP 125.212.247.216 thủ công vì rõ ràng chữ tinhte.vn thì dễ nhớ hơn là chuỗi số loằng ngoằng kia. Trong bài này, mình sẽ giải thích về cách hoạt động của máy chủ tên miền, tầm quan trọng của nó với thế giới Internet hiện nay và nói thêm một số khái niệm cơ bản liên quan đến tên miền cho các bạn hiểu về thứ mà gần như mỗi ngày các bạn đều sử dụng trên web.


Địa chỉ IP là gì?

Trước khi bắt đầu, chúng ta hãy xem IP là gì. IP là địa chỉ của một thiết bị nào đó trong mạng Internet, nó là duy nhất trên toàn thế giới tại một thời điểm. IP cũng giống địa chỉ nhà của bạn, trên thế giới sẽ không thể nào có địa chỉ thứ hai giống y hệt địa chỉ nhà bạn từ số, tên đường cho đến thành phố, quốc gia.

Hiện tại có hai loại địa chỉ IP đang được sử dụng, đó là IPv4 và IPv6. IPv4 được xài rất phổ biến và nó là một chuỗi có dạng 125.212.247.216. Mỗi số đứng trước dấu chấm có giá trị từ 0 đến 255, không thể nào lên cao hơn. IPv6 là chuẩn mới hơn, nó mở rộng dải IP ra rất rộng và có dạng 2001:0cb8:85a3:0000:0000:8a2e:0370:7334. Ở trong bài này chúng ta chỉ tập trung nói về IPv4 mà thôi.

DNS_hoat_dong_ra_sao_2.png

Địa chỉ IP của bạn sẽ do nhà mạng, ví dụ như VNPT, Viettel hay FPT cấp cho router mạng của bạn. Mặc định, số IP này sẽ thay đổi mỗi khi router kết nối vào Internet (dynamic IP). Nếu bạn muốn nhà bạn luôn luôn có một địa chỉ IP cố định (static IP) thì bạn phải đăng kí thêm và phải trả thêm tiền.

Ở nơi đặt máy chủ của Tinh tế, máy chủ này có địa chỉ IP cố định là 125.212.247.216. Tương tự như thế cho mọi website khác, ví dụ Google là 216.58.196.14, Yahoo là 98.138.253.109.

Để biết IP của nhà bạn, hãy lên Google.com, gõ "What is My IP Address". Lưu ý đây là Public IP, tức là IP mà bạn sẽ dùng để nói chuyện với thế giới Internet và mọi thiết bị trong nhà bạn sẽ dùng Public IP này. Còn trong mạng nội bộ nhà bạn, gọi là mạng LAN, thì mỗi thiết bị sẽ có IP khác, kiểu như 192.168.1.155 hoặc 192.168.1.220 chẳng hạn.

Bấm để mở rộng...

Hệ thống tên miền - Domain Name System

Nếu bạn phải nhớ hết tất cả những con số này thì quá cực khổ. Não người có xu hướng ghi nhớ tốt hơn những từ hoặc cụm từ chứ không phải là các con số, vậy nên việc sử dụng địa chỉ IP để truy cập vào những trang web này là điều không khả thi, nhất là khi người ta muốn phổ biến web ra toàn thế giới để ai ai cũng có thể tiếp cận được với thế giới web. Vậy là hệ thống tên miền ra đời ( DNS), và đơn vị cao nhất quản lý hệ thống này là Cơ quan tên miền và truyền số liệu quốc tế (ICANN).

Để biết trang web nào nằm ở địa chỉ IP nào, người ta sẽ cần tới hệ thống máy chủ đặc biệt gọi là máy chủ tên miền (DNS server). Hệ thống này sẽ có một cơ sở dữ liệu khổng lồ cho biết địa chỉ IP nào sẽ đi với tên miền nào. Khi có ai đó cần truy cập 1 tên miền nhất định, máy chủ DNS sẽ đi tìm trong cơ sở dữ liệu để lấy địa chỉ IP tương ứng. Địa chỉ IP đó sẽ được trả về cho trình duyệt trên máy tính của bạn, trình duyệt sẽ dựa vào đây mà kết nối với máy chủ của website, download dữ liệu của trang xuống rồi hiện ra cho bạn xem. Nghe đơn giản đúng không? Nguyên lý hoạt động chỉ như vậy thôi.

Sự phân cấp và quy trình tìm kiếm của máy chủ phân giải tên miền

Bên dưới DNS server mà mình nói tới ở trên thực chất là hàng triệu máy chủ khác nhau được quản lý bởi hàng triệu người khác nhau nằm rải rác trên toàn thế giới, vậy mà nó vẫn hoạt động như một máy duy nhất, một cơ sở dữ liệu duy nhất mới hay chứ! Lý do người ta cần tách nó ra như vậy là để đảm bảo hệ thống Internet sẽ hoạt động ổn định trên toàn cầu, mọi lưu lượng không bị dồn hết vào một máy chủ duy nhất khiến hệ thống bị sập. Tất cả việc xử lý thông qua nhiều máy chủ này chỉ diễn ra trong tích tắc, chỉ bằng hoặc chưa bằng một cái chớp mắt của bạn.

DNS_hoat_dong_ra_sao_3.png

Lấy ví dụ như thế này: Khi bạn vào Tinh tế bằng máy tính của mình, giả sử bạn đang dùng mạng Viettel thì địa chỉ tinhte.vn sẽ được hệ điều hành gửi về máy chủ phân giải tên miền (Resolving Name Server - RNS, còn gọi là Resolver) của Viettel để xem IP website là bao nhiêu. Nếu máy chủ RNS của Viettel có sẵn thông tin này, nó sẽ trả về máy tính của bạn và trình duyệt sẽ dùng IP để load web.

Ngoài việc dùng DNS server của các nhà mạng, đôi khi chúng ta cũng chuyển DNS sang Google ở địa chỉ 8.8.8.8 hoặc 8.8.4.4. Cách này thì chắc hẳn anh em quá quen thuộc rồi đúng không nào. Khi đó máy chủ RNS của Google sẽ thực hiện việc tìm kiếm thay cho RNS của Viettel.

Bấm để mở rộng...

Nhưng nếu máy chủ RNS của Viettel chưa có thông tin về IP của website tinhte.vn, RNS sẽ đi hỏi root server. Đây là những server quan trọng nhất với hạ tầng Internet. Mọi RNS của tất cả các nhà mạng sẽ phải lưu địa chỉ IP cố định của các root server để dùng khi cần. Root server không biết địa chỉ cụ thể của tinhte.vn, tuy nhiên nó biết địa chỉ IP của máy chủ chịu trách nhiệm cho các tên miền .vn.
10 năm về trước, chỉ có 13 root server và hết 10 cái nằm ở Mỹ. 13 server này có 13 địa chỉ IP tương ứng và chúng được vận hành bởi 12 công ty, tổ chức khác nhau. Ngày nay, con số root server đã tăng thành hơn 300 và phủ khắp 6 châu lục trên thế giới thế. Tuy nhiên, vì số lượng địa chỉ IP của root server vẫn chỉ là 13 nên tại một thời điểm và ở một vị trí nhất định, RNS chỉ có thể kết nối tới tối đa 13 server mà thôi. Những cái còn lại sẽ được người khác, ở quốc gia khác sử dụng. Giả sử 1 server trong số 13 root server bị sập thì vẫn còn thêm mấy cái dự phòng. Bạn có thể xem bản đồ của các root server ở đây.

Bấm để mở rộng...

DNS_hoat_dong_ra_sao_1.png

Một số root server trên thế giới


Anh chàng RNS tiếp tục đi tới IP của máy chủ quản lý tên miền .vn, gọi là Top-Level Domain Name Server (.vn, .us, .com, .net là những Top-Level Domain Name - viết tắt là TLD). Máy chủ TLD cũng không biết website mà bạn cần tìm nằm ở đâu, nhưng nó biết cách tìm địa chỉ máy chủ nơi lưu IP của website tương ứng với tên miền tinhte.vn. Các máy chủ này được gọi là Authority Name Server (ANS).

Thế là RNS lại lốc cốc đi tới Authority Name Server bằng địa chỉ IP vừa được máy chủ TLD cung cấp. ANS biết tên miền tinhte.vn đang lưu website tại máy chủ 125.212.247.216, vậy là nó đưa cho RNS. Lúc này, con số 125.212.247.216 sẽ được RNS trả ngược về lại hệ điều hành của bạn và kết thúc quá trình phân giải tên miền. Trình duyệt sau đó sẽ truy cập vào server 125.212.247.216 để download website, hình ảnh xuống cho bạn xem. Nếu bạn có xài app Tinh tế trên điện thoại thì app cũng sẽ lấy dữ liệu từ 125.212.247.216 để hiển thị.

ANS được vận hành bởi các "registra", là những công ty mua bán tên miền, ví dụ như Mắt Bão, FPT ở Việt Nam hay Godaddy, Google Domain ở nước ngoài. Khi bạn mua tên miền nào đó, registra có nhiệm vụ cập nhật địa IP của máy chủ chứa website vào ANS, cũng như thông báo lên một cấp cao hơn là "registry" để cập nhật IP của ANS vào máy chủ TLD. Registry ở Việt Nam được vận hành bởi VNNIC, Trung tâm Internet Việt Nam trực thuộc Bộ thông tin và truyền thông.

Bấm để mở rộng...

Trong suốt quá trình "đi hỏi" nói trên, RNS sẽ lưu hết những địa chỉ IP mà nó đã phải đi tới để phục vụ cho những lần kết nối sau. Ví dụ, khi RNS Viettel đã biết được IP của Tinh tế, từ đó về sau khi bạn vào tinhte.vn thì RNS sẽ trả về ngay kết quả cho bạn, không cần phải thông qua root server rồi TLD rồi ANS như lần đầu tiên nữa, tức là tiết kiệm thời gian hơn.

Ngày 1/10 tới đây, chỉ phủ Mỹ sẽ bàn giao việc kiểm soát hệ thống DNS lại cho ICANN. Kể từ bây giờ trở đi, DNS sẽ do các tổ chức và quốc gia trên toàn cầu chính thức giám sát, bảo trì và vận hành. Mỹ tin rằng DNS cần phải được quản lý bởi nhiều bên khác nhau vì lợi ích chung của toàn cầu, và quả thật như vậy, DNS nếu có sự cố chắc chắn sẽ gây ảnh hưởng rất mạnh đến đời sống cũng như nền kinh tế toàn cầu. Hi vọng bài viết đã cung cấp cho bạn thêm một chút kiến thức hữu ích về thứ mà bạn vẫn xài hằng ngày!


EmoticonEmoticon