Если адресация TCP/IP напоминает вам какую-то новую математическую дисциплину, не падайте духом: вы не одни. Растущая популярность протокола TCP/IP, вызванная необходимостью подключения локальных сетей к Internet, означает, что больше, чем когда-либо, сетевых администраторов ломает головы над адресацией IP.
Возможно самая большая группа пользователей, вставших на извилистый путь изучения TCP/IP, это клиентура NetWare. Поскольку используемый Novell протокол IPX/SPX автоматически поддерживает сетевые адреса, то как концепция планирования сетевых адресов, так и детали TCP/IP администраторам NetWare в новинку.
Помимо освоения основных концепций адресации IP (TCP/IP - это набор протоколов, где Internet Protocol (IP) отвечает за адреса) новичкам необходимо понять, как попытки сохранить адреса IP при их усиливающейся нехватке влияют на процесс адресации. К счастью, многие из возникших недавно проблем исчезнут, когда появится новая версия IP. Но этого не произойдет еще год или два, поэтому приходится принять тот факт, что IP со всеми своими недостатками будет с нами все ближайшее время и заслуживает того, чтобы о нем рассказать побольше.
Как работают цифры
Адреса IP, которые мы используем, принадлехат к одному из трех классов А, В и С, каждый из которых состоит из четырех чисел, разделенных десятичными точками. Например: 204.251.122.127.
Каждое число называется октетом, потому что в двоичном виде оно представляется в виде восьми бит. Эти восемь нулей и единиц могут быть скомбинированы 256 различными способами, соответественно каждый октет в IP-адресе может быть числом от 0 до 255 (см. рис. 1).
потому что в двоичном виде оно представляется в виде восьми бит. Эти восемь нулей и едениц могут быть скомбинированы 256 различными способами, соответственно каждый октет в IP-адресе может быть числом от 0 до 255. |
Рисунок 1.
Сцепленные октеты.
Первое число (в нашем примере 204) определяет какому классу принадлежит адрес - А, В или С. Первый октет в классе А - число от 1 до 127. Первый октет в классе В - число от 128 до 191. В классе С - самом распространенном типе - первый октет это число от 192 до 223.
Но чем действительно адреса отличаются друг от друга, так это тем, как используются остальные октеты (см. рис. 2). В адресах класса А только первый октет используется для определения адреса сети; остальные три октета (24 бита) используются для создания уникальных адресов сетевых узлов или хостов, на жаргоне IP.
В адресах класса А только первый октет используется для
определения адреса сети; |
Рисунок 2.
Чем различаются адреса.
В адресах класса В, первые два октета задают адрес сети, а последние два остаются для адресации хостов.
Адреса класса С используют для адреса сети первые три октета, а последний для адресов хостов. Мой адрес класса С, например - 204.251.122.0, и я контролирую только последний октет, что означает, что я могу присваивать номера от 1 до 254 узлам своей сети (0 и 255 зарезервированы).
Для внешнего мира уникальный адрес моей сети 204.251.122.0. Устройства, находящиеся в моей сети, имеют адреса типа 204.251.122.1, 204.251.122.2 и 204.251.122.3.
Как вы могли догадаться, чем меньше октетов используется для задания адреса сети, тем меньше существует возможных адресов. В мире существует всего 127 адресов класса А. Они были разобраны первыми "адресатами" IP, такими как МТИ и другими университеты, а также компаниями вроде Xerox. Шутка, популярная в отрасли, - сегодня даже Бог не может получить адресс класса А. Поскольку в адрессе сети класса А используется только первый октет, остающиеся 24 бита могут быть использованы для создания почти 17 миллионов уникальных адресов хостов. Существует более 65000 адресов класса В, каждый из которых поддерживает 65534 уникальных адресов хостов. Поэтому они зарезервированы за компаниями или организациями, которые имеют как минимум 4000 хостов и могут предъявить не меньше 32 подсетей. Хотя еще остаются адреса класса В, они встречаются все реже и их очень трудно получить.
Три октета (24 бита), определяющих адрес сети класса С дают около 17 миллионов адресов сетей, каждый из которых может поддерживать до 254 IP-адресуемых узлов. Пользователи класса С приспосабливаются к росту сетей путем получения дополнительных адресов класса С или используя схему класса А или В внутри сети, сообщаясь с внешним миром через транслирующее устройство.
Сегментирование сетей IP
Вне зависимости от класса сети, рост трафика в конце концов приведет к необходимости сегментирования сети с целью сокращения загруженности каналов пакетами. В большинстве случаев беспорядок в IP-адресации влечет за собой сегментирование, которое достигается путем применения так называемой маски подсети. Хотя сегментирование при помощи масок подсетей довольно просто проводится в сетях классов А и В, оба из которых предлагают компаниям достаточно свободы в назначении адресов, чтобы делать то, что им хочется, его проведение становится довольно строптивым в случае ограниченных адресов класса С. Сегментирование приводит к увеличению количества сетей в целом, но и сокращает количество узлов в конкретной сети, поскольку маска подсети сокращает количество бит, остающихся для определения адреса хоста (см. рис.3).
масок подсетей. Сегментирование, например, сетей класса С влечет за собой заимствование для адресации сети нескольких бит из последнего октета. отнимает два бита, оставляя шесть бит для адресации хостов. 11001100.11111011.01111010.01111111 подсетей отнимает три бита, оставляя только пять для адресации хостов. 11001100.11111011.01111010.01111111 |
Рисунок 3.
Демаскирование масок подсетей.
Разбиение адреса класса С, например, на две подсети отнимает два бита из последнего октета и добавляет их к битам, используемым для адресации сети. С оставшимися шестью битами каждая из двух подсетей может поддерживать только 62 уникальных адреса (на самом деле 64, но два не используются).
Разбиения сети класса С на шесть подсетей требует заимствования у последнего октета трех бит и ограничивает количество узлов в каждой сети тридцатью. Вы можете разбить сеть класса С на большее количество подсетей, но доступное адресное пространство будет слишком маленьким, чтобы быть пригодным для использования.
Универсальная маска подсети, используемая для сегментирования сетей класса С надвое - 255.255.255.192, в то время, как маска для сегментирования сети на шесть подсетей - 255.255.255.224. Эти числа легко вводятся в любое программное обеспечение конфигурации TCP/IP для каждого устройства, подключаемого к сети. Представьте себе класс А как /8, класс В как /16 и класс С как /24. Эти обозначения определяют сколько бит имеет каждый из них для адреса сети, что избавляет от необходимости обращаться к традиционной форме маски подсети за этой информацией. Адрес сети класса С 204.251.122.0 с маской 255.255.255.224 может быть записан как 204.251.122.0/27. Это означает, что мы хотим использовать 27 из 32 адресных бит для определения адреса сети, оставляя остальное адресное пространство для назначения адресов хостов.
CIDR и VLSM
Зачем утруждать себя маскированием вместо того, чтобы попросту получить адрес класса В? Как уже говорилось, вам нужно 4000 или больше узлов только для того, чтобы заслужить адрес класса В, и даже если вы уложитесь в рамки требований, то вы всеравно можете не получить его, потому что они - редкость.
Как же так получается, если сегодняшняя версия IP дает почти 4.3 миллиарда возможных адресов? Причина в том, что они не очень эффективно используются. Организации с адресами класса А, которые могут поддерживать около 17 миллионов адресов хостов заканчивают тем что впустую растрачивают миллионы из них. То же справедливо для пользователей класса В и даже маленьких лавочек класса С. Мой адрес класса С разрешает 254 хоста, но у меня в лаборатории только десять систем.
По оценкам только 5% всех выданных IP-адресов находится в употреблении и впервую очередь из-за этой расточительности. Чтобы помочь сохранению адресов, отрасль предприиняла ряд ухищрений, одно из которых - CIDR, безклассовое междоменное маршрутизирование (Classles Inter-Domain Routing).
Допустим, провайдер Internet имеет 32 адреса класса С, полученных от INIC (Информационный Центр Сети Internet), или всего 8192 адреса. При использовании CIDR эти 32 сети могут быть объединены а адреса из этого котла могут быть боее эффективно распределены между разными компаниями.
CIDR позволяет провайдеру, вместо того, чтобы раздавать клиентам адреса по 254 за раз, распределять адреса в количествах равных степеням двойки, что означает выделение сетям 32, 64, 128, 256, 512, 1024, 2048 или 4096 адресов хостов.
Иными словами, CIDR позволит нашему провайдеру поддерживать 256 сетей с менее чем 32 узлами в каждой, при том, что строгая адресация класса С разрешает только 32 сети. Компания с сетью базирующейся на IP и сходным количеством адресов класса С может поступать точно так же.
Отрасль в попытке сберечь номера также оборачивается к тому, что называется маски подсетей переменной длины (Variable Length Subnet Masks или VLSM). VLSM во многом работает так же как и CIDR, но с уже существующими IP-адресами. Вы можете добавить вторую маску подсети, используя расширенный сетевой префикс. К сожалению, бесплатных завтраков не бывает: если программное обеспечение вашего хоста не поддерживает CIDR или VLSM, предоставляемая ими гибкость принесет вам мало пользы.
IP нового поколения
Появление большего количества IP-адресов - это лишь половина преимуществ IPv6, ожидаемой пересмотренной версии текущего стандарта IP четвертой версии (IPv4). IPv6 будет использовать 128 бит адресного пространства, а не 32 бита, используемые IPv4.
Даже если мы раздадим адреса IPv6 также неэффективно, как адреса IPv4, то, согласно книге "Маршрутизация в Internet" издательства Prentice Hall, на каждый квадратный метр твердой поверхности Земли скоро будет больше полутора тысяч IP адресов.
Другое преимущество IPv6 в том, время на конфигурирование адресов упадет практически до нуля благодаря тому, что он подражает автоматической конфигурации адресов в Novell"овском IPX.
Между IPX и IPv6 есть одна большая разница. Вместо того, чтобы самим оповещать о своем местонахождении, как это делается в IPX, станции будут получать информацию об адресах от маршрутизаторов IPv6, которые будут рассылать широковещательные пакеты, содержащие подробности конфигурации адресов. Если новая станция не "услышит" информацию вовремя, она может сама послать широковещательный пакет со своим запросом на адресную информацию. Ручная настройка IP-адресов, требуемая в IPv4, просто отомрет.
Роберт Хинден, директор отделения программных продуктов Ipilson Networks и со-председатель рабочей группы IPNG, сформулировавшей стандарты для IPv6, говорит: "Многие опции IPv4, такие как поддержка многоадресности и безопасности, в IPv6 являются стандартами. Тестирование у производителей гарантирует интероперабельность этих возможностей, что совсем не так в IPv4".
По меньшей мере 10 производителей программных продуктов TCP/IP разрабатывают стеки протокола IPv6. Текущие черновые материалы протоколов Internet можно получить по адресу http://www.ietf.org/lid-abstracts. html. Больше дюжины черновых материалов содержат части, посвященные разработке IPv6. Брайан Диндайал, менеджер по магистральным протоколам в Bay Networks Inc., оптимистичен насчет IPv6. "Стандарты пакетов установлены, но стандарты маршрутизации сегодня доступны только в черновом варианте". Компания обязалась обеспечить поддержку IPv6 как можно скорее и уже вовлечена в тестирование интероперабельности IPv6. Менеджер по маркетингу Cisco Internet Operating System (Cisco Systems, Inc.) Петер Лонг обещает, что совместимость с IPv6 появится сразу, как только будут установлены стандарты маршрутизации. А до этих пор нам придется полагаться на лучшее управление IP-адресами, увеличивающее количество доступных адресов.
Легче сказать, чем сделать. Фил Эмер, сетевой инженер Университета штата Северная Каролина, гворит: "Мы не располагаем такой роскошью, как время. IPv6 для того, чтобы по-настоящему утвердиться, понадобится два года. Мне нужно построить сеть АТМ сегодня". Хинден сочувствует Эмеру и говорит: "Постройте сегодня вашу сеть на базе IPv4, зная, что следующий в 1997 году крупный релиз программного обеспечения от всех ваших поставщиков TCP/IP будет содержать код IPv6. Через два года вся ваша сеть может быть целиком основана на IPv6 без всякого перенумерования".
Джеймс Гаскин - сетевой консультант, журналист и автор книг о NetWare и Internet, включая "Шлюзы из NetWare в Internet" издательства Prentice Hall. Связаться с Гаскиным можно по адресу james@gaskin.com.
Большие сети - большие проблемы
Проблемы с IP-адресацией часто добавляют проблем в маршрутизации. Чем извилистей становится схема адресации, тем перегруженней становятся таблицы маршрутизации. Когда маршрутизаторам приходится исследовать сложные таблицы полные исключений, производительность падает.
IP-сеть Университета штата Северная Каролина поддерживает около 15000 клиентов и больше 1000 подсетей, и то, что больше всего беспокоит сетевого инженера Фила Эмера, это как поддерживать быструю маршрутизацию нагруженного трафика. "У нас есть семь или восемь коммутаторов АТМ с общим числом около сотни портов, и я не могу позволить маршрутизаторам с пятью или шестью подсетями на физический интерфейс тормозить работу сети", говорит он. Чтобы ослабить напряжение, Эмер предполагает перенумеровать свою IP-сеть снизу доверху, с целью убрать несколько подсетей. Несмотря на весь свой драматичность перенумерация зачастую - легчайший способ получить контроль над сетью, которая разрослась до ошеломляющих размеров, похоронив изначальную планировку сети.
Перенумерация - это что-то вроде наведения порядка в шкафу. Вы можете оставить весь беспорядок внутри и попытаться разобраться, вынимая и укладывая вещи, но чаще всего лучше вывалить все на пол, рассортировать и убрать назад.
Поскольку большим компаниям доступно немного адресов класса В, это значит использование в Internet адресов сети, которые не уникальны. Такой "неправильный" адрес, будучи напрямую подключеным к Internet, вызовет при маршрутизации хаос, поэтому необходимо использовать трансляцию адресов. Сохранение адреса вашей внутренней сети скрытым от Internet также укрепляет безопасность сети, поскольку никто извне не знает настоящий адрес любой внутренней системы.
Организация присвоения номеров Internet (IANA) зарезервировала для частных сетей следующие три блока адресного пространства IP:
1 номер класса А: 10.0.0.0 - 10.255.255.255
16 смежных номеров класса В: 172.16.0.0 - 172.31.255.255
255 смежных номеров класса С: 192.186.0.0 - 192.186.255.255
Использовать эти номера может любая компания, но она будет обязана использовать продукты вроде Private Internet eXchange компании Network Translations, Inc. (ныне подразделение Cisco Systems, Inc.) для трансляции скрытых локальных адресов в правильные адреса соединения Internet.
Реальные адреса, во множестве видимые Internet, могут быть всего лишь маленькой частью адреса класса С, использующего безклассовое междоменное маршрутизирование (CIDR), назначенное оператором Internet. Сотни или тысячи компаний по всему миру могут внутри использовать адрес класса А Net10, применяя трансляцию адресов для обеспечения уникальной IP-адресации при подключении к Internet.
Взрывообразный рост числа пользователей Internet привел к резкому увеличению потребности в IP-адресах. Несмотря на то, что из возможных четырех миллиардов узлов, дай Бог, используется процентов пять, нехватка адресов уже начинает сдерживать развитие самой динамичной отрасли информационных технологий.
Для того, чтобы обеспечить всех страждущих, специальный орган при Internet - Internet Engineering Task Force (IETF) предложил проект стандарта на протокол IP нового поколения. Новый протокол призван разрешить адресный кризис Internet, а кроме того, улучшить маршрутизацию и повысить защищенность данных в сети.
Новая спецификация, получившая название IPv6, имеет перед предшественником следующие преимущества:
Пакет IPv6 обязательно содержит модуль с TCP-заголовком и данными пользователя. К этим данным прибавляется заголовок IPv6, фиксированного размера и некоторое количество дополнительных заголовков расширения. Если дополнения не используются, обработка осуществляется значительно быстрее. Каждый дополнительный заголовок предназначен для реализации определнной функции или набора функций. Дополнительный заголовок переходов, если он присутствует, должен проверяться всеми маршрутизаторами на пути прохождения пакета.
Заголовок расширенной маршрутизации отвечает за специальные случаи маршрутизации. В нем содержатся данные о промежуточных узлах маршрута, которые пакет обязан посетить на своем пути.
Заголовок фрагментации содержит данные о фрагментации. В новом протоколе фрагментацией управляет исключительно передающий узел и эти данные не могут быть изменены промежуточными маршрутизаторами. Каждый узел может исследовать предполагаемый путь движения пакета, со всеми ограничениями на параметры фрагмента и может осуществить фрагментацию в соответствии с адресом получателя.
Подход к аутентификации не диктуется специально и может быть выбран в зависимости от конкретных задач.
Специальный заголовок встроенной системы безопасности обеспечивает защиту даных от несанкционированного доступа. Специальные механизмы здесь также не оговариваются.
В заголовке дополнительных данных передаются параметры, специально предназначенные для узла-получателя.
Заголовок IPv6 отличается от заголовка IPv4 не только длиной (40 октетов против 20), но и содержанием некоторых полей. Например часть заголовка, ответственная за фрагментацию, перекочевала в специальный дополнительный заголовок, а такое поле, как контрольная сумма и вовсе упразднено. Теперь поля заголовка следующие:
Несмотря на то, что заголовок нового протокола вдвое длиннее, чем у его предшественника, он содержит меньше полей, соответственно требует меньшего количества вычислений при маршрутизации, что ускоряет прохождение пакетов.