zaLinux.ru

Как узнать, нахожусь ли я за NAT? (РЕШЕНО)


Что такое NAT

NAT — это технология, которая позволяет множеству устройств выходить в Интернет используя один и тот же IP адрес. Кстати, в вашей локальной сети, в которой имеется роутер, уже применяется NAT — именно благодаря этому все ваши устройства могут выходить в Глобальную сеть и не нужно каждому из них иметь внешний IP.

Как вы понимаете, это часто используемая технология. Возможно, вы много лет ею пользуетесь, даже не зная про неё. Она действительно приносит очень много пользы, но у неё есть недостаток — она позволяет делать подключения «в одну сторону». То есть если ваш компьютер инициализировал подключение к Интернету, то он отправит его роутеру, роутер сделает две вещи: 1) запомнит, что запрос пришёл с определённого устройства и 2) отправить этот запрос в Интернет. Когда придёт ответ, роутер всё ещё «помнит», что этот запрос был сделан для определённого устройства в локальной сети, и отправит ответ именно этому устройству. И так происходит каждый раз.

Но вот если на роутер придёт новый сетевой запрос из Глобальной сети (не ответ на запрос, а именно новый запрос), то роутер банально не знает, для кого в локальной сети он предназначен (если не настроена переадресация портов). Поэтому с этим поступившим запросом роутер ничего не делает. Многие Интернет-провайдеры также используют NAT. И работа происходит по точно такому же принципу — ваши сетевые запросы уходят в Глобальную сеть и вы без проблем получаете сетевые ответы, но новые запросы из Интернета к вашему компьютеру не могут пройти через NAT.

Поэтому если вы хотите на своём домашнем компьютере запустить сетевой сервис (например, веб-сервер) и хотите, чтобы был доступен из Глобальной сети Интернет, то вам нужно убедиться, что вам компьютер не за NAT сетью Интернет-провайдера.

Как узнать, использует ли мой Интернет-провайдер NAT

На самом деле непросто с полной уверенностью сказать, находится ли компьютер за NAT, но есть косвенные признаки, позволяющие с высокой степенью вероятности утверждать, что Интернет-провайдер применяет NAT для своих пользователей.

Поиск локальных IP адресов в сетевом маршруте

С помощью трассировки маршрута можно узнать, через узлы с какими IP адресами проходит сетевой трафик.

Чтобы запустить трассировку маршрута в Windows откройте команду строку (для этого нажмите Win+x и выберите пункт «Windows PowerShell») и запустите команду:

Test-NetConnection suip.biz -TraceRoute

Для запуска трассировки в Linux запустите команду:

traceroute suip.biz

Смотрите также: Трассировка сетевого маршрута

Если среди IP адресов, через которые проходит сетевой трафик, вы увидите входящие в следующие диапазоны, то скорее всего вы находитесь за NAT:


  • 10.0.0.0/8 (10.0.0.0 - 10.255.255.255)
  • 172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
  • 192.168.0.0/16 (192.168.0.0 - 192.168.255.255)
  • 100.64.0.0/10 (100.64.0.0 - 100.127.255.255)

На этом скриншоте сразу два IP адреса из указанных диапазонов: 192.168.1.1 и 10.128.0.1.

192.168.1.1 — это роутер (как было сказано выше, роутер также использует NAT, поэтому если вы подключаете свой компьютер к сети Интернет-провайдера через роутер, то вам нужно настроить проброску (форвардинг) портов.

А другой IP 10.128.0.1 принадлежит локальной сети Интернет-провайдера. Поскольку локальные (приватные) IP адреса являются немаршрутизируемыми, можно с высокой долей вероятности утверждать, что используется NAT.

На следующем скриншоте виден роутер и целых три локальных IP из диапазона 10.0.0.0/8. Опять же можно утверждать, что NAT используется.

На этом скриншоте виден роутер (192.168.1.1), но среди последующих IP отсутствуют локальные. Означает ли это, что Интернет-провайдер не использует NAT? Нет. Если есть присутствуют локальные IP адреса, то почти наверняка NAT есть, но если локальных нет, то NAT может быть, а может отсутствовать.

Поэтому нужно сделать ещё один тест.

Трассировка до себя

Сервис «Трассировка до себя» позволяет косвенно определить что Интернет-провайдер использует NAT.


Адрес сервиса: https://suip.biz/ru/?act=traceroute-me

На странице сервиса вы можете запустить трассировку от сервера до вашего компьютера. Результат трассировки позволит косвенно определить, использует ли ваш Интернет-провайдер NAT.

Если в результатах трассировки показываются все узлы, как на скриншоте ниже, то это означает, что у вас белый (внешний) IP адрес с вероятностью 100%.

Если же трассировка заканчивается строками

25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

как на скриншоте ниже:

То это означает, что скорее всего ваш компьютер находится за NAT.

Но сказанное не всегда верно — трассировка может не показать узлы и по другим причинам, не только из-за NAT.

Заключение

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



Рекомендуемые статьи:

1 Комментарий

  1. S2

    Есть еще один вариант: зайдите в админку роутера и посмотрите, какой ip дан роутеру, если при запросе "ip" в  нтеренете Вам выдадут другой адресс => скорее всего вы под NAT`ом. Т.е. в интернете будет ip именно последнего NAT`а (их может быть и как правило есть несколько штук).

Добавить комментарий для S2 Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *