Нехватка адресов IPv4
По словам Винта Серфа (отца IP), размер 32-битного адреса IPv4 был выбран произвольно. ИС была совместным экспериментом между правительством и академическими кругами, и существующий публичный Интернет никогда не представлялся. Парадигма IP заключалась в том, что каждое подключенное устройство будет иметь уникальный IP-адрес (все пакеты, отправляемые между IP-устройствами, будут непрерывно подключаться от исходного IP-адреса к IP-адресу назначения), и многие протоколы, использующие IP, зависят от каждого устройства. имея уникальный IP-адрес.
Предполагая, что мы могли бы использовать каждый возможный адрес IPv4 *, существует только 4 294 967 296 возможных адресов IPv4, но (по состоянию на сентябрь 2018 года) нынешняя численность населения мира составляет 7 648 290 361 человек. Как видите, для каждого человека недостаточно IPv4-адресов, чтобы иметь хотя бы один, но у многих есть компьютер, принтер, мобильный телефон, планшет, игровая приставка, Smart TV и т. Д., Для каждого из которых требуется IP-адрес, и это даже не касается бизнес-потребностей в IP-адресах. Мы также находимся на пороге IoT (Интернет вещей), где каждому устройству требуется IP-адрес: лампочки, термостаты, термометры, датчики дождя и спринклерные системы, датчики тревоги, приборы, транспортные средства, устройства открывания гаражных ворот, развлекательные системы, ошейники для домашних животных, а кто знает что еще
* Есть блоки адресов IPv4, которые нельзя использовать для адресации хоста. Например, многоадресная рассылка имеет блок из 268 435 456 адресов, которые нельзя использовать для адресации хоста. IANA поддерживает реестр адресов специального назначения IANA IPv4 по адресу https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml для документирования всех блоков специальных адресов и их целей. ,
IANA (Управление по присвоению номеров в Интернете) исчерпало блоки адресов IPv4 для назначения RIR (региональным интернет-реестрам), которые должны быть назначены в их соответствующих регионах, и RIR теперь также исчерпали адреса IPv4 для назначения в каждом регионе. Интернет-провайдеры (интернет-провайдеры) и компании, которые хотят или нуждаются в адресах IPv4, больше не могут получать адреса IPv4 от своих RIR и теперь должны попытаться купить адреса IPv4 у компаний, которые могут иметь дополнительные (по мере углубления нехватки адресов IPv4 цена на адреса IPv4). Продолжается).
Даже если бы все IPv4-адреса, которые зарезервированы для специальных целей и не могут использоваться для адресации хоста, были доступны для использования, мы все равно были бы в том же положении, потому что просто недостаточно IPv4-адресов из-за ограниченного размера адресов IPv4.
Смягчение нехватки адресов IPv4
IANA и RIR исчерпали бы адреса IPv4 за много лет до того, как они сделали бы, если бы IANA и IETF (Целевая группа по инженерным вопросам интернета) не приняли меры по снижению нехватки адресов IPv4. Одним из важных смягчающих факторов стало устаревание сетевых классов IPv4 в пользу CIDR (бесклассовой междоменной маршрутизации). Классовая адресация допускает только три назначенных размера сети (16 777 216, 65 536 или 256 общих адресов хостов на сеть), а это означает, что многие адреса теряются (для бизнеса, которому требуется только 300 адресов хостов, необходимо выделить классную сеть, в которой имеется 65 536 возможных хостов). адреса, тратить более 99% адресов в классной сети),
Безусловно, наибольшее влияние на продление срока службы IPv4 оказало использование частной адресации и варианта NAT (преобразование сетевых адресов), называемого NAPT (преобразование сетевых адресов), что большинство людей имеют в виду, когда они обратитесь к NAT или PAT (PAT - это термин, определяемый поставщиком для NAPT). К сожалению, NAPT - это уродливый обходной путь, который ломает сквозную парадигму IP и нарушает протоколы, которые зависят от уникальной IP-адресации, требуя еще более уродливых обходных путей.
NAT / NAPT
Концепция NAT довольно проста: он заменяет один или оба IPv4-адреса источника и назначения в заголовке пакета, когда пакет проходит через устройство NAT. На практике это требует вычислений, поскольку заголовок IPv4 имеет вычисляемое поле для проверки целостности заголовка IPv4, а любое изменение, внесенное в заголовок IPv4, требует пересчета поля, а некоторые транспортные протоколы в полезной нагрузке пакета также имеют свои собственные вычисленные значения. поля, которые должны быть пересчитаны с использованием вычислительных ресурсов в устройстве NAT, которые могут использоваться для пересылки пакетов.
В базовом NAT устройство NAT имеет пул IPv4-адресов, которые оно использует для замены исходных IPv4-адресов заголовков пакетов для пакетов IPv4, отправленных из внутренней сети во внешнюю сеть, и поддерживает таблицу трансляции для перевода IPv4-адреса назначения трафика, возвращаемого из внешней сети, чтобы доставить пакеты обратно на правильные хосты во внутренней сети. Это также требует ресурсов на устройстве NAT для создания и поддержки таблицы трансляции, а также для выполнения поиска в таблице. Такое использование ресурсов может замедлить пересылку пакетов, поскольку ресурсы, используемые NAT, берутся из ресурсов, которые можно использовать для пересылки пакетов.
NAPT расширяет Basic NAT, также переводя адреса (порты) транспортного протокола для TCP и UDP и идентификаторы запросов для ICMP. Также путем преобразования адресов транспортного уровня NAPT позволяет использовать один внешний адрес IPv4 для многих внутренних адресов IPv4 хоста. NAPT даже более ресурсоемкий, чем Basic NAT, поскольку для каждого протокола транспортного уровня требуется отдельная таблица, а также он должен выполнять вычисления целостности для транспортных протоколов.
Использование частной IPv4-адресации, которую можно повторно использовать в нескольких сетях (вы, возможно, заметили, что большинство домашних / жилых сетей по умолчанию используют одну и ту же сеть 192.168.1.0/24, которая находится в одном из выделенных IANA диапазонов частных IPv4-адресов) вместе с NAPT позволяет корпоративным и домашним пользователям использовать один внешний (общедоступный) адрес для большой внутренней (частной адресации) сети. Это экономит много-много IPv4-адресов (в несколько раз превышающее общее количество возможных IPv4-адресов) и продлевает срок службы IPv4 далеко за пределы точки, в которой он был бы разрушен без NAPT. У NAPT есть некоторые серьезные недостатки:
- NAPT нарушает сквозную парадигму IP и работает только с TCP, UDP и ICMP, нарушая другие транспортные протоколы. Существуют также протоколы прикладного уровня, которые используют TCP или UDP, которые нарушаются NAPT, хотя TCP и UDP номинально работают с NAPT. Для некоторых протоколов уровня приложений могут быть доступны другие меры по смягчению, например STUN / TURN, но они могут добавить стоимость и сложность.
- NAPT очень ресурсоемкий, замедляет пересылку пакетов по сравнению с тем, что возможно без использования какой-либо формы NAT. Некоторые поставщики добавляют выделенное оборудование, чтобы уменьшить потребность в краже ресурсов из пересылки пакетов, но это связано с дополнительными затратами, размером, сложностью и потреблением энергии.
- При использовании NAPT трафик, инициируемый извне сети NAPT, не может быть доставлен во внутреннюю сеть, поскольку в таблице трансляции нет записи перевода, которая добавляется инициируемым внутри трафиком. Единственный внешний (общедоступный) адрес настраивается на устройстве NAT, и предполагается, что любые пакеты с этим IPv4-адресом назначения и отсутствием записи для исходного IPv4-адреса в таблице трансляции для транспортного протокола предназначены для самого устройства NAPT, а не для него. внутренняя сеть. Существует решение, называемое переадресацией портов, для этой проблемы.
- Переадресация портов в основном настраивает вручную постоянную запись в таблице трансляции, чтобы разрешить инициируемый извне трафик, предназначенный для конкретного транспортного протокола, и адрес для протокола, который будет доставлен конкретному внутреннему хосту. Это имеет тот недостаток, что позволяет только одному внутреннему хосту быть целью для конкретного транспортного протокола и адреса. Например, если во внутренней сети имеется несколько веб-серверов, на TCP-порт 80 может быть открыт только один из веб-серверов (по умолчанию для веб-серверов).
- Поскольку нехватка адресов IPv4 очень серьезна, у провайдеров Интернет-услуг заканчиваются публичные адреса для назначения их клиентам. Интернет-провайдеры больше не могут получать больше публичных адресов, поэтому они приняли некоторые меры, которые особенно вредят домашним / домашним пользователям. Интернет-провайдеры хотят зарезервировать свой драгоценный пул публичных адресов для своих бизнес-клиентов, которые готовы платить за привилегию получения публичных адресов. Для этого интернет-провайдеры начинают присваивать частные или общие адреса своим домашним / бытовым клиентам, а интернет-провайдеры используют NAPT на своих собственных маршрутизаторах, чтобы упростить использование нескольких частных или общих адресов на одном общедоступном адресе. Это создает ситуацию, когда домашняя / жилая сеть находится за двумя трансляциями NAPT (ISP NAPT для клиента NAPT),
- Многие люди ошибаются, приравнивая NAPT и безопасность, потому что внутренние узлы не могут быть адресованы напрямую извне. Это ложное чувство безопасности. Поскольку межсетевой экран, соединяющий сеть с общедоступным Интернетом, является удобным местом для запуска NAPT, это просто запутывает ситуацию. Это создает опасное ощущение, что NAPT сам по себе является брандмауэром, и настоящий брандмауэр не нужен. Сетевая безопасность обеспечивается брандмауэрами, которые по умолчанию блокируют весь инициируемый извне трафик, позволяя только трафику, для которого он явно настроен, возможно, выполнить глубокую проверку содержимого пакета, чтобы сбросить опасные полезные данные пакета. Некоторые люди не могут понять, что без брандмауэра, как аппаратного, так и программного обеспечения, снаружи или встроенного в устройство NAPT, для защиты устройства NAPT само устройство NAPT уязвимо. Если устройство NAPT взломано, оно и, как следствие, злоумышленник получают полный доступ к частной внутренней сети. Пакеты, инициированные извне, которые не соответствуют таблице трансляции, направляются на само устройство NAPT, поскольку именно это устройство фактически адресуется с помощью внешнего адреса, поэтому устройство NAPT может подвергаться прямой атаке.
Решение проблемы нехватки адресов IPv4
IETF предсказала нехватку адресов IPv4 и создала решение: IPv6, который использует 128-битные адреса, то есть имеется 340 282 366 920 938 463 463 374 607 431 768 211 456 возможных адресов IPv6. Почти невообразимое количество адресов IPv6 устраняет необходимость в NAPT (IPv6 не имеет никаких стандартов NAT, как это делает IPv4, а экспериментальный IPv6 NAT RFC специально запрещает NAPT), восстанавливая первоначальную сквозную парадигму IP. Снижение нехватки адресов IPv4 предназначено для продления срока службы IPv4 до тех пор, пока IPv6 не станет повсеместным, после чего IPv4 должен исчезнуть.
Люди не могут действительно понять числа размера, используемого для IPv6. Например, стандартная сеть IPv6 использует 64 бита для каждой из сетевых и узловых частей сетевого адреса. Это 18 446 744 073 709 551 616 возможных сетей стандарта IPv6 / 64 и такое же (огромное) количество адресов узлов для каждой из этих сетей. Чтобы попытаться понять такое большое число, рассмотрите инструменты, которые сканируют все возможные адреса в сети. Если такой инструмент может сканировать 1 000 000 адресов в секунду (маловероятно), потребуется более 584 542 лет, чтобы выполнить сканирование в одной сети / 64 IPv6. В настоящее время только 1/8 от общего адресного пространства IPv6 выделено для глобальных адресов IPv6, что составляет 2,305,843,009,213,693,952 стандартных сетей IPv6 / 64, и если численность населения мира в 2100 году составит 21 миллиард (несколько реалистичное число), каждый из этих 21 миллиарда человек может иметь 109 802 048 стандартных сетей IPv6 / 64, каждая из которых имеет 18 446 744 073 709 551 616 возможных адресов хоста. К сожалению, (десятилетия) нехватки адресов IPv4 настолько укоренились в сохранении адресов в людях, что многие просто не могут его отпустить, и они пытаются применить его к IPv6, что бессмысленно и фактически вредно. IPv6 на самом деле предназначен для тратить адреса.
У IETF также было преимущество задним числом, и он улучшил IP (в IPv6), удалив функции IPv4, которые не работали хорошо, улучшив некоторые функции IPv4 и добавив функции, которых не было в IPv4, создав новый и улучшенный IP , Поскольку IPv6 является совершенно отдельным протоколом от IPv4, его можно запускать параллельно с IPv4, поскольку выполняется переход с IPv4 на IPv6. Хосты и сетевые устройства могут одновременно запускать IPv4 и IPv6 на одном и том же интерфейсе (с двумя стеками), и каждое из них невидимо для другого; нет никаких помех между двумя протоколами.
Проблема с IPv6 заключается в том, что на самом деле это совершенно другой протокол, который несовместим с вездесущим IPv4, и многие люди считают, что меры по уменьшению нехватки адресов IPv4 являются «достаточно хорошими». Прошло много лет с тех пор, как IPv6 был стандартизирован, и мы только сейчас получаем некоторую реальную популярность в использовании IPv6 (Google сообщает, что по состоянию на сентябрь 2018 года всемирное распространение IPv6 превысило 20%, а уровень внедрения IPv6 в США превысил 35%). Причина, по которой мы, наконец, переходим на IPv6, заключается в том, что просто больше не используются неиспользуемые IPv4-адреса.
Существуют и другие препятствия, являющиеся частью культуры IPv4, которые людям просто трудно заглянуть в прошлое. Многие люди также боятся IPv6, которые выросли и чувствовали себя комфортно с IPv4, бородавками и всем остальным. Например, адреса IPv6 кажутся большими и некрасивыми по сравнению с адресами IPv4, и это, кажется, отталкивает многих людей. Реальность такова, что IPv6 часто проще и более гибок, чем IPv4, особенно для адресации, а уроки, извлеченные из IPv4, были применены к IPv6 с самого начала.