Что такое структура ip адреса
Подробно и понятно об IP адресах
В сетях используется 2 типа адресов: Локальные и Глобальные адреса. Локальные это адреса в технологии канального уровня, они привязаны к конкретной технологии, этому могут быть MAC адреса в Ethernet, или IMEI в сетях сотовой связи. Такие адреса не могут использоваться для построение крупной составной сети, которые объединяют сети использующие разные технологии. Чтобы это сделать, в модели взаимодействие открытых систем водиться сетевой уровень, а на нём используются глобальные адреса.
Глобальные адреса это адреса сетевого уровня, и в стеке протокола TCP/IP это как раз IP адреса. Глобальные адреса не привязаны к технологии канального уровня, и с их помощью можно построить такую сеть, которая объединяет подсети построены на разных технологиях канального уровня. И передавать данные из этих сетей друг другу.
IP адреса
Вид глобальных адресов, которые мы рассматриваем в этой статье это IP адреса, которые используются в стеке протоколов TCP/IP. и Интернет. IP адреса нужны для уникальной идентификации компьютеров в крупной составной сети, которая может включать в себя весь мир, например сети Интернет, и различные части сети интернет построенные на разных технологиях канального уровня.
Сейчас есть 2-е версии протокола IP: версия IPv4 и IPv6. Основное отличие между версиями протоколов в длине IP адреса. В IPv4 длина адреса 4 байта, а в IPv6 длина адреса 16 байт.
Длина адреса IPv4 — 32 бита, 4 байта. И чтобы людям было удобно работать с такими IP адресами их делят на 4 части.
В каждой части по 8 бит, такая часть называется октет. Каждый октет записывают в десятичном формате, и форма записи IP адреса следующая: четыре октета разделенных точкой (213.180.193.3). С таким видом деления адресов людям гораздо удобнее работать, чем с записью в двоичной форме длиной в 32 бита.
IP-адреса и IP-сети
Одна из задач сетевого уровня обеспечить масштабирование, построить такую сеть, которая может работать в масштабах всего мира. Для этого сетевой уровень работает не с отдельными компьютерами, а с подсетями, которые объединяют множество компьютеров.
В IP объединение происходит следующим образом, подсеть это некое количество компьютеров, у которых одинаковая старшая часть IP-адреса. В примере ниже у данного диапазона адресов одинаковые первые 3 октета, и отличается только последний октет.
И маршрутизаторы, устройства передающие информацию на сетевом уровне, работают уже не с отдельными IP адресами, а с подсетями.
Структура IP адреса
Наш IP адрес состоит из 2 частей:
Маска подсети
Как по IP адресу узнать, где адрес сети, а где адрес хоста. Для этого используется Маска подсети. Маска также, как IP адрес состоит из 32 бит, и она устроена следующим образом: там где в IP адресе находится номер сети маска содержит 1, а там где указан номер хоста 0.
Подробный пример разобран в видео на 4:50 минуте.
Есть два способа указать маску подсети. Десятичное представление в виде префикса.
В десятичном представление маска записывается в формате похожем на формат IP адреса. 32 разделенные на 4 октета по 8 бит и каждый из этих 8 бит переведены в десятичное представление, они записываются через точку.
Маска в десятичном представление выглядит так 255.255.255.0
Другой формат записи маски в виде префикса. В этом случае указывается, сколько первых бит IP адреса относится к адресу сети, а всё остальное, считается, что относится к адресу хоста.
Префикс записывается через слэш (/).
213.180.193.3/24 это означает что первые 24 бита, то есть 3 октета относится к адресу к сети, а последний октет к адресу хоста.
Оба эти представления эквивалентны. Если мы запишем маску подсети в десятичном виде, либо виде префикса, мы получаем одинаковый адрес подсети.
Важно понимать, что маска подсети не обязательно должна заканчиваться на границе октетов. Хотя, так делают часто, чтобы людям было удобно работать с такими адресами сетей и хостов, но это делать не всегда удобно. Например, если у вас сеть достаточно крупная, то вам можно ее разбить на несколько более маленьких частей. А для этого приходится использовать маски переменной длины, именно так называются маски подсети которые не заканчиваются на границе октета.
Подробный пример на видео выше на минуте 8:20.
Устаревшие классы IP адресов
Маски подсети это современный способ, который позволяет определить, где в IP адресе находится адрес подсети, а где адрес хоста. Ранее использовался другой адрес на основе классов IP адресов. Сейчас этот метод уже не используется он устарел. Однако в интернете и книгах вы наверняка встретите напоминание классов адресов, поэтому мы рассмотрим, как они были устроены.
Весь диапазон адресов был разделен на несколько классов, в которых было четко задано местоположение адресов сети и адрес хоста. Класс определялся по первым битам. Всего было 5 классов (A,B,C,D,E)
В настоящие время групповые адреса все еще выделяются именно из диапазона 224.0.0.0 — 239.255.255.255.
А зарезервированный диапазон все еще не используется 240.0.0.0. — 255.255.255.255.
Типы IP-адресов
В IPv4 используется 3 типа адресов:
Широковещательный адрес
Широковещательный адрес в IP имеют следующий формат: (1.18)
Часть которая относится к адресу сети остается без изменений, а в той части, которая относится к адресу хоста записываются в битовые единицы.
Мы уже встречались с широковещательными адресами в технологии канального уровня Ethernet. Важным отличием широковещательных адресов в сетевом уровне, является то, что широковещательные адреса используются только в пределах в одной подсети.
Маршрутизаторы не передают широковещательные пакеты в другую сеть, иначе можно очень быстро завалить всю глобальную сеть, в том числе весь Интернет, мусорными широковещательными пакетами.
Два широковещательных адреса
В IP используется 2 типа широковещательных адресов подходящих для двух различных сценарий (2.22)
Предположим что у нас есть 2 подсети объединенные между собой маршрутизатором. Если мы хотим отправить широковещательный пакет в рамках одной сети это называется ограниченное широковещание. В этом случае мы может использовать специальный широковещательный адрес, который состоит из всех битовых единиц (255.255.255.255). В этом случае данные получат все компьютеры в сети, а через маршрутизатор данные не пройдут.
Другой сценарий, когда компьютер, который находится за пределами нашей сети, хочет передать широковещательный пакет всем компьютерам, которые находится в нашей сети это называется направленное широковещание. В этом случае широковещательный IP адрес будет выглядеть 192.168.0.255, адрес подсети, в которую мы хотим отправить широковещательный пакет и битовые единицы в той части, которая относится к адресу хоста. Как произойдет обработка такого пакета? Пакет передаётся маршрутизатору и маршрутизатор уже разошлёт этот пакет в широковещательном режиме, но только в передах одной подсети, для которой предназначается этот широковещательный пакет.
Специальные типы IP-адресов
Какие бывают специальные типы IP адресов:
В номере хоста нельзя использовать только битовые 0, и только битовые 1. Если мы укажем только битовые 0, то это получится не адрес хоста, а адрес подсети 213.180.193.0.
А если укажем только битовые 1, то это будет широковещательный адрес. 213.180.193.255.
Часто, маршрутизатору по умолчанию в сети, или шлюзу, через которые все компьютеры сети попадают в интернет, присваивают адрес с номером 1. Однако четких правил нет, так делать не обязательно 213.180.193.1.
Адрес который состоит из всех 0.0.0.0 это адрес текущего хоста. Он используется, когда компьютер еще не получил свой IP адрес.
Адрес из всех битовых единиц, 255.255.255.255 это все хосты в текущей подсети (ограниченный широковещательный адрес).
127.0.0.0/8 это обратная петля, специальный диапазон адресов, который выделен для того чтобы отлаживать сетевые приложения, если у вас нет сетевого оборудование или оно настроено не так как вам нужно, в этом случае данные не отправляются в сеть, а приходят обратно на компьютер. Часто из этой сети используется адрес 127.0.0.1 это текущий компьютер (localhost). Однако не обязательно для этой цели использовать адрес с хостом 1, можно использовать 2, 3 или другой любой IP адрес из этого диапазона.
IP адреса из подсети 169.254.0.0/16 называются Link-local адреса. Случае если вы не настроили IP адрес на своем ПК вручную или каким либо другим способом, например с помощью протокола DHCP, то операционная система сама может назначить компьютеру адрес из этого диапазона. Такие адреса могут использоваться только в пределах подсети и не проходят через маршрутизатор.
Распределение IP адресов
Так как IP адреса являются глобальными адресами и используются для построение сетей, которые могут потенциально объединять все компьютеры в мире такие как сеть интернет, то каждый компьютер должен иметь уникальный IP адрес во всем мире.
Если у нас будет несколько компьютеров с одним IP адресом, то мы не сможем понять к какому компьютеру должны отправить наши данные. Чтобы обеспечить уникальность адресов в интернет, есть специальный подход, IP адреса нельзя брать любые какие вы хотите, а необходимо получить разрешение на использование IP адреса у Internet Assigned Number Authority (IANA), сейчас функции IANA реализуются корпорацией ICANN (Internet Corporation for Assigned Names and Numbers) — Корпорация Интернет для распределения имен и номеров. Именно эта организация отвечает за распределение IP адресов во всем мире.
Однако организация делает это не напрямую, а с помощью региональных регистраторов. В каждом регионе есть свой регистратор, который взаимодействует с компанией ICANN и распределяет IP адреса. Россия и Европа относится к региональному регистратору RIPE.
Частные IP-адреса
Однако есть такие случае, когда вы создаете сеть, которая использует IP адреса, но при этом она не подключена к Интернету. Например, внутренняя сеть организации или внутренняя сеть класса, в которой вы просто тестируете какие-то сетевые технологии. Было бы очень неудобно обращаться к региональному регистратору, для того чтобы просить IP адреса для такой сети. Специально для этого случая выделены несколько диапазонов частных IP адресов, это такие IP адреса, которые можно использовать в подсетях, которые не подключаются к интернету. При этом обращаться к ICANN для получения IP адреса не нужно. Диапазон частных IP адресов определен в документе RFC 1918 и он включает следующее:
Особенность этих адресов в том, что они не маршрутизируются в Интернет. Однако, есть возможность подключить сеть, построенную на основе частных адресов к Интернет, для этого используется технология Трансляция сетевых адресов NAT (Network Address Translation). В этом случае адрес из частной подсети заменяется на реальный IP адрес.
Исчерпание IP-адресов
Достаточно давно есть проблема исчерпание IP адресов. Длина IP адреса 32 бита это означает, что максимальный число IP адресов чуть больше, чем 4 млрд, и этого было достаточно когда проектировались сети TCP/IP, но сейчас из за того что Интернет получил такое большое распространение, 4 млрд IP адресов для всего мира оказалось недостаточно. Сейчас почти сейчас IPv4 адреса уже распределены, если вы захотите подключиться к интернету и получить адрес IPv4 то вряд ли вы это сможете сделать.
Как можно решить проблему исчерпания ip адресов
Заключение
Мы закончили рассматривать IP адреса, протокола IPv4 у нас есть 3 типа адресов:
IP адреса должны быть уникальны во всем мире, поэтому нельзя использовать любой IP адрес? необходимо получать разрешение на использование. Этим занимается Корпорация Интернет ICANN для распределение имен и номеров, поэтому нужно обращаться к ней. Если вы строите сеть, которую не подключаете к Интернет, можно использовать любой IP адрес из диапазона частных IP адресов. Важно понимать что адреса IPv4 уже почти закончились, и необходимо переходить на протокол версия IPv6, либо использовать технологию NAT для подключению Интернету.
Что такое структура ip адреса
Каждый компьютер в сети TCP/IP имеет адреса трех уровней:
Три основных класса IP-адресов
IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме, и разделенных точками, например:
На рисунке 3.1 показана структура IP-адреса.
1 | 1 | 0 | N сети | N узла |
1 | 1 | 1 | 0 | адрес группы multicast |
1 | 1 | 1 | 1 | 0 | зарезервирован |
Рис. 3.1. Структура IР-адреса
В таблице приведены диапазоны номеров сетей, соответствующих каждому классу сетей.
Класс | Наименьший адрес | Наибольший адрес | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A | 01.0.0 | 126.0.0.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
B | 128.0.0.0 | 191.255.0.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C | 192.0.1.0. | 223.255.255.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
D | 224.0.0.0 | 239.255.255.255 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
E | 240.0.0.0 | 247.255.255.255 |
Соглашения о специальных адресах: broadcast, multicast, loopback
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов:
то он обозначает адрес того узла, который сгенерировал этот пакет;
то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет;
то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast);
то пакет, имеющий такой адрес рассылается всем узлам сети с заданным номером. Такая рассылка называется широковещательным сообщением (broadcast);
Отображение физических адресов на IP-адреса: протоколы ARP и RARP
В протоколе IP-адрес узла, то есть адрес компьютера или порта маршрутизатора, назначается произвольно администратором сети и прямо не связан с его локальным адресом, как это сделано, например, в протоколе IPX. Подход, используемый в IP, удобно использовать в крупных сетях и по причине его независимости от формата локального адреса, и по причине стабильности, так как в противном случае, при смене на компьютере сетевого адаптера это изменение должны бы были учитывать все адресаты всемирной сети Internet (в том случае, конечно, если сеть подключена к Internet’у).
Локальный адрес используется в протоколе IP только в пределах локальной сети при обмене данными между маршрутизатором и узлом этой сети. Маршрутизатор, получив пакет для узла одной из сетей, непосредственно подключенных к его портам, должен для передачи пакета сформировать кадр в соответствии с требованиями принятой в этой сети технологии и указать в нем локальный адрес узла, например его МАС-адрес. В пришедшем пакете этот адрес не указан, поэтому перед маршрутизатором встает задача поиска его по известному IP-адресу, который указан в пакете в качестве адреса назначения. С аналогичной задачей сталкивается и конечный узел, когда он хочет отправить пакет в удаленную сеть через маршрутизатор, подключенный к той же локальной сети, что и данный узел.
В локальных сетях протокол ARP использует широковещательные кадры протокола канального уровня для поиска в сети узла с заданным IP-адресом.
Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP запросе отправитель указывает свой локальный адрес. ARP-запросы и ответы используют один и тот же формат пакета. Так как локальные адреса могут в различных типах сетей иметь различную длину, то формат пакета протокола ARP зависит от типа сети. На рисунке 3.2 показан формат пакета протокола ARP для передачи по сети Ethernet.
Рис. 3.2. Формат пакета протокола ARP
В поле типа сети для сетей Ethernet указывается значение 1. Поле типа протокола позволяет использовать пакеты ARP не только для протокола IP, но и для других сетевых протоколов. Для IP значение этого поля равно 080016.
Узел, отправляющий ARP-запрос, заполняет в пакете все поля, кроме поля искомого локального адреса (для RARP-запроса не указывается искомый IP-адрес). Значение этого поля заполняется узлом, опознавшим свой IP-адрес.
В глобальных сетях администратору сети чаще всего приходится вручную формировать ARP-таблицы, в которых он задает, например, соответствие IP-адреса адресу узла сети X.25, который имеет смысл локального адреса. В последнее время наметилась тенденция автоматизации работы протокола ARP и в глобальных сетях. Для этой цели среди всех маршрутизаторов, подключенных к какой-либо глобальной сети, выделяется специальный маршрутизатор, который ведет ARP-таблицу для всех остальных узлов и маршрутизаторов этой сети. При таком централизованном подходе для всех узлов и маршрутизаторов вручную нужно задать только IP-адрес и локальный адрес выделенного маршрутизатора. Затем каждый узел и маршрутизатор регистрирует свои адреса в выделенном маршрутизаторе, а при необходимости установления соответствия между IP-адресом и локальным адресом узел обращается к выделенному маршрутизатору с запросом и автоматически получает ответ без участия администратора.
Отображение символьных адресов на IP-адреса: служба DNS
База данных DNS имеет структуру дерева, называемого доменным пространством имен, в котором каждый домен (узел дерева) имеет имя и может содержать поддомены. Имя домена идентифицирует его положение в этой базе данных по отношению к родительскому домену, причем точки в имени отделяют части, соответствующие узлам домена.
Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций используются следующие аббревиатуры:
Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Internet однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN), которое включает имена всех доменов по направлению от хоста к корню. Пример полного DNS-имени :
Как уже было сказано, IP-адреса могут назначаться администратором сети вручную. Это представляет для администратора утомительную процедуру. Ситуация усложняется еще тем, что многие пользователи не обладают достаточными знаниями для того, чтобы конфигурировать свои компьютеры для работы в интерсети и должны поэтому полагаться на администраторов.
Протокол Dynamic Host Configuration Protocol (DHCP) был разработан для того, чтобы освободить администратора от этих проблем. Основным назначением DHCP является динамическое назначение IP-адресов. Однако, кроме динамического, DHCP может поддерживать и более простые способы ручного и автоматического статического назначения адресов.
В ручной процедуре назначения адресов активное участие принимает администратор, который предоставляет DHCP-серверу информацию о соответствии IP-адресов физическим адресам или другим идентификаторам клиентов. Эти адреса сообщаются клиентам в ответ на их запросы к DHCP-серверу.
При автоматическом статическом способе DHCP-сервер присваивает IP-адрес (и, возможно, другие параметры конфигурации клиента) из пула наличных IP-адресов без вмешательства оператора. Границы пула назначаемых адресов задает администратор при конфигурировании DHCP-сервера. Между идентификатором клиента и его IP-адресом по-прежнему, как и при ручном назначении, существует постоянное соответствие. Оно устанавливается в момент первичного назначения сервером DHCP IP-адреса клиенту. При всех последующих запросах сервер возвращает тот же самый IP-адрес.
При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на ограниченное время, что дает возможность впоследствии повторно использовать IP-адреса другими компьютерами. Динамическое разделение адресов позволяет строить IP-сеть, количество узлов в которой намного превышает количество имеющихся в распоряжении администратора IP-адресов.
DHCP обеспечивает надежный и простой способ конфигурации сети TCP/IP, гарантируя отсутствие конфликтов адресов за счет централизованного управления их распределением. Администратор управляет процессом назначения адресов с помощью параметра «продолжительности аренды» (lease duration), которая определяет, как долго компьютер может использовать назначенный IP-адрес, перед тем как снова запросить его от сервера DHCP в аренду.
Примером работы протокола DHCP может служить ситуация, когда компьютер, являющийся клиентом DHCP, удаляется из подсети. При этом назначенный ему IP-адрес автоматически освобождается. Когда компьютер подключается к другой подсети, то ему автоматически назначается новый адрес. Ни пользователь, ни сетевой администратор не вмешиваются в этот процесс. Это свойство очень важно для мобильных пользователей.
Протокол DHCP использует модель клиент-сервер. Во время старта системы компьютер-клиент DHCP, находящийся в состоянии «инициализация», посылает сообщение discover (исследовать), которое широковещательно распространяется по локальной сети и передается всем DHCP-серверам частной интерсети. Каждый DHCP-сервер, получивший это сообщение, отвечает на него сообщением offer (предложение), которое содержит IP-адрес и конфигурационную информацию.
Компьютер-клиент DHCP переходит в состояние «выбор» и собирает конфигурационные предложения от DHCP-серверов. Затем он выбирает одно из этих предложений, переходит в состояние «запрос» и отправляет сообщение request (запрос) тому DHCP-серверу, чье предложение было выбрано.
Выбранный DHCP-сервер посылает сообщение DHCP-acknowledgment (подтверждение), содержащее тот же IP-адрес, который уже был послан ранее на стадии исследования, а также параметр аренды для этого адреса. Кроме того, DHCP-сервер посылает параметры сетевой конфигурации. После того, как клиент получит это подтверждение, он переходит в состояние «связь», находясь в котором он может принимать участие в работе сети TCP/IP. Компьютеры-клиенты, которые имеют локальные диски, сохраняют полученный адрес для использования при последующих стартах системы. При приближении момента истечения срока аренды адреса компьютер пытается обновить параметры аренды у DHCP-сервера, а если этот IP-адрес не может быть выделен снова, то ему возвращается другой IP-адрес.
В протоколе DHCP описывается несколько типов сообщений, которые используются для обнаружения и выбора DHCP-серверов, для запросов информации о конфигурации, для продления и досрочного прекращения лицензии на IP-адрес. Все эти операции направлены на то, чтобы освободить администратора сети от утомительных рутинных операций по конфигурированию сети.
Однако использование DHCP несет в себе и некоторые проблемы. Во-первых, это проблема согласования информационной адресной базы в службах DHCP и DNS. Как известно, DNS служит для преобразования символьных имен в IP-адреса. Если IP-адреса будут динамически изменятся сервером DHCP, то эти изменения необходимо также динамически вносить в базу данных сервера DNS. Хотя протокол динамического взаимодействия между службами DNS и DHCP уже реализован некоторыми фирмами (так называемая служба Dynamic DNS), стандарт на него пока не принят.
Во-вторых, нестабильность IP-адресов усложняет процесс управления сетью. Системы управления, основанные на протоколе SNMP, разработаны с расчетом на статичность IP-адресов. Аналогичные проблемы возникают и при конфигурировании фильтров маршрутизаторов, которые оперируют с IP-адресами.
Наконец, централизация процедуры назначения адресов снижает надежность системы: при отказе DHCP-сервера все его клиенты оказываются не в состоянии получить IP-адрес и другую информацию о конфигурации. Последствия такого отказа могут быть уменьшены путем использовании в сети нескольких серверов DHCP, каждый из которых имеет свой пул IP-адресов.