IP-адреса

Материал из Викиконспекты
Перейти к: навигация, поиск
Определение:
IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной по протоколу IP.


IPv4-адреса

IPv4 использует 32-битные адреса, ограничивающие адресное пространство 4 294 967 296 (232) возможными уникальными адресами. У каждого хоста и маршрутизатора в Интеренете есть IP-адрес. IP-адрес не имеет отношения к хосту. Он имеет отношение к сетевому интерфейсу, поэтому иногда хост или маршрутизатор могут иметь несколько IP-адресов.

IP-адреса имеют иерархическую организацию. Первая часть имеет переменную длину и задает сеть, а последняя указывает на хост.

Обычно IP-адреса записываются в виде 4 десятичных чисел, каждое в диапозоне от 0 до 255, разделенными точками (dot-decimal notation). Каждая часть представляет один байт адреса. Например, шестнадцатиричный адрес 80D00297 записывается как 128.208.2.151.


Определение:
Префикс — непрерывный блок пространства IP-адресов, соответствующий сети, в которой сетевая часть совпадает для всех хостов.


Префикс задается наименьшим IP-адресом в блоке и размером блока. Размер определяется числом битов в сетевой части, оставшиеся биты в части хоста могут варьироваться. Таким образом, размер является степенью двойки. Он записывается после префикса IP-адреса в виде слэша и длины сетевой части в битах. В предыдущем примере префикс содержит 28 адресов и поэтому для сетевой части отводится 24 бита. Записывается так: 128.208.2.0/24.


Классы IP-сетей

Также, сколько бит используется сетевым ID и сколько бит доступно для идентификации хостов (интерфейсов) в этой сети, определяется сетевыми классами.

Всего 3 класса IP-адресов:

  • Класс A. IP сетевых адресов использует левые 8 бит (самый левый байт) для указания сети, оставшиеся 24 бита (оставшиеся три байта) для идентификации интерфейса хоста в этой сети. Адреса класса A всегда имеют самый левый бит самого левого байта нулевым, то есть значения от 0 до 127 для первого байта в десятичной нотации. Таким образом доступно максимум 128 адресов сетей класса A, каждый из которых может содержать до 33,554,430 интерфейсов. Однако сети 0.0.0.0 (известная как маршрут по умолчанию) и 127.0.0.0 (loop back сеть) имеют специальное назначение и не доступны для использования в качестве идентификаторов сети. Поэтому доступно только 126 адресов сетей класса A.
  • Класс B. IP сетевых адресов использует левые 16 бит (два левых байта) для идентификации сети, оставшиеся 16 бит (последние два байта) указывают хостовые интерфейсы. Адрес класса B всегда имеет самые левые два бита установленными в 1 0. Таким образом для номера сети остается 14 бит, что дает 32767 доступных сетей класса B. Первый байт адреса сети класса B может принимать значения от 128 до 191, и каждая из таких сетей может иметь до 32,766 доступных интерфейсов.
  • Класс C. IP сетевых адресов использует левые 24 бит (три левых байта) для идентификации сети, оставшиеся 8 бит (последний байт) указывает хостовый интерфейс. Адрес класса С всегда имеет самые левые три бита установленными в 1 1 0. Таким образом для номера сети остается 14 бит, что дает 4,194,303 доступных сетей класса B. Первый байт адреса сети класса B может принимать значения от 192 до 255, и каждая из таких сетей может иметь до 254 доступных интерфейсов. Однако сети класса C с первым байтом больше, чем 223, зарезервированы и не используются.

Существует также специальные адреса, которые зарезервированы для 'несвязанных' сетей - это сети, которые используют IP, но не подключены к Internet. Вот эти адреса:

  • Одна сеть класса A: 10.0.0.0
  • 16 сетей класса B: 172.16.0.0 - 172.31.0.0
  • 256 сетей класса С: 192.168.0.0 - 192.168.255.0

Сетевые адреса, адреса интерфейсов и широковещательные адреса

IP адрес может означать одно из трех:

  • Адрес IP сети (группа IP устройств, имеющих доступ к общей среде передаче - например, все устройства в сегменте Ethernet). Сетевой адрес всегда имеет биты интерфейса (хоста) адресного пространства установленными в 0 (если сеть не разбита на подсети - как мы еще увидим);
  • Широковещательный адрес IP сети (адрес для 'разговора' со всеми устройствами в IP сети). Широковещательные адреса для сети всегда имеют интерфейсные (хостовые) биты адресного пространства установленными в 1 (если сеть не разбита на подсети - опять же, как мы вскоре увидим).
  • Адрес интерфейса (например Ethernet-адаптер или PPP интерфейс хоста, маршрутизатора, сервера печать итд). Эти адреса могут иметь любые значения хостовых битов, исключая все нули или все единицы - чтобы не путать с адресами сетей и широковещательными адресами.

Итого:

  • Для сети класса A: (один байт под адрес сети, три байта под номер хоста)
    • 10.0.0.0 сеть класса А, потому что все хостовые биты равны 0.
    • 10.0.1.0 адрес хоста в этой сети
    • 10.255.255.255 широковещательный адрес этой сети, поскольку все сетевые биты установлены в 1
  • Для сети класса B: (два байта под адрес сети, два байта под номер хоста)
    • 172.17.0.0 сеть класса B
    • 172.17.0.1 адрес хоста в этой сети
    • 172.17.255.255 сетевой широковещательный адрес
  • Для сети класса C: (три байта под адрес сети, один байт под номер хоста)
    • 192.168.3.0 адрес сети класса C
    • 192.168.3.42 хостовый адрес в этой сеть
    • 192.168.3.255 сетевой широковещательный адрес

Почти все доступные сетевые IP-адреса принадлежат классу C.

Маска подсети

Длина префикса не выводится из IP-адреса, поэтому протоколу маршрутизации вынуждены передавать префиксы на маршрутизаторы. Иногда префиксы задаются с помощью указания длины.


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


То есть маска подсети определяет как будут локально интерпретироваться IP адреса в сегменте IP сети, что для нас весьма важно, поскольку определяет процесс разбивки на подсети.

Стандартная маска подсети - все сетевые биты в адресе установлены в '1' и все хостовые биты установлены в '0'. Это означает, что стандартные маски подсети для трех классов сетей:

  • A класс - маска подсети: 255.0.0.0
  • B класс - маска подсети: 255.255.0.0
  • C класс - маска подсети: 255.255.255.0

Выполненение операции И между маской и IP-адресом позволяет выделить сетевую часть.

О маске подсети нужно помнить три вещи:

  • Маска подсети предназначена только для локальной интерпретации локальных IP адресов (где локальный значит - в том же сетевом сегменте);
  • Маска подсети - не IP адрес - она используется для локальной модификации интерпретации IP адреса.

Бесклассовая междоменная маршрутизация

Изначально использовалась классовая адресация (INET), но со второй половины 90-х годов XX века она была вытеснена бесклассовой адресацией (CIDR), при которой количество адресов в сети определяется маской подсети.

Никто не знает точно, сколько всего сетей подключено к Интернету, но очевидно, что их много — возможно, порядка миллиона. Различные алгоритмы маршрутизации требуют, чтобы каждый маршрутизатор обменивался информацией о доступных ему адресах с другими маршрутизаторами. Чем больше размер таблицы, тем больше данных необходимо передавать и обрабатывать. С ростом размера таблицы время обработки растет как минимум линейно. Чем больше данных приходится передавать, тем выше вероятность потери (в лучшем случае временной) части информации по дороге, что может привести к нестабильности работы алгоритмов выбора маршрутов.

К счастью, способ уменьшить размер таблиц маршрутизации все же существует. Применим тот же принцип, что и при разбиении на подсети: маршрутизатор может узнавать о расположении IP-адресов по префиксам различной длины. Но вместо того чтобы разделять сеть на подсети, мы объединим несколько коротких префиксов в один длинный. Этот процесс называется агрегацией маршрута (route aggregation). Длинный префикс, полученный в результате, иногда называют суперсетью (supernet), в противоположность подсетям с разделением блоков адресов.

При агрегации IP-адреса содержатся в префиксах различной длины. Один и тот же IP-адрес может рассматриваться одним маршрутизатором как часть блока /22 (содержащего 210 адресов), а другим — как часть более крупного блока /20 (содержащего 212 адресов). Это зависит от того, какой информацией обладает маршрутизатор. Такой метод работает и для разбиения на подсети и называется CIDR (Classless InterDomain Routing — бесклассовая междоменная маршрутизация).