К содержанию

Как устроена связь между дата-центрами простыми словами

Схема связи между дата-центрами: прямой стык, точка обмена трафиком с пирингом и транзитный оператор между двумя сетями
Два дата-центра могут соединяться напрямую, через точку обмена или через платного транзитного оператора. Какой путь пойдёт в ход, решают сети по правилам BGP.

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

Из чего состоит путь

Дата-центр это здание с серверами, коммутаторами и роутерами. Сервер посылает пакет на ближайший коммутатор, тот передаёт его на роутер, а граничный роутер выпускает пакет за пределы здания. Дальше идёт волокно: тонкая стеклянная нить, по которой передаётся свет. В одном кабеле десятки таких нитей, а по каждой нити можно пустить много сигналов разного цвета одновременно. Эту технологию называют уплотнением по длине волны, DWDM.

Между городами кабель лежит в земле или подвешен на опорах, между континентами основной объём идёт по подводным кабелям на дне морей.

Автономные системы: у каждой сети свой хозяин

Интернет собран из десятков тысяч отдельных сетей. Каждая называется автономной системой, AS, и имеет номер, например AS12345. Это сеть провайдера, дата-центра, банка или крупного сервиса. Владелец сам решает, какой трафик пускать и с кем соединяться.

Чтобы пакет дошёл из одной AS в другую, сети должны знать, где что находится. Для этого граничные роутеры обмениваются сообщениями по протоколу BGP: «через меня можно добраться до таких-то адресов». Получив такие сообщения от нескольких соседей, роутер выбирает один путь для каждого адреса. Критерии задаёт оператор: короткая цепочка AS, дешёвый канал, предпочтительный сосед. Загрузка канала в этом выборе обычно не участвует.

Три способа соединиться

СпособКак устроенЧто получает пользователь
Прямой стык (cross-connect, частный пиринг)Два оператора в одном здании протягивают между своими роутерами отдельный кабель. Если дата-центры в разных зданиях, линию арендуют или строятСамый короткий и предсказуемый путь, но такой стык есть не у каждой пары сетей
Точка обмена трафиком (IX)Общая сеть коммутаторов, к которой подключается много операторов и обменивается трафиком напрямую. Примеры: MSK-IX в Москве, DE-CIX во Франкфурте, AMS-IX в АмстердамеМеньше промежуточных узлов, если оба оператора подключены к одной точке
ТранзитСеть платит крупному оператору, чтобы он довёз её трафик до любой другой сети и принял чужой для неёДоступ ко всему интернету, но путь длиннее и зависит от настроек транзитного оператора

Обмен трафиком напрямую, без платы друг другу, называют пирингом. Он выгоден, когда сети примерно одинаково нужны друг другу. Поэтому крупные сервисы и провайдеры охотно соединяются между собой, а небольшая сеть чаще покупает транзит.

Откуда берётся задержка

Свет в стекле идёт примерно со скоростью 200 000 км/с, это две трети скорости света в вакууме. На 100 км волокна уходит около 0,5 мс в одну сторону, то есть около 1 мс на путь туда и обратно. Именно такой путь измеряет пинг.

Отсюда нижняя граница. От Москвы до Франкфурта около 2000 км по прямой, поэтому быстрее примерно 20 мс туда и обратно не получится, даже если кабель лёг идеально ровно. Реальная трасса прямую не повторяет: кабели идут вдоль дорог, железных дорог и через города, где есть оборудование. К этому добавляется время на каждом роутере: доли миллисекунды, а при загруженном канале несколько. Поэтому реальный пинг заметно выше расчётного минимума, и это нормально.

Если путь вдвое длиннее расстояния по карте, причина часто в договорённостях сетей. У двух соседних операторов может не быть общего стыка, и тогда трафик между ними уходит через транзитного оператора в другом городе или в другой стране, а ответ возвращается по другой дороге.

Как посмотреть путь самому

Каждый роутер на трассе уменьшает в пакете счётчик переходов, а когда счётчик доходит до нуля, возвращает отправителю ошибку. Утилита трассировки шлёт пакеты со счётчиком 1, 2, 3 и так далее и по ответам собирает список роутеров. В Windows она называется tracert, в macOS и Linux traceroute:

tracert -d example.com
traceroute -n example.com

Ключ -d (в traceroute -n) отключает поиск имён, и команда отрабатывает быстрее. Результат читают так:

Чтобы понять, на каком участке теряются пакеты, удобнее программа, которая шлёт их непрерывно: pathping в Windows, mtr в Linux и macOS. Как читать потери и разброс задержки, описано в статье о проверке пинга, потерь и jitter.

Почему маршрут между двумя городами меняется

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

Что это значит при выборе сервера в другой стране

Расстояние по карте задаёт только минимум. Реальный пинг зависит от того, как ваш провайдер соединён с сетью, где стоит нужный сервер. Два сервера на одинаковом расстоянии от вас могут отвечать по-разному, если провайдер лучше соединён с одним из них. Поэтому площадку выбирают по замеру со своего подключения: сравните трассу и пинг до нескольких дата-центров в разное время дня. Порядок замера описан в статье как проверить пинг без программ.

Частые вопросы

Что такое пиринг простыми словами?

Это прямой обмен трафиком между двумя сетями без посредника. Каждая сеть передаёт другой пакеты, адресованные её клиентам, и обычно стороны не платят друг другу. Пиринг бывает на общей точке обмена или по отдельному кабелю между роутерами.

Чем транзит отличается от пиринга?

При пиринге сеть получает доступ только к клиентам партнёра. Транзит даёт доступ ко всему интернету: за него платят крупному оператору, и он передаёт трафик дальше, к любым другим сетям.

Что такое точка обмена трафиком?

Это площадка с общей коммутацией, где операторы связи обмениваются трафиком напрямую. Примеры: MSK-IX, DE-CIX, AMS-IX. Пока оба оператора подключены к одной точке, их трафик не обязан идти через транзитных посредников.

Почему пинг до дальнего сервера не может быть нулевым?

Сигнал идёт по волокну около 200 000 км/с, на 100 км туда и обратно уходит около миллисекунды. К этому добавляется время на каждом роутере по пути. Для сервера за 2000 км по прямой пинг ниже примерно 20 мс невозможен физически.

Что значат звёздочки в результате tracert?

Роутер не ответил на служебный пакет. Многие роутеры так настроены, но данные пропускают как обычно. О проблеме говорят звёздочки до конца трассы, когда нет ответа и от конечного сервера.