Как может пройти маршрут между двумя частными IP-адресами через публичные IP-адреса?
Я пытаюсь понять, что это за выход traceroute
средства. Я изменил IP-адреса для конфиденциальности, но сохранил различие между публичным и частным диапазоном IP-адресов.
traceroute.db -e -n 10.1.1.9
traceroute to (10.1.1.9), 30 hops max, 60 byte packets
1 10.0.0.1 0.596 ms 0.588 ms 0.577 ms
2 10.0.0.2 1.032 ms 1.029 ms 1.084 ms
3 10.0.0.3 3.360 ms 3.355 ms 3.338 ms
4 23.0.0.4 3.974 ms 4.592 ms 4.584 ms
5 23.0.0.5 13.442 ms 13.445 ms 13.434 ms
6 45.0.0.6 13.195 ms 12.924 ms 12.913 ms
7 67.0.0.7 52.088 ms 51.683 ms 52.040 ms
8 10.1.1.8 46.878 ms 44.575 ms 44.815 ms
9 10.1.1.9 45.932 ms 45.603 ms 45.593 ms
Первый диапазон 10.0.* Находится внутри моей организации. Последний диапазон 10.1.* - это еще один сайт моей организации. Промежуточные адреса принадлежат различным провайдерам. Я ожидаю, что между двумя сайтами есть какой-то VPN, но я не очень разбираюсь в топологии нашей сети.
Что я не понимаю, так это то, как маршрут может идти от личного адреса через публичные адреса обратно к частным адресам. Поиск привел меня к публичным IP-адресам в MPLS Traceroute, что дает возможное объяснение: MPLS. Является ли MPLS единственным возможным или наиболее вероятным объяснением? Иначе, что это говорит мне о нашей сетевой инфраструктуре?
Бонусный вопрос для моего назидания: в этом сценарии кто генерирует превышенные ICMP пакеты TTL и, если необходимо, искажает их адреса отправителя и получателя?
1 ответ
На обоих концах находятся серверы, которые выполняют трансляцию сетевых адресов (NAT). По мере прохождения адреса через эти серверы адрес заголовка пакета данных перезаписывается на интернет-адрес этого сервера. Сервер отслеживает, какие соединения принадлежат какому внутреннему хосту.
Traceroute отображает данные из пакета ICMP, указывающие, был ли достигнут хост в заданном количестве прыжков. Маршрутизаторы NAT не изменяют эти данные. В результате вы видите адрес, по которому каждый хост получил пакет.
Обычно имя сервера на дальнем конце в этом случае маршрутизируется с использованием DNAT (NAT назначения) на хост в частной сети.
Вероятно, что адрес передается через VPN-туннель между двумя сайтами. VPN инкапсулирует исходные и конечные адреса внутри пакетов, отправляемых между скачками 3 и 7. Эффект тот же, хотя механизм другой. Маршрутизаторы на участках 3 и 7 будут знать диапазоны адресов, поддерживаемые удаленными маршрутизаторами, и соответствующим образом маршрутизировать пакеты. Покидая переход 7, IP-адресом назначения будет 67.0.0.7 с публичным адресом, принадлежащим переходу 3. Это невидимо из-за того, как работает трассировка маршрута. В зависимости от протокола VPN некоторые прыжки после перехода 7 могут не отслеживаться.
В некоторых случаях вы можете увидеть, как интернет-провайдер перенаправляет частные адреса на публичные. Это будет выглядеть как один или несколько частных адресов между двумя публичными адресами. Если промежуточные маршрутизаторы с общедоступными адресами принадлежат одной и той же организации, возможно, они имеют правила маршрутизации, позволяющие осуществлять сквозную связь без трансляции.