В-четвертых, NAT нарушает одно из фундаментальных правил построения многоуровневых протоколов: уровень k не должен строить никаких предположений относительно того, что именно уровень k + 1 поместил в поле полезной нагрузки. Этот принцип определяет независимость уровней друг от друга. Если когда-нибудь на смену ТСР придет ТСР-2, у которого будет другой формат заголовка (например, 32-битная адресация портов), то трансляция сетевых адресов потерпит фиаско. Вся идея многоуровневых протоколов состоит в том, чтобы изменения в одном из уровней никак не могли повлиять на остальные уровни. NAT разрушает эту независимость.
В-пятых, процессы в Интернете вовсе не обязаны использовать только TCP или UDP. Если пользователь машины А решит придумать новый протокол транспортного уровня для общения с пользователем машины В (это может быть сделано, например, для какого-нибудь мультимедийного приложения), то ему придется как-то бороться с тем, что NAT-блок не сможет корректно обработать поле Порт источника TCP.
В-шестых, некоторые приложения предусматривают использование множественных TCP/IP-соединений или UDP-портов. Так, FTP, стандартный Протокол передачи файлов (File Transfer Protocol), вставляет IP-адрес в тело пакета, чтобы затем получатель извлек его оттуда и обработал. Так как NAT об этом ничего не знает, он не сможет переписать адрес или как-то иначе его обработать. Это значит, что FTP и другие приложения, такие как протокол интернет-телефонии H.323 (мы будем изучать его в главе 7), могут отказаться работать при трансляции сетевых адресов, если только не будут приняты специальные меры. Часто существует возможность улучшить метод NAT и заставить его корректно работать в таких случаях, но невозможно же дорабатывать его всякий раз, когда появляется новое приложение.
Наконец, поскольку поле Порт источника является 16-разрядным, то на один IP-адрес может быть отображено примерно 65 536 местных адресов машин. На самом деле, это число несколько меньше: первые 4096 портов зарезервированы для служебных нужд. В общем, если есть несколько IP-адресов, то каждый из них может поддерживать до 61 440 местных адресов.
Эти и другие проблемы, связанные с трансляцией сетевых адресов, обсуждаются в RFC 2993. Несмотря на все трудности, NAT представляет собой единственный работающий механизм борьбы с дефицитом IP-адресов. Поэтому он широко используется на практике, особенно в домашних сетях и сетях небольших организаций. В NAT сейчас существуют межсетевые экраны и средства обеспечения конфиденциальности, поскольку по умолчанию блокируются все незапрошенные входящие пакеты. Поэтому маловероятно, что эта технология уйдет из употребления после внедрения IPv6.
5.6.3. Протокол IP версии 6
В течение многих лет IP оставался чрезвычайно популярным протоколом. Он работал просто прекрасно, и основное подтверждение тому — экспоненциальный рост сети Интернет. К сожалению, протокол IP скоро стал жертвой собственной популярности: стало подходить к концу адресное пространство. И хотя для более эффективного использования адресного пространства стали применяться CIDR и NAT, до 2012 года IPv4^peca будут выделяться с помощью ICANN. Надвигающуюся угрозу заметили почти 20 лет назад, и вопрос о том, что с этим делать, вызвал в интернет-сообществе бурю дискуссий и расхождений.
В этом разделе мы поговорим как об этой проблеме, так и о ее решениях. В перспективе хорошей идеей является переход к более длинным адресам. IPv6 (IP version 6 — IP версии 6) — новая разработка, призванная заменить старую. Протокол IPv6 использует 128-битные адреса; в обозримом будущем дополнительного увеличения длины адреса, скорее всего, не потребуется. Однако оказалось, что внедрить IPv6 не так уж просто. Это принципиально новый протокол сетевого уровня, несовместимый с IPv4, несмотря на многочисленные сходства с ним. Кроме того, компании и отдельные пользователи не понимают, почему им стоит перейти на IPv6. Поэтому сейчас он занимает лишь крохотную часть Интернета (около 1 %) несмотря на то что признан стандартом еще в 1998 году. Что будет дальше, станет ясно в ближайшие несколько лет, когда будут распределены последние из оставшихся IPv4-адресов. Интересно, станут ли люди продавать свои адреса на eBay? Или на черном рынке? Как знать.
Помимо перечисленных выше проблем с выделением адресов, имеются и другие, угрожающе вырастающие на горизонте. До недавних пор Интернетом пользовались в основном университеты, высокотехнологичные предприятия и правительственные организации США (особенно Министерство обороны). С лавинообразным ростом интереса к Интернету, начавшимся в середине 90-х годов, в третьем тысячелетии, скорее всего, им будет пользоваться гораздо большее количество пользователей с принципиально разными требованиями. Во-первых, пользователи смартфонов могут подключаться к Интернету для доступа к домашним базам данных. Во-вторых, при неминуемом сближении компьютерной промышленности, средств связи и индустрии развлечений, возможно, очень скоро каждый телефон и телевизор планеты станет узлом Интернета, что в результате приведет к появлению миллиардов машин, используемых для аудио и видео по заказу. В таких обстоятельствах становится очевидно, что протокол IP должен эволюционировать и стать более гибким.
Предвидя появление этих проблем, проблемная группа проектирования Интернета IETF начала в 1990 году работу над новой версией протокола IP, в которой никогда не должна возникнуть проблема нехватки адресов, а также будут решены многие другие проблемы. Кроме того, новая версия протокола должна была быть более гибкой и эффективной. Были сформулированы следующие основные цели.
1. Поддержка миллиардов хостов даже при неэффективном использовании адресного пространства.
2. Уменьшение размера таблиц маршрутизации.
3. Упрощение протокола для ускорения обработки пакетов маршрутизаторами.
4. Более надежное обеспечение безопасности (аутентификации и конфиденциальности).
5. Необходимость обращать большее внимание на тип сервиса, в частности, при передаче данных реального времени.
6. Упрощение работы многоадресных рассылок с помощью указания областей рассылки.
7. Возможность изменения положения хоста без необходимости изменять его адрес.
8. Возможность дальнейшего развития протокола в будущем.
9. Возможность сосуществования старого и нового протоколов в течение нескольких
лет.
Разработка IPv6 дала шанс улучшить возможности IPv4 исходя из потребностей современного Интернета. Чтобы найти протокол, удовлетворяющий всем этим требованиям, IETF издал в RFC 1550 приглашение к дискуссиям и предложениям. Был получен двадцать один ответ. Далеко не все варианты содержали предложения, полностью удовлетворяющие этим требованиям. В декабре 1992 года были рассмотрены семь серьезных предложений. Их содержание варьировалось от небольших изменений в протоколе IP до полного отказа от него и замены совершенно другим протоколом.
Одно из предложений состояло в использовании вместо IP протокола CLNP, который с его 160-разрядным адресом обеспечивал бы достаточное адресное пространство на веки вечные — этого пространства хватило бы, если бы каждая молекула воды в мировом океане захотела создать свою небольшую сеть (порядка 25 адресов). Кроме того, это решение объединило бы два основных сетевых протокола. Однако все же сочли, что при подобном выборе придется признать, что кое-что в мире OSI было сделано правильно, что было бы политически некорректным в интернет-кругах. Протокол CLNP, на самом деле, очень мало отличается от протокола IP. Окончательный выбор был сделан в пользу протокола, отличающегося от IP значительно сильнее, нежели CLNP. Еще одним аргументом против CLNP была его слабая поддержка типа сервиса, требовавшегося для эффективной передачи мультимедиа.
Три лучших предложения были опубликованы в журнале IEEE Network Magazine (Deering, 1993; Francis, 1993; Katz и Ford, 1993). После долгих обсуждений, переработок и борьбы за первое место была выбрана модифицированная комбинированная версия Диринга (Deering) и Фрэнсиса (Francis), называемая в настоящий момент протоколом SIPP (Simple Internet Protocol Plus — Простой интернет-протокол Плюс). Новому протоколу было дано обозначение IPv6.