Kiến thức cơ bản về mạng: Phần 3 - DNS Server

Đây là phần tiếp theo của loạt bài Kiến thức cơ bản dành cho những người mới bắt đầu làm quen và tìm hiểu về mạng máy tính. Sau hai bài giới thiệu Hub và Switch, Router, nội dung của bài này đề cập đến hoạt động của các server DNS (hệ thống tên miền).

Đây cũng là phần cuối cùng chúng tôi nói đến cách các máy tính trong một phân đoạn mạng chia sẻ vùng địa chỉ IP chung như thế nào. Mời các bạn cùng theo dõi.

DNS Server là gì?

Như chúng ta đã biết, khi một máy tính cần truy cập thông tin trên một máy nằm ở mạng khác hay phân đoạn mạng khác, nó cần đến sự trợ giúp của router. Router sẽ chuyển các gói dữ liệu cần thiết từ mạng này sang mạng khác (chẳng hạn như Internet). Nếu bạn đã từng đọc phần hai, chắc hẳn bạn nhớ, chúng tôi có đưa ra một ví dụ tạo một tham chiếu đến địa chỉ IP kết hợp với một website. Để có thể truy cập vào website này, trình duyệt Web của bạn phải biết địa chỉ IP của website. Sau đó trình duyệt cung cấp địa chỉ cho router, router sẽ xác định đường đi tới mạng khác và yêu cầu các gói dữ liệu tới máy đích phù hợp. Mỗi website đều có một địa chỉ IP nhưng bạn có thể ghé thăm các website này hàng ngày mà không cần quan tâm đến dãy con số đó của nó. Trong bài này chúng tôi sẽ chỉ cho bạn thấy lý do vì sao có thể thực hiện được.

Địa chỉ IP cũng giống như địa chỉ nhà vậy. Nó gồm có vị trí mạng (là dãy số hiệu chỉ phân đoạn mạng máy tính đang hoạt động trong đó), tương tự như tên phố; và vị trí thiết bị (xác định một máy tính cụ thể trong mạng), tương tự như số nhà. Biết về địa chỉ IP là yêu cầu cần thiết cho hoạt động truyền thông cơ sở TCP/IP giữa hai máy tính.

Khi bạn mở một trình duyệt Web và nhập tên website (được biết đến như là tên miền hay đường dẫn URL(Universal Resource Locator - bộ định vị vị trí tài nguyên chung)), trình duyệt sẽ đến thẳng website mà không cần phải thông qua việc nhập địa chỉ IP. Bạn có thể hình dung quá trình mở website cũng giống như quá trình chuyển thư đến địa chỉ nhận ghi trên phong bì ở bưu điện vậy. Địa chỉ IP trong truyền thông mạng đóng vai trò như địa chỉ trên phong bì. Thư không thể đến đúng nơi nếu bạn chỉ ghi tên người nhận mà "quên mất" địa chỉ của họ. Việc đến và mở được một website cũng như vậy. Máy tính của bạn không thể liên lạc được với website trừ khi nó biết địa chỉ IP của website đó.

Nhưng bạn không cần gõ địa chỉ IP mà trình duyệt vẫn mở được đúng website bạn muốn khi nhập tên miền vào. Vậy địa chỉ IP ở đâu? Quá trình "dịch" tên miền thành địa chỉ IP là công việc của một server DNS (trình chủ hệ thống tên miền).

DNS server là máy chủ chứa cơ sở dữ liệu về địa chỉ IP public và các hostname được liên kết với chúng. Trong hầu hết các trường hợp, DNS server sẽ phân giải hoặc dịch các tên miền thành địa chỉ IP theo yêu cầu. Các DNS server chạy phần mềm đặc biệt và giao tiếp với nhau bằng các giao thức đặc biệt. Nói một cách dễ hiểu hơn: DNS server trên Internet là thiết bị dịch URL Quantrimang.com bạn nhập trong thanh địa chỉ của trình duyệt thành địa chỉ IP 123.30.180.60.

Ghi chú: Các tên gọi khác của DNS server bao gồm name server/nameserver (máy chủ định danh) và domain name system server (máy chủ hệ thống tên miền).

Trong hai bài trước chúng ta đã từng nói tới một số khái niệm về cấu hình TCP/IP của máy tính, như địa chỉ IP, mặt nạ mạng con (subnet mask) và cổng vào mặc định (default gateway). Nhìn hình A bên dưới bạn sẽ thấy có thêm một tuỳ chọn cấu hình khác là "Preferred DNS server" (trình chủ hệ thống tên miền tham chiếu).


Hình A: Tuỳ chọn Preferred DNS Server được định nghĩa như là một phần của cấu hình TCP/IP trong máy tính.

Bạn có thể thấy trong hình minh hoạ, tuỳ chọn "Preferred DNS server" được định nghĩa như là một phần của cấu hình TCP/IP. Có nghĩa là máy tính sẽ luôn biết địa chỉ IP của DNS server. Điều này là hết sức quan trọng vì máy tính không thể liên lạc được với máy tính khác sử dụng giao thức TCP/IP nếu nó không biết địa chỉ IP của máy kia.

 

Tại sao lại cần DNS server?

Câu hỏi này có thể được trả lời bằng một câu hỏi khác: Bạn thấy 123.30.180.60 hay quantriamng.com dễ nhớ hơn? Hầu hết mọi người sẽ trả lời rằng nhớ một cụm từ như quantrimang đơn giản hơn nhiều so với một chuỗi các con số.

Giao diện website Quantrimang.com

Khi bạn nhập quantrimang.com vào trình duyệt web, tất cả những gì bạn cần nhớ là URL https://quantrimang.com/. Điều này cũng đúng với bất kỳ trang web nào khác như Google.com, Amazon.com, v.v... Chúng ta là con người, do đó ta nhớ những từ trong URL dễ dàng hơn nhiều so với các con số trong địa chỉ IP. Các máy tính và thiết bị mạng khác sẽ chịu trách nhiệm hiểu địa chỉ IP. Do đó, DNS server có vai trò giúp người dùng sử dụng một tên dễ nhớ để truy cập trang web, đồng thời cũng giúp máy tính sử dụng địa chỉ IP để truy cập trang web đó. DNS server là “thông dịch viên” giữa hostname và địa chỉ IP.

Bây giờ chúng ta sẽ xem xét điều gì xảy ra khi bạn cố gắng tới thăm một website. Quá trình bắt đầu với việc bạn mở trình duyệt Web và nhập đường dẫn URL. Khi đó, trình duyệt biết rằng nó không thể xác định được vị trí của website nếu chỉ dựa vào một mình địa chỉ URL. Do đó nó truy vấn thông tin địa chỉ IP của DNS sever từ cấu hình TCP/IP của máy tính và đưa đường dẫn URL lên trình chủ DNS server. DNS server sau đó sẽ tra tìm đường dẫn URL trên bảng có danh sách địa chỉ IP của website. Sau đó nó trả ra địa chỉ IP cho trình duyệt Web và trình duyệt có thể liên lạc với website được yêu cầu.

Thực sự quá trình giải thích này có thể được mô tả đơn giản hơn một chút. Giải pháp tên miền trong DNS chỉ có thể hoạt động nếu DNS server có chứa một bản ghi tương ứng với website được yêu cầu. Nếu bạn vào một website ngẫu nhiên, DNS sever sẽ không có bản ghi về website này. Lý do là bởi Internet quá lớn. Có hàng triệu website và website mới được tạo ra mỗi ngày. Không có cách nào cho một server DNS đơn có thể bắt kịp tất cả các website và đáp ứng được tất cả yêu cầu từ bất kỳ ai có kết nối tới Internet.

Bây giờ giả sử một trình chủ DNS server đơn có thể lưu trữ các bản ghi cho mọi website tồn tại. Nếu dung lượng của trình chủ không phải là vấn đề thì server cũng sẽ bị tràn bởi các yêu cầu xử lý tên nhận được từ người dùng Internet ở khắp mọi nơi. Một DNS server trung tâm hoá thường là đích nhắm rất phổ biến của các cuộc tấn công.

Do đó, các trình chủ DNS server thường được phân phối sang nhiều điểm, tránh cho một server DNS đơn phải cung cấp xử lý tên cho toàn bộ Internet. Trên thế giới hiện nay có một tổ chức chuyên phụ trách việc cấp phát, đăng ký tên miền Internet là Internet Corporation for Assigned Names and Numbers (hay ICANN). Do quản lý tên miền cho toàn bộ mạng là một công việc khổng lồ nên ICANN phân bổ nhiều phần đáp ứng tên miền cho các hãng khác nhau. Chẳng hạn, Network Solutions phụ trách tên miền ".com". Nhưng không có nghĩa là Network Solutions duy trì danh sách các địa chỉ IP kết hợp với toàn bộ tên miền .com. Trong hầu hết mọi trường hợp, DNS server của Network Solution đều chứa bản ghi trỏ tới DNS server được xem là chính thức cho từng miền.

Để thấy được tất cả hoạt động như thế nào, tưởng tượng rằng bạn muốn vào website quantrimang.com. Khi nhập yêu cầu vào trình duyệt, trình duyệt gửi địa chỉ URL vào trình chủ DNS server được chỉ định bởi cấu hình TCP/IP của máy tính bạn. Trình chủ DNS server không biết địa chỉ của website này. Do đó, nó gửi yêu cầu tới DNS server của ICANN. DNS server của ICANN cũng không biết địa chỉ IP của website bạn đang muốn vào mà chỉ biết địa chỉ IP của DNS server chịu trách nhiệm với tên miền có đuôi .COM. Nó sẽ trả lại địa chỉ này cho trình duyệt và trong quá trình trả về nó cũng thực hiện việc đưa yêu cầu tới DNS server cụ thể đó.

Mức DNS server cao nhất dành cho tên miền đuôi .COM sẽ không biết đến địa chỉ IP nào của website được yêu cầu, nhưng nó biết địa chỉ IP của DNS server chính thức cho tên miền brienposey.com. Nó sẽ gửi địa chỉ này trở lại máy đưa ra yêu cầu. Sau đó trình duyệt Web gửi truy vấn DNS tới DNS server có đủ thẩm quyền cho miền được yêu cầu. Và DNS server này sẽ trả ra địa chỉ IP của website, cho phép máy liên lạc với website nó yêu cầu.

Như bạn có thể thấy, có nhiều bước phải hoàn thành để một máy tính tìm ra địa chỉ IP của một website. Nhằm giảm bớt số truy vấn DNS phải thực hiện, kết quả của các truy vấn này thường được lưu trữ liệu trong vài giờ hoặc vài ngày, tuỳ thuộc vào máy được cấu hình như thế nào. Việc lưu trữ các địa chỉ IP nâng cao một cách tuyệt vời khả năng thực thi và tối thiểu hoá tổng lượng băng thông tiêu thụ cho các truy vấn DNS. Bạn có thể hình dung ra quá trình duyệt Web sẽ tệ hại đến mức nào nếu máy tính của bạn phải thực hiện tập hợp đầy đủ các truy vấn DNS bất kỳ thời gian nào bạn muốn xem trang Web mới.

DNS server và phần mềm độc hại

Việc chạy một chương trình chống virus rất quan trọng. Một lý do là phần mềm độc hại có thể tấn công máy tính của bạn bằng cách thay đổi cài đặt DNS server. Và đây chắc chắn là điều bạn không muốn xảy ra.

Ví dụ, máy tính của bạn đang sử dụng DNS server của Google 8.8.8.8 và 8.8.4.4. Trong các DNS server này, việc truy cập vào trang web ngân hàng (với URL của ngân hàng đó) sẽ load chính xác trang web và cho phép bạn đăng nhập vào tài khoản của mình.

Tuy nhiên, nếu phần mềm độc hại thay đổi cài đặt DNS server của bạn (có thể xảy ra mà bạn không biết), việc nhập cùng một URL có thể đưa bạn đến một trang web hoàn toàn khác hoặc một trang web tương tự nhưng không phải trang web bạn cần truy cập. Trang web ngân hàng giả mạo này có thể trông giống hệt trang web thực nhưng thay vì cho phép bạn đăng nhập vào tài khoản của mình, nó sẽ ghi lại tên người dùng và mật khẩu của bạn, cung cấp cho kẻ tấn công tất cả thông tin tài khoản ngân hàng của bạn.

Tuy nhiên, thông thường, phần mềm độc hại xâm nhập DNS server của bạn thường chỉ chuyển hướng các trang web phổ biến đến những trang web có đầy đủ quảng cáo hoặc trang web virus giả mạo khiến bạn nghĩ mình phải mua chương trình để làm sạch máy tính bị nhiễm virus.

Có hai điều bạn nên làm để tránh trở thành nạn nhân theo cách này. Đầu tiên là cài đặt chương trình chống virus để các chương trình độc hại bị loại bỏ, trước khi chúng có thể gây ra bất kỳ thiệt hại nào. Thứ hai là phải để ý trang web trông như thế nào. Nếu nó hơi khác so với thông thường hoặc bạn nhận được thông báo "invalid certificate" trong trình duyệt của mình, đó có thể là dấu hiệu cho biết bạn đang truy cập trang web giả mạo.

Thông tin thêm về DNS server

Trong hầu hết các trường hợp, hai DNS server, server chính và server phụ, được cấu hình tự động trên router và/hoặc máy tính của bạn khi kết nối với ISP thông qua DHCP. Bạn có thể cấu hình hai DNS server trong trường hợp một trong số chúng bị lỗi, sau đó thiết bị sẽ sử dụng server phụ.

Trong khi nhiều DNS server được điều hành bởi các ISP và dự định chỉ được sử dụng bởi khách hàng, một số server public cũng có sẵn. Hãy xem danh sách DNS server để biết thông tin chi tiết và cách để thay đổi DNS server, nếu bạn cần trợ giúp khi thực hiện thay đổi.

Một số DNS server có thể cung cấp thời gian truy cập nhanh hơn các máy chủ khác, nhưng chỉ dựa vào thời gian thiết bị của bạn tiếp cận DNS server. Ví dụ, nếu DNS server của ISP gần hơn DNS server của Google, thì bạn có thể thấy rằng các địa chỉ được giải quyết nhanh hơn, bằng cách sử dụng các server mặc định từ ISP của bạn chứ không phải server của bên thứ ba.

Nếu bạn gặp phải sự cố mạng không load được trang web, thì có thể đã có sự cố với DNS server. Nếu DNS server không thể tìm thấy địa chỉ IP chính xác được liên kết với hostname bạn nhập, trang web sẽ không thể load. Một lần nữa, điều này là do máy tính giao tiếp thông qua địa chỉ IP, không phải hostname, do đó máy tính không biết bạn đang cố gắng tiếp cận điều gì trừ khi nó có thể sử dụng địa chỉ IP.

Cài đặt DNS server "gần nhất" với thiết bị là những cài đặt sẽ được áp dụng. Ví dụ, trong khi ISP của bạn có thể sử dụng một bộ DNS server, áp dụng cho tất cả các router được kết nối với nó, thì router của bạn có thể sử dụng một bộ cài đặt DNS server khác cho tất cả các thiết bị được kết nối với router đó. Tuy nhiên, một máy tính kết nối với router có thể sử dụng các thiết lập DNS server của riêng nó để ghi đè các thiết lập của cả router và ISP. Máy tính bảng, điện thoại, v.v… cũng tương tự như vậy.

Bài viết đã giải thích ở trên về cách các chương trình độc hại có thể kiểm soát cài đặt DNS server của bạn và ghi đè chúng bằng các server chuyển hướng các yêu cầu trang web của bạn đến nơi khác. Chắc chắn, đây là điều mà kẻ lừa đảo có thể làm, nhưng nó cũng là một tính năng được tìm thấy trong một số dịch vụ DNS như OpenDNS, tất nhiên là với mục đích tốt. Ví dụ, OpenDNS có thể chuyển hướng các trang web dành cho người lớn, trang web cờ bạc, trang web mạng xã hội và hơn thế nữa, đến trang "Blocked", nhưng bạn có toàn quyền kiểm soát các chuyển hướng.

Lệnh nslookup được sử dụng để truy vấn DNS server của bạn.

Truy vấn DNS server

Hãy bắt đầu bằng cách mở công cụ Command Prompt và sau đó gõ như sau:

nslookup quantrimang.com

Và kết quả sẽ trông như sau:

Server:  google-public-dns-a.google.com
 Address:  8.8.8.8
 
 Non-authoritative answer:
 Name:    quantrimang.com
 Address:  123.30.180.60

Trong ví dụ trên, lệnh nslookup cho bạn biết địa chỉ IP (hoặc một số địa chỉ IP trong trường hợp này), mà địa chỉ quantrimang.com bạn nhập vào thanh tìm kiếm của trình duyệt có thể dịch ra.

DNS Root Server

Có một số DNS server nằm trong kết nối của máy tính mà chúng ta gọi là Internet. Quan trọng nhất là 13 DNS Root Server lưu trữ cơ sở dữ liệu hoàn chỉnh về tên miền và địa chỉ IP public liên quan của chúng.

Các DNS server cấp cao nhất này được đặt tên bằng 13 chữ cái đầu tiên của bảng chữ cái (từ A đến M). 10 server trong số này đặt ở Mỹ, một ở London, một ở Stockholm và một ở Nhật Bản.

Kết luận

Trong bài này chúng tôi đã giải thích cách trình chủ DNS server được dùng để xử lý tên miền cho địa chỉ IP. Mặc dù quá trình được mô tả có vẻ khá đơn giản, nhưng bạn cần nhớ rằng ICANN và các nhà đăng ký DNS mức cao như Network Solutions sử dụng công nghệ load balancing (cân bằng tải) để phân phối yêu cầu qua nhiều server DNS khác. Điều này giúp các server khỏi bị tràn và loại trừ khả năng có điểm lỗi đơn.

Xem thêm:

Thứ Sáu, 23/11/2018 16:23
4,99 👨 33.400