Почему в интернете показан мой IP, а не IP роутера провайдера или крайнего роутера?
Я делаю запрос на myip.com. Он мне показывает IP, который назначен мне провайдером.
Почему не так:
Я делаю запрос на myip.com. Он мне показывает IP провайдера или крайнего роутера.
Мои мысли:
Когда я вбиваю myip.com, мне нужно сделать 2 вещи: узнать ip этого домена, а потом, грубо говоря, установить TCP соединение. Какой тут порядок? Я думаю +- так:
- Система ищет у себя в кэше инфу про myip.com
- Там ее нет, она что? Отправляет DNS пакет моему провайдеру? А основной пакет, пока никуда не идет (GET myip.com)?
- DNS: Resolver -> ROOT -> Namespace server и обратно ко мне.
На данном этапе провайдер знает, что я делал DNS запрос по myip.com. Идем далее:
- Теперь зная IP, мой комп отправляет пакет (с dst ip
myip.comи MAC моего роутера) на мой роутер. - Мой роутер отправляет пакет на роутер провайдера (с dst ip
myip.comи MAC роутера провайдера)
На этом этапе провайдер знает куда я собрался, ну и если нет шифрования, то знаеет вообще все.
Соответственно, src ip будет всегда меняться на ip предыдущего роутера. И когда мой GET дойдет до myip.com в source уже должен быть IP моего провайдера или вообще предыдущего роутера. Отсюда у меня возникают два вопроса:
- Правильно ли что, сначала уходит чисто DNS запрос, а HTTP никуда не идет?
- Каким образом myip.com умудряется узнать мой IP? Ведь там в запросе в src должен быть IP пред роутера?
Пока писал вопрос, пришла мысль, что network layer вообще не трогается, а меняется всегда только MAC? Но если network layer не трогать, то как VPN умудряется его изменить?
Пожалуйста, помогите. Что-то я совсем запутался.