Lịch sử của DNS
Quay trở lại những năm 70, mọi người cảm thấy mệt mỏi khi nhớ địa chỉ IP của các máy chủ mà họ muốn truy cập. Đồng thời, ý tưởng sử dụng một tên đơn giản và dễ nhớ hơn thay vì địa chỉ máy chủ được nảy ra.
Các công nhân tại Viện nghiên cứu Stanford đã đưa ra một tệp văn bản HOSTS.TXT , tệp này chứa danh sách các tên chuỗi và địa chỉ số tương ứng của các máy tính trên ARPANET.
Địa chỉ được chỉ định thủ công. Để yêu cầu tên máy chủ và địa chỉ hoặc thêm máy tính vào tệp chính, người dùng đã liên hệ với trung tâm thông tin mạng của Stanford qua điện thoại trong giờ làm việc.
Vào đầu những năm 1980, việc duy trì một bảng máy chủ tập trung, duy nhất đã trở nên chậm chạp và cồng kềnh, và mạng đang phát triển cần một hệ thống đặt tên tự động để xử lý các vấn đề kỹ thuật và nhân sự.
Năm 1984, bốn sinh viên UC Berkeley đã viết phiên bản đầu tiên của hệ thống tên miền phân cấp. Nó hiện được sử dụng rộng rãi, đặc biệt là trên các hệ thống Unix và vẫn là phần mềm DNS được sử dụng rộng rãi nhất trên Internet.
Giới thiệu về DNS
Hệ thống tên miền (DNS) là một hệ thống phân phối để lưu trữ và truy xuất thông tin về các miền. Nó được sử dụng phổ biến nhất để lấy địa chỉ IP từ tên máy chủ (máy tính hoặc thiết bị), lấy thông tin định tuyến thư và/hoặc phục vụ máy chủ cho các giao thức trong miền.
Hệ thống được tổ chức dưới dạng một hệ thống phân cấp nhất định của các máy chủ DNS tương tác với nhau theo một giao thức nhất định. Cơ sở để hiểu DNS là sự hiểu biết về cấu trúc phân cấp của tên và vùng.
Mỗi máy chủ chịu trách nhiệm về một vùng miền có thể chuyển trách nhiệm đối với một phần khác của miền sang một máy chủ khác, điều này cho phép gán trách nhiệm về mức độ liên quan của thông tin cho các máy chủ của các tổ chức khác nhau chỉ chịu trách nhiệm về phần "của họ" trong vùng miền. tên miền.
Hệ thống DNS chứa một hệ thống phân cấp các máy chủ DNS tương ứng với hệ thống phân cấp vùng. Mỗi vùng được hỗ trợ bởi ít nhất một máy chủ DNS có thẩm quyền lưu trữ thông tin về miền.
Quan trọng! Tên và địa chỉ IP không nhất thiết phải liên quan với nhau như một. Một địa chỉ IP có thể có nhiều tên miền, điều này cho phép bạn hỗ trợ nhiều trang web trên một máy tính (điều này được gọi là lưu trữ chia sẻ ).
Nó cũng có thể là một cách khác - nhiều địa chỉ IP có thể được liên kết với một tên miền: điều này cho phép bạn tạo cân bằng tải và được sử dụng tích cực trong các mạng CDN .
Để tăng tính ổn định của hệ thống, nhiều máy chủ chứa thông tin giống hệt nhau được sử dụng và giao thức có phương tiện để duy trì tính đồng bộ của thông tin nằm trên các máy chủ khác nhau. Có 13 máy chủ gốc, địa chỉ của chúng thực tế không thay đổi.
Hấp dẫn! Giao thức DNS sử dụng cổng TCP hoặc UDP 53 để trả lời các truy vấn. Theo truyền thống, các yêu cầu và phản hồi được gửi dưới dạng một gói dữ liệu UDP. TCP được sử dụng khi kích thước dữ liệu phản hồi vượt quá 512 byte.
Bản ghi DNS
Máy chủ DNS lưu trữ một bộ tham số cho mỗi tên miền. Đây là những bản ghi về tên miền, địa chỉ IP của nó, cũng như các thông tin dịch vụ khác nhau.
Tổng cộng có vài chục mục như vậy, vì vậy chúng tôi sẽ chỉ xem xét những mục phổ biến nhất trong số chúng:
MỘT | Địa chỉ | địa chỉ IP |
AAAA | Địa chỉ IPv6 | Địa chỉ ở định dạng IPv6 |
CNAME | tên kinh điển | Tên chuẩn cho bí danh |
MX | trao đổi thư | Địa chỉ cổng thư cho tên miền |
NS | tên máy chủ | Địa chỉ của nút chịu trách nhiệm cho vùng miền |
SOA | bắt đầu có thẩm quyền | Chỉ định thẩm quyền của thông tin |
CHXHCNVN | lựa chọn máy chủ | Chỉ định vị trí máy chủ cho dịch vụ |
PTR | con trỏ | Khớp tên địa chỉ - Khớp ngược cho A và AAAA |
TXT | chuỗi văn bản | Ghi dữ liệu nhị phân tùy ý, tối đa 255 byte |
Điều thú vị nhất ở đây là:
- Bản ghi A cho phép bạn chỉ định một địa chỉ IP tương ứng với một miền.
- CNAME cho phép bạn đặt từ đồng nghĩa cho tên, ví dụ: www.codegym.cc == codegym.cc.
- Bản ghi MX chứa thông tin về máy chủ thư: phải làm gì nếu thư đến xxx@codegym.cc.
- NS - cho biết địa chỉ của máy chủ DNS chứa thông tin về tên miền này. Hữu ích khi các bản ghi được lưu vào bộ đệm và lưu trữ trên các nút không phải bản địa.
Tìm kiếm địa chỉ IP
Hãy xem hệ thống DNS hoạt động như thế nào.
Giả sử bạn đã nhập api.codegym.cc vào trình duyệt của mình. Trình duyệt sẽ liên hệ với dịch vụ DNS cục bộ và yêu cầu bạn cung cấp địa chỉ IP cho miền api.codegym.cc. Đây là những gì sẽ xảy ra tiếp theo ...
Đầu tiên, dịch vụ DNS sẽ xem liệu miền này có trong tệp máy chủ lưu trữ cục bộ trên máy tính của bạn hay không. Nếu có, nó sẽ lấy địa chỉ IP từ nó. Nếu không, nó sẽ gửi một yêu cầu đến máy chủ DNS mà nó biết: “Địa chỉ IP của api.codegym.cc là gì?”.
Tuy nhiên, máy chủ DNS có thể không biết gì không chỉ về tên được yêu cầu mà thậm chí về toàn bộ miền codegym.cc. Trong trường hợp này, máy chủ liên hệ với máy chủ gốc - ví dụ: 198.41.0.4. Máy chủ này cho biết: "Tôi không có thông tin về địa chỉ này, nhưng tôi biết rằng 204.74.112.1 chịu trách nhiệm về vùng ru."
Sau đó, máy chủ DNS gửi yêu cầu của nó tới 204.74.112.1, nhưng nó trả lời: “Tôi không có thông tin về máy chủ này, nhưng tôi biết rằng 207.142.131.234 chịu trách nhiệm về vùng codegym.cc”. Cuối cùng, cùng một yêu cầu được gửi đến máy chủ DNS thứ ba và nhận được phản hồi - một địa chỉ IP, được truyền đến máy khách, tức là trình duyệt.
Trong trường hợp này, trong quá trình tìm kiếm IP theo tên, các quy tắc sau đã hoạt động:
- Trình duyệt đã gửi yêu cầu đệ quy tới máy chủ DNS đã biết (để đáp lại loại yêu cầu này, máy chủ phải trả về địa chỉ IP hoặc phản hồi trống và mã lỗi NXDOMAIN).
- Máy chủ DNS đã nhận được yêu cầu từ trình duyệt đã gửi liên tiếp các yêu cầu không đệ quy và nó nhận được phản hồi từ các máy chủ DNS khác cho đến khi nhận được phản hồi từ máy chủ chịu trách nhiệm về vùng được yêu cầu.
- Phần còn lại của các máy chủ DNS được đề cập đang xử lý các yêu cầu không theo cách đệ quy (và rất có thể sẽ không xử lý các yêu cầu theo cách đệ quy, ngay cả khi yêu cầu đó có trong yêu cầu).
Đôi khi, máy chủ được yêu cầu có thể gửi truy vấn đệ quy tới máy chủ DNS "ngược dòng" và đợi phản hồi sẵn sàng.
Quan trọng! Với xử lý truy vấn đệ quy, tất cả các phản hồi đều đi qua máy chủ DNS và nó có cơ hội lưu chúng vào bộ đệm. Một yêu cầu lặp lại cho cùng một tên miền thường không vượt quá bộ đệm của máy chủ và các cuộc gọi đến các máy chủ khác hoàn toàn không xảy ra.
Thời gian bộ đệm cho phép đối với các phản hồi đi kèm với các phản hồi (trường TTL của bản ghi tài nguyên).
tập tin máy chủ
Chúng tôi nhận thấy rằng tìm kiếm đầu tiên nằm trong tệp máy chủ lưu trữ cục bộ. Đây là phần kế thừa của tệp HOSTS.TXT, được phát minh từ thời ARPANET. Vâng, nó vẫn tồn tại và vẫn đang được sử dụng.
Nó nằm dọc theo con đường:
- /etc/hosts trên Linux.
- %SystemRoot%\system32\drivers\etc\hosts trên Windows.
- /system/etc/hosts trong android.
Thông thường, tệp bao gồm định nghĩa vị trí cho nút localhost:
127.0.0.1 localhost
Cấu trúc của nó rất đơn giản: đầu tiên là địa chỉ IP, sau đó là tên miền.
Hữu ích
Sử dụng tệp máy chủ, có thể lọc quảng cáo bằng cách chuyển hướng địa chỉ tên miền của biểu ngữ đến địa chỉ 127.0.0.0, 127.0.0.1 hoặc 0.0.0.0.
Việc sử dụng 127.0.0.1 thường không được khuyến nghị vì nó dẫn đến thời gian chờ phản hồi và độ trễ liên quan nếu máy chủ không tồn tại hoặc bị định cấu hình sai. Và nếu bạn ánh xạ bất kỳ miền quảng cáo nào tới địa chỉ IP 0.0.0.0, thì tất cả các yêu cầu đối với miền đó sẽ ngay lập tức bị loại bỏ).
Máy chủ DNS công cộng
Bạn thường nhận được một máy chủ DNS cùng với dịch vụ internet của mình khi bạn kết nối nó. Nhưng một máy chủ DNS miễn phí như vậy không phải lúc nào cũng là lựa chọn tốt nhất. Ngoài ra, bạn có thể không muốn gửi truy vấn có tên miền mỗi khi bạn truy cập một trang web tới máy chủ DNS của ISP.
Do đó, nhiều người thích chuyển sang các máy chủ DNS miễn phí công cộng. Đầu tiên, chúng rất nhanh và có bộ đệm tên miền lớn. Bạn sẽ nhận được tốc độ tải và thời gian hoạt động của trang web nhanh hơn với ít khả năng xảy ra sự cố kỹ thuật nhất.
Thứ hai, an toàn. Một số dịch vụ DNS có thể chặn quyền truy cập vào các trang web lừa đảo và độc hại, đồng thời cung cấp tính năng lọc nội dung để bảo vệ trẻ em khỏi nội dung không phù hợp trực tuyến.
Các máy chủ DNS như vậy thậm chí có thể chống lại những kẻ lừa đảo. Ví dụ: bạn truy cập trang web ngân hàng giả mạo và máy chủ DNS sẽ không cung cấp cho bạn địa chỉ IP của những kẻ lừa đảo mà là dịch vụ bảo mật của nó.
Danh sách các máy chủ như vậy
đám mây | 1.1.1.1 1.0.0.1 |
Cloudflare hứa rằng nó sẽ không sử dụng dữ liệu của khách truy cập để phân phát quảng cáo và sẽ không bao giờ ghi địa chỉ IP nguồn của yêu cầu vào đĩa. |
DNS công cộng của Google | 8.8.8.8 8.8.4.4 |
Lưu trữ thông tin đầy đủ về địa chỉ IP của thiết bị yêu cầu trong khoảng 24-48 giờ để khắc phục sự cố và chẩn đoán |
DNS bảo mật Comodo | 8.26.56.26 8.20.247.20 |
Chặn các trang web lừa đảo nhưng cũng cảnh báo nếu bạn đang cố truy cập các trang web có phần mềm độc hại, phần mềm gián điệp |
Yandex.DNS | 77.88.8.8 77.88.8.1 |
Dịch vụ DNS miễn phí từ một công cụ tìm kiếm phổ biến của Nga |
GO TO FULL VERSION