On Fri, 22 Jul 2011, Truong Anh. Tuan wrote:

>
> Anh em có thể giải thích rõ hơn vấn đề là gì không?
>
> Xử lý file hosts nghĩa là map lại IP thay cho DNS à?
> Nếu là vấn đề DNS sao dùng OpenDNS cũng không vào được?
>
> Mà IP được map lại sao lại là cái "125.252.224.88" nhỉ?
> Là máy chủ dự phòng của FB à?
>
> Kind regards,
> Tuan
>

Chào mọi người,

Câu hỏi của anh Tuấn là một câu hỏi kỹ thuật rất thú vị, liên quan nhiều đến
cách thức hoạt động của Domain Name System (DNS) và Content Delivery Network.
Hai hôm rồi không thấy ai hồi âm, em xin phép được trả lời theo cách hiểu của
em vậy, có gì không đúng mong mọi người đóng góp/chỉnh sửa nhé.

Để hiểu được

1) tại sao sử dụng OpenDNS hoặc Google Public DNS vẫn không vào được Facebook,
và

2) cái IP 125.252.224.88 / 96.17.180.162 / 153.16.15.71 / ... trong file host
mang ý nghĩa gì?

trước tiên cần hiểu rõ một vài khái niệm sau:

* DNS là một hệ thống làm nhiệm vụ chuyển đổi từ một tên miền (domain name)
  dạng human-readable sang địa chỉ IP (v4/v6).

  Trong DNS có một thành phần là DNS resolver, chạy trên client.  DNS resolver
  sẽ làm nhiệm vụ phân giải (resolve) domain name và điều phối IP thích hợp
  nhất.  Nguyên nhân là vì một domain name được phân giải thành nhiều IP
  (distributed network).

* Open DNS hoặc Google Public DNS cung cấp dịch vụ cho DNS resolver, nhằm giúp
  DNS resolver của client chọn được IP:

  - Có vị trí (địa lý/ảo) gần nhất
  - Có hiệu suất cao nhất có thể
  - Đáng tin cậy nhất (tránh tình trạng site fishing chẳng hạn)
  - etc.

  Ví dụ về cách truy cập Facebook sử dụng dịch vụ DNS:

  - Client cần gửi request đến www.facebook.com

  - DNS resolver sẽ phân giải domain "www.facebook.com" thành IP thích hợp và
    trả lại IP đó cho các thành phần tiếp theo

  Vậy thì tại sao hồi mới đầu dùng OpenDNS hoặc Google Public DNS thì vào được
  Facebook, bây giờ lại không?  Vì mới đầu các bác ISP Việt Nam không chặn hết
  các IP "đầu vào" của Facebook (các IP mà DNS resolver có thể phân giải
  được).  Bây giờ các bác chặn hết rồi thì không vào được bằng cách này nữa.

* Một Content Delivery Network (CDN) là một hệ thống mạng các máy tính chứa
  các bản copy/clone của dữ liệu (cache). Dữ liệu này:

  - Lấy từ nhiều nguồn khác nhau ngoài CDN.  Ví dụ: Internet, ...
  - Được lưu trữ rải rác trên các máy tính trong CDN.

  Mục đích của một CDN là:

  - Tăng bandwidth (dựa vào cách thức bố trí máy trong một CDN).
  - Tăng tốc độ truy xuất dữ liệu.
  - Giảm thiểu traffic đến server chứa dữ liệu gốc.
  - Tăng hiệu năng truy xuất nhiều người dùng tại cùng một thời điểm.
  - etc.

  Cách thức hoạt động của một CDN như sau:

  - Client gửi request đến trang web abc.com

  - abc.com xử lý request và sinh ra trang xyz.html (sẽ dùng cho response).
    xyz.html chứa các tài nguyên hình ảnh, âm thanh, ... trỏ đến đâu đó.

  - CDN can thiệp, "trỏ lại" các tài nguyên trong xyz.html vào dữ liệu cache
    nằm trong CDN và re-cache nếu cần.

  - Cuối cùng, xyz.html được gửi về client dưới dạng response, lúc này các tài
    nguyên được load dựa trên dữ liệu từ CDN chứ không phải trên nguồn gốc.

  Mọi người có thể nhận ra rằng Google có cơ chế của một CDN khổng lồ, tuy vậy
  em không rõ họ có cung cấp dịch vụ CDN hay không.

* IP 125.252.224.88 / 96.17.180.162 thuộc về Akamai Technologies - một CDN cực
  lớn, và IP 153.16.15.71 thuộc về UUNET - một trong những ISP lớn nhất thế
  giới.  Cả hai hãng này đều (i) cung cấp dịch vụ CDN và (ii) IP đều không bị
  các ISP Việt Nam chặn.  Để truy xuất được Facebook, chỉ cần "bắt chéo" (map)
  domain tương ứng với một IP service của một bác CDN nào đó hỗ trợ cache
  Facebook là được.  Đó chính là cách sửa file hosts mà chúng ta vẫn làm.

Chúc mọi người một ngày Chủ Nhật cuối tuần vui vẻ!

All the best,
Dương
-- 
Dương "Yang" ヤン Hà Nguyễn
Web log: http://cmpitg.wordpress.com/
"Life is a hack"

[ Do not send me Microsoft Office attachments, please.
  http://www.gnu.org/philosophy/no-word-attachments.html ]

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GIT/C/ED/L d++ s-:-(:) !a C+++(++++) ULU++++>$ P-- L+++>$ E+++
W++>+++ N+ o+ K w--- O- M@ V- PS+ PE++ Y+>++ PGP++ t+ 5 X+ R-
tv+ b+++ DI+++ D++ G+++ e* h* r* y-
-----END GEEK CODE BLOCK-----
_______________________________________________
POST RULES : http://wiki.hanoilug.org/hanoilug:mailing_list_guidelines
_______________________________________________
HanoiLUG mailing lists: http://lists.hanoilug.org/
HanoiLUG wiki: http://wiki.hanoilug.org/
HanoiLUG blog: http://blog.hanoilug.org/

Trả lời cho