Протокол IP : IP-маршрутизация

IP-адресация и создание подсетей для новых пользователей

26 января 2010 - Перевод, выполненный профессиональным переводчиком
Другие версии: PDF-версия:pdf | Машинный перевод (28 июля 2013) | Английский (26 сентября 2005) | Отзыв


Содержание

Введение
Предварительные условия
      Требования
      Используемые компоненты
      Дополнительные сведения
      Условные обозначения
Общие сведения об IP-адресах
Маски сети
Общие сведения о подсетях
Примеры
      Упражнение 1
      Упражнение 2
Пример VLSM
      Пример VLSM
CIDR
Приложение
      Пример конфигурации
      Таблица количества узлов/подсетей
Связанные обсуждения сообщества поддержки Cisco

Введение

В этом документе содержатся базовые сведения, которые необходимы для настройки маршрутизации IP-адресов, в том числе принципы разделения адресов и работы подсетей. Здесь содержатся инструкции по настройке для каждого интерфейса маршрутизатора IP-адреса и уникальной подсети. Приводятся примеры, которые помогут свести воедино все полученные сведения.

Предварительные условия

Требования

Для данного документа отсутствуют предварительные условия.

Используемые компоненты

Настоящий документ не имеет жесткой привязки к каким-либо конкретным версиям программного обеспечения и оборудования.

Дополнительные сведения

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

  • Адрес — Уникальный ID-номер, назначенный одному узлу или интерфейсу в сети.

  • Подсеть — часть сети, имеющая один адрес подсети.

  • Маска подсети — 32-битная комбинация, с помощью которой указывается, какая часть адреса обозначает подсеть, а какая узел.

  • Интерфейс — сетевое подключение.

Если уже имеются адреса в Интернете, официально полученные из центра сетевой информации InterNIC, то можно приступать к работе. Если не планируется подключаться к сети Интернет, корпорация Cisco настоятельно рекомендует использовать зарезервированные адреса, определенные в документе RFC 1918 leavingcisco.com.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Cisco Technical Tips Conventions.

Общие сведения об IP-адресах

IP-адрес - это адрес, используемый для того, чтобы уникально определить устройство в IP-сети. Адрес состоит из 32 двоичных разрядов и с помощью маски подсети может делиться на часть сети и часть главного узла. 32 двоичных разряда разделены на четыре октета (1 октет = 8 битов). Каждый октет преобразуется в десятичное представление и отделяется от других октетов точкой. Поэтому принято говорить, что IP-адрес представлен в десятичном виде с точкой (например, 172.16.81.100). Значение в каждом октете может быть от 0 до 255 в десятичном представлении или от 00000000 до 11111111 в двоичном представлении.

Ниже приведен способ преобразования двоичных октетов в десятичное представление. Самый правый бит или наименьший значащий бит октета имеет значение 20. Бит слева от него имеет значение 21. И так до самого левого или наиболее значащего бита, который имеет значение 27. Таким образом, если все двоичные биты являются единицами, эквивалентом в десятичном представлении будет число 255, как показано ниже:

    1  1  1  1 1 1 1 1
  128 64 32 16 8 4 2 1 (128+64+32+16+8+4+2+1=255)

Ниже приведен пример преобразования октета, в котором не все биты равны 1.

  0  1 0 0 0 0 0 1
  0 64 0 0 0 0 0 1 (0+64+0+0+0+0+0+1=65)

В следующем примере IP-адрес приведен как в двоичном, так и в десятичном представлении.

        10.       1.      23.      19 (decimal)
  00001010.00000001.00010111.00010011 (binary)

Эти октеты разделены таким образом, чтобы обеспечить схему адресации, которая может использоваться как для больших, так и для малых сетей. Существует пять различных классов сетей, от A до E. В этом документе подробно рассматриваются классы с A до C, так как классы D и E зарезервированы и их рассмотрение выходит за рамки этого документа.

Примечание. Обратите внимание, что термины "класс А, класс B" и т. д. используются в этом документе для упрощения понимания IP-адресации и разделения на подсети. В отрасли эти термины используются редко в связи с представлением бесклассовой междоменной маршрутизации (CIDR).

В любом IP-адресе класс может быть определен по трем старшим битам. На рис. 1 показано, что обозначает последовательность трех старших битов и диапазон адресов, входящих в каждый класс. Для справки показаны адреса классов D и Е.

Рис. 1

3an.gif

В адресе класса A первым октетом является сетевая часть, поэтому в примере класса A, приведенном на рис. 1, основным адресом сети является диапазон 1.0.0.0 — 127.255.255.255. Октеты 2,3 и 4 (следующие 24 бита) предоставлены сетевому администратору, который может разделить их на подсети и узлы. Адреса класса A используются в сетях с количеством узлов, превышающим 65 536 (фактически до 16777214 узлов!).

В адресе класса B сетевую часть представляют первые два октета, поэтому в примере класса B, приведенном на рис. 1, основным адресом сети является диапазон 128.0.0.0 — 191.255.255.255. Октеты 3 и 4 (16 битов) предназначены для локальных подсетей и узлов. Адреса класса B используются в сетях с количеством узлов от 256 до 65534.

В адресе класса C сетевую часть представляют первые три октета. В примере класса C, приведенном на рис. 1, основным адресом сети является диапазон 192.0.0.0 — 233.255.255.255. Октет 4 (8 битов) предназначен для локальных подсетей и узлов. Этот класс идеально подходит для сетей, в которых количество узлов не превышает 254.

Маски сети

Маска сети позволяет определить, какая часть адреса является сетью, а какая часть адреса указывает на узел. Сети класса A, B и C имеют маски по умолчанию, также известные как естественные маски:

Class A: 255.0.0.0
Class B: 255.255.0.0
Class C: 255.255.255.0

IP-адрес в сети класса A, которая не была разделена на подсети, будет иметь пару "адрес/маска", аналогичную 8.20.15.1 255.0.0.0. Чтобы наглядно продемонстрировать, как маска способствует идентификации сети и узла в адресе, преобразуем адрес и маску в двоичное представление.

8.20.15.1 = 00001000.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000

После такого преобразования идентификация сети и узла упрощается. Все биты адреса, для которых соответствующие биты маски равны 1, представляют идентификатор сети. Все биты адреса, для которых соответствующие биты маски равны 0, представляют идентификатор узла.

8.20.15.1 = 00001000.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000
            -----------------------------------
             net id |      host id             

netid =  00001000 = 8
hostid = 00010100.00001111.00000001 = 20.15.1

Общие сведения о подсетях

Подсети позволяют создавать несколько логических сетей в пределах одной сети класса А, В или С. Если не использовать подсети, то можно будет использовать только одну сеть из сети класса A, B или C, что представляется нереалистичным.

Каждый канал передачи данных в сети должен иметь уникальный идентификатор сети, при этом каждый узел в канале должен быть членом одной и той же сети. Если разбить основную сеть (класс A, B или C) на небольшие подсети, это позволит создать сеть взаимосвязанных подсетей. Каждый канал передачи данных в этой сети будет иметь уникальный идентификатор сети или подсети. Любое устройство или шлюз, соединяющее n сетей или подсетей должно иметь n уникальных IP-адресов по одному для каждой из взаимосвязанных сетей или подсетей.

Чтобы разделить сеть на подсети, расширьте естественную маску за счет битов, определяющих идентификатор узла в адресе. Это позволит создать идентификатор подсети. Пусть, например, используется сеть класса C 204.17.5.0, естественная сетевая маска которой равна 255.255.255.0. Подсети можно создать следующим образом:

204.17.5.0 -      11001100.00010001.00000101.00000000
255.255.255.224 - 11111111.11111111.11111111.11100000
                  --------------------------|sub|----

Расширение маски до значения 255.255.255.224 произошло за счет трех битов (обозначенных "sub") исходной части узла в адресе, которые были использованы для создания подсетей. С помощью этих трех битов можно создать восемь подсетей. Идентификатор узла теперь содержит пять оставшихся битов, поэтому каждая подсеть может содержать 32 адреса узлов, 30 из которых фактически могут быть присвоены устройствам, так как идентификаторы узлов не могут состоять только из единиц или только из нулей (очень важно это запомнить). С учетом всех изложенных факторов были созданы следующие подсети.

204.17.5.0 255.255.255.224     host address range 1 to 30
204.17.5.32 255.255.255.224    host address range 33 to 62
204.17.5.64 255.255.255.224    host address range 65 to 94
204.17.5.96 255.255.255.224    host address range 97 to 126
204.17.5.128 255.255.255.224   host address range 129 to 158
204.17.5.160 255.255.255.224   host address range 161 to 190
204.17.5.192 255.255.255.224   host address range 193 to 222
204.17.5.224 255.255.255.224   host address range 225 to 254

Примечание. Существует два метода обозначения этих масок. Первым методом является обозначение 3-битной маски подсети, так как новая маска имеет на три бита больше, чем естественная маска класса C. Вторым методом обозначения маски 255.255.255.224 является /27, поскольку в маске задано 27 битов. Этот второй метод используется в CIDR. С помощью этого метода одна из этих сетей может быть описана с помощью обозначения "префикс/длина". Например, 204.17.5.32/27 обозначает сеть 204.17.5.32 255.255.255.224. Если не указано иное, в этом документе обозначение "префикс/длина" используется для маски.

Схема разделения на подсети в этом разделе позволяет создать восемь подсетей, и сеть может выглядеть следующим образом:

Рис. 2

/image/gif/paws/13788/3b.gif

Обратите внимание, что каждый маршрутизатор на рис. 2 подключен к четырем подсетям и одна подсеть является общей для обоих маршрутизаторов. Кроме того, каждый маршрутизатор имеет IP-адрес в каждой подсети, к которой он подключен. Каждая подсеть может поддерживать до 30 адресов узлов.

Из этого можно сделать важный вывод. Чем больше битов используется для маски подсети, тем больше доступно подсетей. Однако чем больше доступно подсетей, тем меньше адресов узлов доступно в каждой подсети. Например, в сети класса C 204.17.5.0 при сетевой маске 255.255.255.224 (/27) можно использовать восемь подсетей, в каждой из которых будет содержаться 32 адреса узлов (30 из которых могут быть назначены устройствам). Если использовать маску 255.255.255.240 (/28), разделение будет следующим:

204.17.5.0 -      11001100.00010001.00000101.00000000
255.255.255.240 - 11111111.11111111.11111111.11110000
                  --------------------------|sub |---

Поскольку теперь имеются четыре бита для создания подсетей, остаются только четыре бита для адресов узлов. В этом случае можно использовать до 16 подсетей, в каждой из которых может использоваться до 16 адресов узлов (14 из которых могут быть назначены устройствам).

Посмотрите, как можно разделить на подсети сеть класса B. Если используется сеть 172.16.0.0, то естественная маска равна 255.255.0.0 или 172.16.0.0/16. Расширение маски до значения выше 255.255.0.0 означает разделение на подсети. Можно быстро понять, что можно создать гораздо больше подсетей по сравнению с сетью класса C. Если использовать маску 255.255.248.0 (/21), то сколько можно создать подсетей и узлов в каждой подсети?

172.16.0.0  -   10101100.00010000.00000000.00000000
255.255.248.0 - 11111111.11111111.11111000.00000000
                -----------------| sub |-----------

Для подсетей используется пять битов из исходных битов узла. Это позволяет получить 32 подсети (25). После использования пяти битов для подсети остаются 11 битов, которые используются для адресов узлов. Таким образом, в каждой подсети будет содержаться 2048 адресов узлов (211), 2046 из которых могут быть назначены устройствам).

Примечание. В прошлом существовали ограничения на использования подсети 0 (все биты подсети равны нулю) и подсети "все единицы" (все биты подсети равны единице). Некоторые устройства не разрешают использовать эти подсети. Устройства Cisco Systems позволяют использовать эти подсети при настройке команды ip subnet zero.

Примеры

Упражнение 1

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

DeviceA: 172.16.17.30/20
DeviceB: 172.16.28.15/20

Определение подсети для устройства DeviceA:

172.16.17.30  -   10101100.00010000.00010001.00011110
255.255.240.0 -   11111111.11111111.11110000.00000000
                  -----------------| sub|------------
subnet =          10101100.00010000.00010000.00000000 = 172.16.16.0

Рассмотрение битов адресов, соответствующие биты маски для которых равны единице, и задание всех остальных битов адресов, равными нулю (аналогично выполнению логической операции И между маской и адресом), покажет, к какой подсети принадлежит этот адрес. В рассматриваемом случае устройство DeviceA принадлежит подсети 172.16.16.0.

Определение подсети для устройства DeviceB:

172.16.28.15  -   10101100.00010000.00011100.00001111
255.255.240.0 -   11111111.11111111.11110000.00000000
                  -----------------| sub|------------
subnet =          10101100.00010000.00010000.00000000 = 172.16.16.0

Следовательно, устройства DeviceA и DeviceB имеют адреса, входящие в одну подсеть.

Упражнение 2

Имеется сеть класса C 204.15.5.0/24. Разделите эту сеть на подсети, чтобы создать сеть, приведенную на рис. 3, со всеми представленными на нем требованиями к узлам.

Рис. 3

/image/gif/paws/13788/3c.gif

Оценивая сеть, показанную на рис. 3, можно сказать, что необходимо создать пять подсетей. Самая большая подсеть должна содержать 28 адресов узлов. Возможно ли это при использовании сети класса C? И если да, то каким образом следует выполнить разделение на подсети?

Можно начать с оценки требования к подсетям. Чтобы создать пять подсетей, необходимо использовать три бита из битов узла класса C. Два бита позволят использовать только четыре подсети (22).

Так как понадобится три бита подсети, для части адреса, отвечающей за узел, останется только пять битов. Сколько узлов будет поддерживаться? 25 = 32 (30 доступных). Это отвечает требованиям.

Следовательно, можно создать эту сеть, используя сеть класса C. Пример назначения подсетей.

netA: 204.15.5.0/27      host address range 1 to 30
netB: 204.15.5.32/27     host address range 33 to 62
netC: 204.15.5.64/27     host address range 65 to 94
netD: 204.15.5.96/27     host address range 97 to 126
netE: 204.15.5.128/27    host address range 129 to 158

Пример VLSM

Следует обратить внимание на то, что в предыдущих примерах разделения на подсети во всех подсетях использовалась одна и та же маска подсети. Это означает, что каждая подсеть содержала одинаковое количество доступных адресов узлов. Иногда это может понадобиться, однако в большинстве случаев использование одинаковой маски подсети для всех подсетей приводит к неэкономному распределению адресного пространства. Например, в упражнении 2 сеть класса C разделена на восемь равных подсетей; однако в каждой подсети не применяются все доступные адреса узлов, что приводит к неэкономному использованию адресного пространства. На рис. 4показано утраченное адресное пространство.

Рис. 4

/image/gif/paws/13788/3d.gif

На рис. 4 показано, что в подсетях NetA, NetC и NetD имеется большое количество неиспользуемого адресного пространства. Возможно, это было сделано специально с учетом дальнейшего расширения, однако в большинстве случаев это всего лишь необдуманное разбиение адресного пространства вследствие применения одинаковой маски подсети для всех подсетей.

Маски подсетей переменной длины (VLSM) позволяют использовать различные маски для каждой подсети, что дает возможность более рационально распределять адресное пространство.

Пример VLSM

Используя ту же сеть и те же требования, которые были указаны в упражнении 2, разработайте схему разделения на подсети с применением VLSM:

netA: must support 14 hosts
netB: must support 28 hosts
netC: must support 2 hosts
netD: must support 7 hosts
netE: must support 28 host

Определите, какую маску подсети следует использовать, чтобы получить требуемое количество узлов.

netA: requires a /28 (255.255.255.240) mask to support 14 hosts
netB: requires a /27 (255.255.255.224) mask to support 28 hosts
netC: requires a /30 (255.255.255.252) mask to support 2 hosts
netD*: requires a /28 (255.255.255.240) mask to support 7 hosts
netE: requires a /27 (255.255.255.224) mask to support 28 hosts

* a /29 (255.255.255.248) would only allow 6 usable host addresses
  therefore netD requires a /28 mask.

Самым простым способом разделения на подсети является назначение сначала самой большой подсети. Например, подсети можно задать следующим образом:

netB: 204.15.5.0/27  host address range 1 to 30
netE: 204.15.5.32/27 host address range 33 to 62
netA: 204.15.5.64/28 host address range 65 to 78
netD: 204.15.5.80/28 host address range 81 to 94
netC: 204.15.5.96/30 host address range 97 to 98

Графическое представление приведено на рис. 5.

Рис. 5

/image/gif/paws/13788/3e.gif

На рис. 5 показано, как использование VLSM помогает сэкономить более половины адресного пространства.

CIDR

Бесклассовая междоменная маршрутизация (CIDR) была введена для повышения эффективности использования адресного пространства и обеспечения масштабируемости маршрутизации в сети Интернет. Необходимость в ней появилась вследствие быстрого роста Интернета и увеличения размера таблиц маршрутизации в маршрутизаторах сети Интернет.

В маршрутизации CIDR не используются традиционные IP-классы (класс A, класс B, класс C и т. д.). IP-сеть представлена префиксом, который является IP-адресом, и каким-либо обозначением длины маски. Длиной называется количество расположенных слева битов маски, которые представлены идущими подряд единицами. Так сеть 172.16.0.0 255.255.0.0 может быть представлена как 172.16.0.0/16. Кроме того, CIDR служит для описания иерархической структуры сети Интернет, где каждый домен получает свои IP-адреса от более верхнего уровня. Это позволяет выполнять сведение доменов на верхних уровнях. Если, к примеру, поставщик услуг Интернета владеет сетью 172.16.0.0/16, то он может предлагать своим клиентам сети 172.16.1.0/24, 172.16.2.0/24 и т. д. Однако при объявлении своего диапазона другим провайдерам ему достаточно будет объявить сеть 172.16.0.0/16.

Дополнительные сведения о CIDR см. в документах RFC 1518 leavingcisco.com и RFC 1519 leavingcisco.com.

Приложение

Пример конфигурации

Маршрутизаторы A и B соединены через последовательный интерфейс.

Маршрутизатор A

  hostname routera
  !
  ip routing
  !
  int e 0
  ip address 172.16.50.1 255.255.255.0
  !(subnet 50)
  int e 1 ip address 172.16.55.1 255.255.255.0
  !(subnet 55)
  int t 0 ip address 172.16.60.1 255.255.255.0
  !(subnet 60) int s 0
  ip address 172.16.65.1 255.255.255.0 (subnet 65)
  !S 0 connects to router B
  router rip
  network 172.16.0.0

Маршрутизатор B

  hostname routerb
  !
  ip routing
  !
  int e 0
  ip address 192.1.10.200 255.255.255.240
  !(subnet 192)
  int e 1
  ip address 192.1.10.66 255.255.255.240
  !(subnet 64)
  int s 0
  ip address 172.16.65.2 (same subnet as router A's s 0)
  !Int s 0 connects to router A
  router rip
  network 192.1.10.0
  network 172.16.0.0

Таблица количества узлов/подсетей

Class B                   Effective  Effective
# bits        Mask         Subnets     Hosts
-------  ---------------  ---------  ---------
  1      255.255.128.0           2     32766
  2      255.255.192.0           4     16382
  3      255.255.224.0           8      8190
  4      255.255.240.0          16      4094
  5      255.255.248.0          32      2046
  6      255.255.252.0          64      1022
  7      255.255.254.0         128       510
  8      255.255.255.0         256       254
  9      255.255.255.128       512       126
  10     255.255.255.192      1024        62
  11     255.255.255.224      2048        30
  12     255.255.255.240      4096        14
  13     255.255.255.248      8192         6
  14     255.255.255.252     16384         2

Class C                   Effective  Effective
# bits        Mask         Subnets     Hosts
-------  ---------------  ---------  ---------
  1      255.255.255.128      2        126 
  2      255.255.255.192      4         62
  3      255.255.255.224      8         30
  4      255.255.255.240     16         14
  5      255.255.255.248     32          6
  6      255.255.255.252     64          2

  
*Включены подсети "все нули" и "все единицы". Эти подсети могут не поддерживаться в некоторых старых системах.
*Не включены узлы "все нули" и "все единицы".

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Document ID: 13788