Làm thế nào để Máy chủ tên gốc có thể xử lý tất cả các yêu cầu DNS?


18

Tôi đã đọc về DNS vài ngày trước và tìm hiểu cách xử lý các yêu cầu. Nếu bạn lướt đến www.example.com, thì một yêu cầu sẽ đến Máy chủ tên gốc để xem ai sở hữu địa chỉ .com đó, sau đó một yêu cầu khác sẽ đến một máy chủ DNS khác, cục bộ hơn để xem ai sở hữu example.com địa chỉ và như vậy.

Về mặt kỹ thuật, 13 Máy chủ tên gốc có thể xử lý tất cả các yêu cầu được thực hiện bởi hàng tỷ người dùng Internet trên trái đất mà không cần ddos: ed?


11
Nhân tiện, tóm tắt của bạn về cách DNS hoạt động là sai. Câu hỏi được đặt ra cho máy chủ tên gốc không phải là "ai sở hữu .com?" nhưng "địa chỉ IP của www.example.com là gì?" (máy chủ tên gốc trả lời bằng cách tham chiếu đến chủ sở hữu của .com). Máy chủ tên gốc nhìn thấy toàn bộ truy vấn (rất hữu ích cho việc thống kê, khai thác dữ liệu, v.v.).
bortzmeyer

@bortzmeyer Lý do chính khiến toàn bộ tên được gửi đến các máy chủ gốc là không phải mọi dấu chấm trong tên đều nhất thiết phải là ranh giới của chính quyền. Trong thực tế tôi tin rằng luôn có một ranh giới thẩm quyền ngay dưới TLD, nhưng về nguyên tắc nó không được đảm bảo. Do đó, tại một thời điểm nào đó trong tương lai, có thể quyết định giới thiệu một TLD đặc biệt trong đó lớp thứ hai được xử lý bởi các máy chủ gốc sao cho khi bạn truy vấn các máy chủ gốc, a.b.c.examplebạn sẽ được cho biết ai chịu trách nhiệm c.examplethay vì ai chịu trách nhiệm example.
kasperd

Câu trả lời:


51

Chúng là 13 cụm máy chủ khả dụng cao , không chỉ đơn giản là 13 máy chủ.

Trong số những thứ khác, các nhà khai thác máy chủ tên gốc được yêu cầu phải có đủ khả năng để xử lý ba lần tải lưu lượng thông thường của họ ( RFC 2870 ). Điều này dẫn đến các cụm khá lớn.

Tuy nhiên, các máy chủ tên gốc chỉ phục vụ đáp ứng cho các lĩnh vực cấp cao nhất bản thân, tức là com., net., uk., ae., vv, và các máy chủ tên mà truy vấn gốc có thể cache thông tin này lên đến 48 giờ , làm giảm đáng kể tải tại các máy chủ tên gốc. Điều này dẫn đến các cụm nhỏ hơn.

Các máy chủ tên gốc nằm ở hơn 130 địa điểm trên 53 quốc gia; chỉ với 13 tên máy chủ, điều này được thực hiện thông qua sự kỳ diệu của anycast IPv4.

Các máy chủ tên gốc cũng có trang web riêng của chúng , bạn có thể thấy việc đọc thú vị.


48 h là TTL của các bản ghi NS ở gốc. Nhưng nó có thể bị ghi đè bởi các máy chủ tên của chính TLD. Chẳng hạn, đối với .jp, nó chỉ có 24 h.
bortzmeyer

Vâng, chúng tôi đang nói về các máy chủ tên gốc ở đây. :)
Michael Hampton

RFC 2870 khá lỗi thời ngày nay. Do các cuộc tấn công dDoS, một máy chủ tên gốc phải sẵn sàng trả lời nhiều hơn ba lần lưu lượng thông thường của nó.
bortzmeyer

8
53 quốc gia? Là sự trùng hợp ngẫu nhiên hay họ đã chọn nó giống như cổng truy vấn DNS ?? : D
amyassin

10

Họ không. Máy chủ tên gốc chỉ cần cho bạn biết máy chủ tên xử lý com. Từ đó trở đi, bạn không cần phải đến chỗ họ để xử lý bất kỳ tên miền nào bên trong com. Các máy chủ tên gốc không có ý tưởng ai sở hữu example.com. Chúng là máy chủ tên gốc , không phải máy chủ tên com .

Những gì slimsuperhero nói cũng đúng. Nhiều máy chủ tên khối lượng lớn sử dụng anycast để có một địa chỉ IP duy nhất được phục vụ bởi một số máy chủ trên toàn thế giới.


Nhưng nếu 1 tỷ người dùng đang lướt đến các địa chỉ .com khác nhau trong cùng một giây, liệu các máy chủ tên gốc có xử lý được tất cả các yêu cầu không?
Rox

3
Không. Đối với một điều, người dùng chỉ nói chuyện với máy chủ tên đệ quy (những người kết nối với máy chủ tên khác để có câu trả lời) và máy chủ tên gốc không được đệ quy (họ chỉ phục vụ thông tin địa phương mà họ đã biết). Người dùng nói chuyện với máy chủ tên riêng của họ (thường được cung cấp bởi ISP của họ), người chỉ cần hỏi máy chủ tên gốc một lần cho các máy chủ xử lý com.
David Schwartz

1
@DavidSchwartz là chính xác - vì vậy thay vì một tỷ yêu cầu từ một tỷ người dùng, họ chỉ nhận được khoảng một triệu yêu cầu từ một triệu ISP, mỗi dịch vụ phục vụ một nghìn người dùng.
Shadur

@Shadur: Bây giờ, các máy chủ tên cho commặt khác phải có một nhịp đập lớn hơn nhiều.
David Schwartz

1
Và tôi khá chắc chắn rằng chúng được thu nhỏ và phân cụm một cách thích hợp.
Shadur

6

Mỗi máy chủ gốc không thực sự là một máy chủ, chúng là những cụm máy chủ khổng lồ. Ngoài ra, các câu trả lời DNS được lưu trong bộ nhớ cache để không phải mọi yêu cầu đều đến máy chủ gốc.


3

Lưu ý rằng bạn không sử dụng máy chủ gốc. Bạn thường sử dụng máy chủ DNS được cung cấp bởi Nhà cung cấp dịch vụ Internet của bạn, thường có thể phản hồi ngay lập tức nếu thông tin bạn cần có trong bộ đệm cục bộ của họ. Chỉ khi không được lưu vào bộ đệm, máy chủ DNS ngược dòng của họ mới được hỏi và cuối cùng chỉ có máy chủ gốc được hỏi (và phản hồi đó được lưu vào bộ đệm)


0

Trên thực tế, địa chỉ IP Anycast 13 của nó giải quyết được rất nhiều máy chủ trên toàn cầu. Bạn có thể nhìn vào Liên kết để tìm các máy chủ đó nếu cần. Tất cả các máy chủ này được quản lý bởi các cơ quan có liên quan.

Thực tế là chúng tôi vẫn chỉ sử dụng 13 địa chỉ IP (Và cụm máy chủ có cùng địa chỉ IP) là để đảm bảo rằng kích thước gói sẽ không vượt quá 512 byte. Vậy thì tại sao? chúng ta có TCP có thể vượt quá kích thước gói này tại sao chúng ta không thể sử dụng nó?. Vấn đề là, TCP liên quan đến chi phí rất cao vì nó bao gồm nhiều bước và quy trình để thiết lập kết nối TCP. Do đó, toàn bộ quá trình truy vấn DNS sẽ bị chậm.

Những thứ như DNS không bao giờ có thể chậm và đó là lý do tại sao chúng ta vẫn sử dụng cùng một hệ thống cũ.


Câu trả lời cho một truy vấn .không còn phù hợp với 512 byte. Vì IPv6 bây giờ là một điều cần thiết, câu trả lời đã tăng lên 811 byte. Với EDNS có thể được trả lại trong một phản hồi. Tuy nhiên, các truy vấn .không cần thiết thường xuyên đến mức một vài roundtrips là một showstopper. Điều chủ yếu là cần thiết cho người đệ quy để tìm hiểu những thay đổi mới nhất đối với địa chỉ IP của gốc, điều này hiếm khi thay đổi.
kasperd

@kasperd Mình không chắc. Tôi đã kiểm tra dig + dấu vết cho bản ghi A hoặc bản ghi AAAA bình thường và tất cả các phản hồi (từ máy chủ cấp Root, máy chủ cấp cao nhất hoặc trong máy chủ tên) đều dưới 508 đến 509 byte. Bạn có thể giải thích thêm một chút về nó
Jaison

Bạn cần sử dụng EDNS hoặc TCP để nhận được phản hồi đầy đủ. Các yêu cầu UDP không có EDNS không bao giờ có thể nhận được phản hồi dài hơn 512 byte.
kasperd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.