Рейтинг:0

Почему у facebook только 2 IP-адреса?

флаг cn

В процессе настройки DNS для моего собственного веб-сайта мне стало любопытно найти запись DNS крупной компании. Я выбрал facebook.com и использовал dnschecker.org для просмотра их записи DNS. Игнорируя записи AAAA, потому что большинство людей все еще используют IPv4, я получаю только 2 адреса: 31.13.71.36 и 157.240.26.35

Возможно, мне не хватает какой-то технологии, но каждый статический IP-адрес может быть назначен только одному сетевому адаптеру в любой момент времени. Это означает, что Facebook обрабатывает все входящие и исходящие данные IPv4 из своих центров обработки данных только через две (очень быстрые) машины. Нет никакого способа.

Что мне здесь не хватает?

Patrick Mevzek avatar
флаг cn
Перейдите на https://www.whatsmydns.net/#A/facebook.com и посмотрите, как ответ зависит от того, где вы запрашиваете. Это называется геолокацией: ответ DNS зависит от «местоположения» источника, чтобы предоставить IP-адрес «ближе» к запрашивающей стороне. Обратите внимание, что на практике этого недостаточно и/или не так просто, потому что, где находится клиент и где находится его рекурсивный DNS-сервер, это две разные вещи. Также мог быть даже только один IP и один и тот же везде: в этом случае, скорее всего, это был бы IP anycast (где один IP физически находится в разных местах в одно и то же время).
Рейтинг:1
флаг nc

Когда вы запрашиваете DNS-сервер, особенно для чего-то вроде А записи, вы не получите полной картины всех настроек сайта. Вы получаете только достаточно, чтобы удовлетворить свой запрос и подключиться к намеченной цели.

Раньше можно было делать дополнительные запросы и получать полные списки, но по соображениям безопасности это было отключено и давно не рекомендуется.

Еще до того, как меры безопасности уменьшили объем информации, которую можно было извлечь из DNS, сайты использовали методы динамического DNS для реализации балансировки нагрузки. По сути, когда ваш хост запрашивает запись A для facebook, он получает один или несколько ответов из большого списка неизвестного размера. Ваша система может кэшировать этот результат, поэтому последующие запросы дают тот же ответ, хотя исходный DNS-сервер может установить для этого тайм-аут (когда я проверял, тайм-аут составлял около 300 секунд).

Таким образом, когда вы запрашиваете facebook.com, вы получаете случайный ответ из списка, и этот ответ может меняться (возможно, каждые 300 секунд). DNS-серверы Facebook могут легко дать совершенно разные ответы каждому клиенту, который их запрашивает, и могут даже попытаться определить ваше сетевое местоположение, чтобы настроить ответ, чтобы дать сервер, расположенный рядом с вами в сети. Как упоминалось в другом ответе, это именно то, для чего предназначена CDN.

Patrick Mevzek avatar
флаг cn
«По сути, когда вы запрашиваете facebook.com, вы получаете случайный ответ из списка». Скорее всего, это не случайно. Сервер решает, какой IP-адрес «лучше» вернуть клиенту, и чаще всего он основан на соображениях геолокации или на том, какой интернет-провайдер он использует, следовательно, принимая во внимание пиринг на уровне BGP и тому подобное.
Patrick Mevzek avatar
флаг cn
«Раньше можно было делать дополнительные запросы и получать полные списки». Если вы думаете о `AXFR`, то в большинстве случаев это было невозможно, и когда это происходило, была только ошибка конфигурации. Если вы думаете о фальшивом DNS-запросе «ЛЮБОЙ», который, по мнению всех, означает «ВСЕ», что на самом деле не так, это также абсолютно не гарантирует, что вы вернете все данные, а только то, что было в кеше какого-то рекурсивного сервера имен. Теперь он в любом случае устарел, см. RFC 8482.
user10489 avatar
флаг nc
Рэндом: Я сказал, что это может быть основано на местоположении. Под случайным я подразумеваю, что запросчик не может предсказать выбор.
user10489 avatar
флаг nc
Да, в начале Интернета вы могли выполнить полный запрос DNS, и это (по крайней мере, в начале) не считалось ошибкой конфигурации. Спасибо за RFC, я подумаю об интеграции этого в ответ.
Patrick Mevzek avatar
флаг cn
«вы могли выполнить полный запрос DNS, и это (по крайней мере, в начале) не считалось ошибкой конфигурации». Наоборот, на самом деле.
Рейтинг:0
флаг cn

Поскольку эти IP-адреса не принадлежат серверу, они указывают на Facebook CDN «Сеть доставки контента».

Может быть, у кого-то еще есть какие-то знания об их настройке, но мои DNS-серверы сообщают вам разные IP-адреса, поэтому я осмелюсь сказать, что есть тысячи, которые постоянно динамически меняются.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.