Phần cứng nghe trên địa chỉ IP của Facebook hay Wikipedia là gì?


32

Tôi đang cố gắng hiểu làm thế nào các trang web lớn như Facebook hoặc Wikipedia hoạt động, vì sự tò mò trí tuệ của tôi. Tôi đọc về các kỹ thuật khác nhau để xây dựng các trang web có thể mở rộng, nhưng tôi vẫn bối rối về một chi tiết cụ thể.

Điều khiến tôi bối rối là cuối cùng, DNS sẽ ánh xạ toàn bộ miền thành một địa chỉ IP duy nhất hoặc một số địa chỉ IP trong trường hợp DNS vòng tròn.

Ví dụ: wikipedia.org chỉ có một bản ghi DNS loại A. Vì vậy, mọi người từ khắp nơi trên thế giới truy cập Wikipedia phải gửi yêu cầu đến một địa chỉ IP được chỉ định trong DNS.

Phần cứng nghe trên địa chỉ IP cho một trang web lớn là gì và làm thế nào nó có thể xử lý tất cả tải đến từ các yêu cầu cho người dùng trên toàn thế giới?

Chỉnh sửa 1: Cảm ơn tất cả các câu trả lời! Anycast có vẻ như là một câu trả lời khả thi ... Có ai biết cách kiểm tra xem một địa chỉ IP cụ thể có bị định tuyến không, để tôi có thể xác minh rằng đây thực sự là mẹo được sử dụng trong thực tế bởi các trang web lớn?

Chỉnh sửa 2: Sau khi đọc nhiều hơn về chủ đề, có vẻ như anycast thường không được sử dụng cho nội dung web động. Anycast thường được sử dụng cho UDP (ví dụ: tra cứu DNS) hoặc đôi khi cho nội dung tĩnh.

Một điều thú vị cần lưu ý là Facebook sử dụng profile.ak.fbcdn.net để lưu trữ nội dung tĩnh như biểu định kiểu và thư viện javascript. Mỗi lần tôi ping tên này, tôi nhận được phản hồi từ một địa chỉ IP khác nhau. Tuy nhiên, tôi không thể biết liệu đây là bất kỳ hành động nào, hay một kỹ thuật hoàn toàn khác.

Quay lại câu hỏi ban đầu của tôi: theo như tôi có thể nói, ngay cả một trang web lớn cũng sẽ có một phần cứng cân bằng tải đắt tiền duy nhất lắng nghe trên một số địa chỉ IP công cộng.


Những câu hỏi hay, quá tệ là hầu hết mọi người không hiểu nó. Tôi hy vọng ai đó sẽ có câu trả lời với một số chi tiết. Có thể một số cân bằng tải điện toán lượng tử 50 triệu đô la của Cisco.
OliverS

Câu trả lời:


9

Nó không nhất thiết là một phần cứng làm việc này mà là một hệ thống hoàn chỉnh đã được thiết kế để mở rộng quy mô. Điều này không chỉ bao gồm phần cứng mà quan trọng hơn là thiết kế ứng dụng, thiết kế cơ sở dữ liệu (quan hệ hoặc cách khác), kết nối mạng, lưu trữ và làm thế nào tất cả chúng khớp với nhau.

Điểm khởi đầu tốt cho sự tò mò của bạn trong việc tìm hiểu làm thế nào một số quy mô trang web lớn có Khả năng mở rộng cao - Bắt đầu ở đâyKhả năng mở rộng cao trên kiến ​​trúc Wikimedia , FacebookTwitter làm ví dụ.

Liên quan đến câu hỏi của bạn về DNS và các địa chỉ IP đơn lẻ và thực hiện các loại trang web này thường sẽ sử dụng cân bằng tải như một phương pháp trình bày một địa chỉ IP duy nhất. Điều này có thể được thực hiện bằng các bộ cân bằng tải phần cứng chuyên dụng hoặc thông qua phần mềm chạy trên các máy chủ cho mục đích chung. Các yêu cầu đến IP được quản lý bởi bộ cân bằng tải sau đó được phân phối trên một loạt các máy chủ trong suốt cho người dùng cuối.

Để giải thích tốt về chủ đề này, bao gồm so sánh các bộ cân bằng / phần mềm tải phần cứng và phần mềm và cách chúng so sánh với vòng tròn DNS, hãy đọc các Ứng dụng web Cân bằng tải .


Cảm ơn, Sim. Tôi đã đọc qua hầu hết các bài viết này trước khi đặt câu hỏi, nhưng tôi không tìm thấy câu trả lời cụ thể. Vì vậy, thực sự có một bộ cân bằng tải phần cứng duy nhất (hoặc một máy duy nhất chạy phần mềm cân bằng tải) bị tấn công mỗi khi ai đó xem trang Wikipedia? Hoặc, có một mẹo khác ở đâu đó để tránh tắc nghẽn?
Igor Ostrovsky

Tôi không chắc Wikipedia hiện đang làm gì nhưng bài viết từ năm 2008 này nói về họ bằng cách sử dụng một loạt các máy chủ proxy đảo ngược Squid blog.sun.com/WebScale/entry/scaling_wikipedia_with_lamp_7
Sim

2
Ngoài ra còn có các địa chỉ anycast nơi bạn ping một địa chỉ IP nhưng chúng được phân phối (ngẫu nhiên \ tùy ý \ cố ý) đến một trong các điểm cuối "thực". Tôi không chắc nếu Wikipedia \ Google sử dụng điều này nhưng tôi khá chắc chắn một số Máy chủ DNS gốc thực hiện. Các lượt ping của tôi tới Wikipedia khớp với bạn (và tôi ở Ireland) vì vậy tôi nghi ngờ họ có thể đang sử dụng nó.
Helvick

1
Anycast được sử dụng trong truy vấn DNS để lấy địa chỉ IP gần bạn nhất - sau đó bộ cân bằng tải lắng nghe địa chỉ IP đó và phân phối các yêu cầu đến các máy chủ sao lưu.
Andy Shellam

2
Wikipedia cũng tình cờ sử dụng phụ trợ Geoip của pdns cho phần lớn cân bằng tải của họ. xem thêm thông tin tại đây: wikitech.wikidia.org/view/PowerDNS và tại đây: wikitech.wik hè.org / view / DNS
lỗi 16/2/2016

3

Anycast cũng có thể được sử dụng cho các kết nối TCP, giả sử các kết nối này tồn tại trong thời gian ngắn để các tuyến không thay đổi trong suốt thời gian kết nối. Đây là một giả định tốt với các kết nối HTTP (đặc biệt là nếu Kết nối: Keep-Alive được giữ trong một khoảng thời gian ngắn hoặc bị tắt).

Nhiều CDN (CacheFly, MaxCDN và có thể nhiều người khác) thực sự sử dụng anycast cho các kết nối TCP (HTTP) chứ không chỉ DNS. Khi bạn giải quyết tên máy chủ lưu trữ trên CacheFly, bạn sẽ nhận được cùng một địa chỉ IP trên toàn thế giới, nó chỉ đơn giản được chuyển đến cụm CacheFly "gần nhất". "Gần nhất" ở đây sẽ là về độ dài và số liệu đường dẫn BGP, thường là cách tốt hơn để đo độ trễ mạng so với khoảng cách địa lý đơn giản.

Trong trường hợp của Wikipedia cụ thể: http://www.datacenterledgeledge.com/archives/2008/06/24/a-look-inside-wikipedias-infr Hạ tầng /


3

Cách dễ nhất để xác minh xem địa chỉ IP có đang sử dụng Anycast hay không là thực hiện theo dõi từ các vị trí khác nhau. Bạn có thể thử các cách sau: truy cập traceroute.org, chọn một vị trí và thử thực hiện theo dõi đến địa chỉ IP 8.8.8.8 (DNS công cộng của Google sử dụng anycast). Bạn sẽ có thể thấy rằng traceroute từ máy chủ ở Úc đến 8.8.8.8 ở lại Úc.

Thay vì ping, hãy thử tra cứu tên máy chủ: vd: http://network-tools.com/default.asp?prog=dnsrec&host=profile.ak.fbcdn.net

Bạn sẽ thấy danh sách địa chỉ IP đằng sau tên đó. Các địa chỉ IP này sẽ được sử dụng theo kiểu vòng tròn khi bạn ping máy chủ.



2

Igor, câu hỏi của bạn rất hay, và giống như rất nhiều câu hỏi ngây thơ, có rất nhiều, rất nhiều câu trả lời, tất cả ở các cấp độ chi tiết khác nhau.

Phần cứng là một máy chủ web. Chắc chắn ;-)

Phần cứng thực sự là một cụm các bộ cân bằng tải, tất cả đều được cấu hình để lấy từ bộ nhớ chia sẻ để tất cả chúng được cấu hình giống hệt nhau với vật liệu giống hệt nhau.

Phần cứng thực sự là một trong một số cụm cân bằng tải, phân tán theo địa lý và bạn được chuyển đến một nơi gần bạn nhất, một quyết định được đưa ra bởi máy chủ DNS.


1

Google đã phát hành một chút về kiến ​​trúc phần cứng cây nhà của họ vào năm ngoái và nó giúp đọc tốt .


Đây là một bài đọc thú vị, nhưng nó không trả lời câu hỏi cụ thể của tôi. Tôi đặc biệt tò mò phần cứng nghe trên bốn địa chỉ IP công cộng của Google là gì và phân phối tải giữa hàng ngàn máy chủ?
Igor Ostrovsky

1

Một địa chỉ IP duy nhất không nhất thiết có nghĩa là một máy chủ: http://en.wikipedia.org/wiki/Anycast


1
Anycast là một thiết lập khó bảo trì, nếu bạn có một số đồng bộ hóa trung tâm (như Facebook). Nó hoạt động thực sự tốt đối với các máy chủ DNS, trong đó các trường hợp không cần giao tiếp nhiều hoặc máy chủ web có nội dung tĩnh.

1
Bạn đúng ở chỗ một IP không có nghĩa là một máy chủ duy nhất, nhưng anycast được sử dụng trong truy vấn DNS khi bạn không bận tâm ai trả lời miễn là bạn nhận được một, và do đó nó chỉ hữu ích với giao thức UDP. DNS sử dụng. Với TCP (được sử dụng trong HTTP), bạn cần chắc chắn rằng máy chủ phản hồi là máy chủ bạn đã hỏi cụ thể.
Andy Shellam

@AndyShellam, Các bài báo en.wikipedia.org/wiki/Anycast#Details nanog.org/meetings/nanog37/presentations/matt.levine.pdf dường như không đồng ý với bạn ...
Pacerier

1

Các trang web lớn hơn sử dụng một số kỹ thuật khác nhau cùng nhau. Những trang web mà bạn đề cập đều có ở hầu hết mọi quốc gia một số máy chủ. Dựa trên địa chỉ IP của khách truy cập trang web, máy chủ DNS sẽ trả lại địa chỉ IP của cụm gần nhất với khách truy cập. Akamai đang cung cấp một dịch vụ như vậy (nhấp vào hình ảnh trên trang web này để biết thêm thông tin.)

Các "cụm" trong trung tâm dữ liệu này hiện bao gồm một số máy khác nhau (máy chủ DB, máy chủ web, bộ cân bằng tải, v.v.) Tùy thuộc vào những gì bạn đang cung cấp với trang web của mình, bạn có thể có một số máy chủ cho nội dung tĩnh, v.v.


1

Các trang web mmassive như Facebook hoặc Wikipedia dựa trên một số công nghệ khác nhau để đạt được khả năng mở rộng.

Một trong những công nghệ đó là dns. Dns được cấu hình để tải cân bằng với vòng tròn. Cấu hình dns đủ thông minh để tìm ra yêu cầu của bạn đến từ đâu và trả về địa chỉ của trang web gần bạn nhất. Vì vậy, nếu bạn thực hiện đào bạn sẽ thấy nhiều bản ghi, nhưng nếu bạn thực hiện ping, bạn sẽ luôn lấy lại cùng một địa chỉ.

Tại trang web, phần cứng đầu tiên bạn nhấn là proxy ngược hoặc nhóm cân bằng tải. Các nhóm được thiết lập để tất cả các máy trả lời cùng một IP nhưng trả về một IP mới trong tiêu đề phiên. Tất cả các yêu cầu tiếp theo sẽ đi qua cùng một nút.

Các bộ cân bằng tải được sử dụng cho các trang web lớn không phải là những thiết bị đắt tiền lớn, chúng là các máy chủ hàng hóa chạy LVS. http://www.linuxvirtualserver.org/


0

Các trang web lớn như Google gần như chắc chắn thiết kế phần cứng của riêng họ. Các trang web lớn có thể sẽ sử dụng chuyển đổi nhiều lớp để tải các kết nối cân bằng đến nhiều máy chủ thực tế. http://en.wikipedia.org/wiki/Mult Lớp_switch

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.