Как устроена связь между дата-центрами простыми словами
Дата-центры соединены оптоволоконными линиями, а о самих соединениях договариваются сети, которым эти центры принадлежат. Данные от одного сервера к другому проходят несколько роутеров, и на каждом решается, куда передать их дальше. Короткий путь на карте не обязательно короткий по времени: задержку задают длина волокна, число узлов и то, как операторы между собой договорились.
Из чего состоит путь
Дата-центр это здание с серверами, коммутаторами и роутерами. Сервер посылает пакет на ближайший коммутатор, тот передаёт его на роутер, а граничный роутер выпускает пакет за пределы здания. Дальше идёт волокно: тонкая стеклянная нить, по которой передаётся свет. В одном кабеле десятки таких нитей, а по каждой нити можно пустить много сигналов разного цвета одновременно. Эту технологию называют уплотнением по длине волны, 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) отключает поиск имён, и команда отрабатывает быстрее. Результат читают так:
- Три числа в строке показывают время трёх пакетов до этого роутера. Ищите резкий скачок между соседними строками: на этом участке добавилась задержка, например при переходе на другой континент.
- Строки со звёздочками (
*) сами по себе о потерях не говорят. Многие роутеры не отвечают на служебные пакеты, но обычные пропускают. Если звёздочки идут до конца трассы и ответа от сайта нет, проблему стоит искать. - Высокое время в одной промежуточной строке при низком в следующих ничего не значит. Роутер отвечает на служебные пакеты неторопливо, а транзитные пересылает быстро.
- Имена роутеров часто подсказывают город (fra значит Франкфурт, ams Амстердам, msk Москва) и оператора. Если в имени мелькает другая страна, у трассы был крюк.
Чтобы понять, на каком участке теряются пакеты, удобнее программа, которая шлёт их непрерывно: pathping в Windows, mtr в Linux и macOS. Как читать потери и разброс задержки, описано в статье о проверке пинга, потерь и jitter.
Почему маршрут между двумя городами меняется
- Оператор поменял настройки BGP: добавил новый стык или изменил приоритет транзитного канала.
- Часть канала перегружена или вышла из строя, и трафик ушёл на запасной путь, который длиннее.
- Путь «туда» и «обратно» разный. Каждая сеть выбирает путь по своим правилам, поэтому ответ может вернуться другой дорогой, а tracert показывает только путь в одну сторону.
- В разное время суток сети нагружены по-разному, и оператор может перенаправить часть потоков.
Поэтому задержку до одного и того же сервера стоит измерять в разное время, а не один раз. Так отличают постоянную особенность трассы от случайного сбоя.
Что это значит при выборе сервера в другой стране
Расстояние по карте задаёт только минимум. Реальный пинг зависит от того, как ваш провайдер соединён с сетью, где стоит нужный сервер. Два сервера на одинаковом расстоянии от вас могут отвечать по-разному, если провайдер лучше соединён с одним из них. Поэтому площадку выбирают по замеру со своего подключения: сравните трассу и пинг до нескольких дата-центров в разное время дня. Порядок замера описан в статье как проверить пинг без программ.
Частые вопросы
Что такое пиринг простыми словами?
Это прямой обмен трафиком между двумя сетями без посредника. Каждая сеть передаёт другой пакеты, адресованные её клиентам, и обычно стороны не платят друг другу. Пиринг бывает на общей точке обмена или по отдельному кабелю между роутерами.
Чем транзит отличается от пиринга?
При пиринге сеть получает доступ только к клиентам партнёра. Транзит даёт доступ ко всему интернету: за него платят крупному оператору, и он передаёт трафик дальше, к любым другим сетям.
Что такое точка обмена трафиком?
Это площадка с общей коммутацией, где операторы связи обмениваются трафиком напрямую. Примеры: MSK-IX, DE-CIX, AMS-IX. Пока оба оператора подключены к одной точке, их трафик не обязан идти через транзитных посредников.
Почему пинг до дальнего сервера не может быть нулевым?
Сигнал идёт по волокну около 200 000 км/с, на 100 км туда и обратно уходит около миллисекунды. К этому добавляется время на каждом роутере по пути. Для сервера за 2000 км по прямой пинг ниже примерно 20 мс невозможен физически.
Что значат звёздочки в результате tracert?
Роутер не ответил на служебный пакет. Многие роутеры так настроены, но данные пропускают как обычно. О проблеме говорят звёздочки до конца трассы, когда нет ответа и от конечного сервера.