Перейти к содержимомуHisnLabs
← TCP/IP: адреса, порты и соединения

Урок 4 из 4 · 6 мин

Ваш роутер и NAT

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

Узнайте свой публичный IP-адрес — и каждое устройство в вашей домашней сети: телефон, ноутбук, умная колонка — покажет одно и то же число. Посмотрите же, каким каждое устройство считает свой собственный адрес, и вы увидите нечто другое: приватный адрес вроде 192.168.1.12, из диапазонов, которые RFC 1918 резервирует для локальных сетей и которые рассматривались в первом уроке этого курса. Устройство, соединяющее эти два мира, — ваш роутер, использующий технологию под названием трансляция сетевых адресов, или NAT.

Что NAT делает на самом деле

Глоссарий MDN определяет это прямо: NAT — «это техника, позволяющая нескольким компьютерам совместно использовать один IP-адрес» (is a technique for letting multiple computers share an IP address), путём «назначения уникальных адресов каждому компьютеру в локальной сети и корректировки сетевого трафика для отправки данных в нужное место» (assigning unique addresses to each computer on the local network and adjusting network traffic to send data to the right place). Конкретно: когда ваш ноутбук открывает соединение с сайтом, роутер переписывает исходящий пакет так, чтобы он выглядел исходящим от собственного публичного адреса роутера, и хранит таблицу, связывающую это соединение с приватным адресом и портом вашего ноутбука. Когда приходит ответ, роутер ищет запись в этой таблице и пересылает его на нужное устройство.

Именно поэтому NAT вообще существует: примерно 4,3 миллиарда адресов IPv4 никогда не смогли бы растянуться на публичный адрес для каждого телефона, ноутбука и умного устройства в каждом доме, а интернет-провайдеры обычно выделяют дому только один публичный адрес. NAT позволяет дюжине устройств в доме совместно использовать этот единственный адрес, не требуя собственного для каждого.

Что NAT попутно даёт вам

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

Чего NAT не делает

Эта побочная фильтрация — не то же самое, что безопасность, и стоит чётко понимать разницу:

  • NAT никак не влияет на соединения, которые ваши собственные устройства открывают наружу. Если приложение на вашем ноутбуке подключается к серверу, NAT спокойно пропускает ответ обратно; у него нет никакого мнения о том, должно ли было это приложение вообще общаться с этим сервером.
  • NAT не проверяет и не шифрует содержимое. Всё, что отправлено в открытом виде, так же читаемо для сайтов и промежуточных сетей, как и без NAT.
  • NAT не заменяет файрвол. Многие роутеры запускают файрвол с отслеживанием состояния параллельно с NAT, и именно этот файрвол, отслеживая рукопожатие, описанное в предыдущем уроке, реально решает, что пропускать.
  • Устройства, использующие один общий публичный адрес, всё равно можно различить по отдельности другими способами — например, по учётным записям, файлам cookie или идентификаторам устройств, которые используют посещаемые ими сайты.

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

Главное

  • NAT позволяет множеству устройств в частной сети совместно использовать один публичный IP-адрес, переписывая и отслеживая соединения по мере их прохождения через роутер.
  • NAT существует в основном потому, что в IPv4 не хватает адресов, чтобы у каждого устройства был свой публичный.
  • Как побочный эффект, NAT затрудняет открытие внешним устройством незапрошенного соединения напрямую с одним из ваших устройств, поскольку публичного адреса, указывающего на него, не существует.
  • NAT не проверяет, не фильтрует и не шифрует трафик, который отправляют наружу ваши собственные устройства; это задача файрвола, а не NAT.
  • Совместное использование публичного адреса не делает отдельные устройства анонимными для сайтов, к которым они подключаются.

Проверьте себя

  1. 1. Что, согласно MDN, делает NAT?

    • Шифрует весь трафик, покидающий роутер
    • Позволяет нескольким компьютерам совместно использовать IP-адрес, транслируя трафик нужному локальному устройству — Верно.
    • Назначает уникальный публичный IP-адрес каждому устройству
    • Автоматически блокирует все входящие соединения

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

  2. 2. Почему домашние роутеры обычно используют NAT?

    • Чтобы сделать Wi-Fi быстрее
    • Потому что в IPv4 не хватает адресов, чтобы дать каждому устройству в доме собственный публичный — Верно.
    • Потому что это требуется для шифрования
    • Чтобы блокировать фишинговые сайты

    Примерно 4,3 миллиарда адресов IPv4 недостаточно, чтобы каждое устройство в мире имело публичный адрес, поэтому NAT позволяет дому совместно использовать один адрес, выданный провайдером.

  3. 3. Какое утверждение о NAT и входящих соединениях верно?

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

    Таблица трансляции NAT пересылает только ответы на соединения, запрошенные вашими собственными устройствами; публичного адреса, на который посторонний мог бы нацелиться напрямую, не существует.

  4. 4. От чего NAT НЕ защищает?

    • От содержимого, которое ваше собственное устройство отправляет по открытому им соединению, включая всё незашифрованное — Верно.
    • От нехватки адресов IPv4
    • От необходимости роутера транслировать адреса
    • От совместного использования одного публичного адреса несколькими устройствами

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

Примените на практике в FireAI

Примените этот урок на своём Mac.

Источники

Примените это на своём Mac

Все функции бесплатно на 17 дней, без банковской карты.

Скачать для Mac Документация