Этот пост содержит информацию по следующим темам:
Прежде чем мы начнем создавать подсети адресных пространств IPv4, нам нужно посмотреть, для чего используется адрес IPv4, как он выглядит, как правильно записать его с помощью сетевых масок и какие классы адресов ролей ранее обслуживались.
ДЛЯ ЧЕГО ИСПОЛЬЗУЮТСЯ АДРЕСА IPV4?
Адресация IPv4 была создана, чтобы позволить одному конкретному цифровому устройству напрямую взаимодействовать с другим конкретным цифровым устройством. Это называется одноадресной связью. Но разработчики адресации IPv4 также хотели, чтобы одно устройство могло одновременно обмениваться данными со всеми устройствами в своей сети с помощью одного и того же сообщения. Если в вашей сети есть десять устройств, и одно из них хочет отправить одно и то же сообщение на все остальные устройства, использование одноадресной связи потребует, чтобы первое устройство отправило девять копий одного и того же сообщения на другие устройства. Это пустая трата полосы пропускания. Но с помощью трансляциисвязи первое устройство отправляет сообщение один раз, а все девять других хостов получают его. Это гораздо более эффективное использование пропускной способности. Устройства, предназначенные для использования адресов IPv4, запрограммированы на прием входящих сообщений как на свои индивидуальные, так и на широковещательные адреса.
Адрес IPv4 известен как иерархический адрес, поскольку его можно разделить на несколько более мелких доменов, каждый из которых затем определяет определенный аспект устройства. Адрес IPv4 в сочетании с маской подсети сообщает вам две части информации: сеть, в которой находится устройство, и уникальный идентификатор самого устройства.
Это отличается от MAC-адреса, который называется плоским адресом; это только говорит вам о самом устройстве. MAC-адрес дает вам уникальный идентификатор устройства, но не может сказать, где в сети находится это устройство. Адрес IPv4 может сообщить вам как о том, где в сети находится устройство, так и об уникальном идентификаторе самого устройства.
КАК ВЫГЛЯДИТ АДРЕС IPV4?
То, как компьютер или другое цифровое устройство видит IPv4-адрес, отличается от того, как люди видят IPv4-адрес. Цифровое устройство воспринимает IPv4-адрес как 32-битное число. Но люди придумали способ преобразовать это 32-битное число во что-то более простое для просмотра и работы. Для человека адрес IPv4 представляет собой 32-битное число, разбитое на четыре группы по 8 бит в каждой. Каждая группа из 8 битов называется октетом (или байтом), а четыре октета разделены точками:
11000000.10101000.00000001.00000001
Поскольку нам удобнее работать с десятичной системой счисления, эти двоичные октеты затем преобразуются в десятичную для простоты использования:
192.168.1.1
МАСКИ СЕТИ И ПОДСЕТИ
Поскольку адреса IPv4 являются иерархическими, необходимо каким-то образом различать сетевую часть адреса и часть узла. Для этого адрес IPv4 должен быть связан с маской сети , которую также иногда называют маской подсети или просто маской или маской подсети . Сетевая маска — это 32-битная строка двоичных символов, которая определяет, какая часть адреса представляет сеть, а какая — конкретный хост.
Правила создания сетевой маски следующие:
1 в маске подсети определяет сетевой бит.
0 в маске подсети определяет бит хоста.
Таким образом, адрес IPv4 сам по себе ничего нам не говорит. Мы можем сделать некоторые предположения, основываясь на другой информации, которая появится позже в этом блоге, но сейчас нам нужно иметь маску подсети в паре с IPv4-адресом, чтобы мы знали, где находится устройство и какова его уникальная идентификация.
Исторически сети были разбиты и разделены для использования с помощью классов адресов (которые будут обсуждаться позже в этом посте). Это было достигнуто за счет использования сетевых масок. Когда люди начали разбивать большие сети на более мелкие сети, известные как подсети, в обиход вошел термин маска подсети . Все эти термины теперь используются взаимозаменяемо.
СПОСОБЫ ЗАПИСИ МАСКИ СЕТИ ИЛИ ПОДСЕТИ
Существует три способа обозначения маски подсети:
В двоичном формате: 11111111.11111111.11111111.00000000
В десятичном виде: 255.255.255.0
В слеше: /24
Каждый из них говорит об одном и том же: первые 24 бита 32-битной маски равны 1, а последние 8 бит маски равны 0. Это говорит нам о том, что по сравнению с адресом IPv4 первые 24 бита определяют сеть. часть адреса, а последние 8 бит определяют часть адреса. Если мы вернемся к адресу из начала этого блога и добавим к нему эту маску подсети, то получим следующее:
11000000.10101000.00000001.00000001 (адрес)
11111111.11111111.11111111.00000000 (маска подсети)
192.168.1.1 255.255.255.0 (адрес и маска через один пробел)
192.168.1.1/24 (адрес и маска с использованием / для отделения адреса от маски)
Во всех трех случаях мы можем сказать, что сетевая часть адреса 192.168.1.1/24 — это 192.168.1, а хостовая часть — .1.
СЕТЬ, УЗЕЛ И ШИРОКОВЕЩАТЕЛЬНЫЕ АДРЕСА
Когда адресация IPv4 была впервые разработана, у устройств и людей должен был быть способ распознать, относится ли адрес к конкретному устройству или к группе устройств. Некоторые правила были созданы, чтобы помочь определить разницу между сетевым адресом и адресом узла (или хоста):
В IP-адресе:
Хостовая часть всех двоичных 0 относится к самой сети.
Часть хоста с комбинацией двоичных 0 и 1 относится к конкретному хосту.
Хостовая часть всех двоичных единиц относится к широковещательному адресу сети.
Так в чем же разница между этими тремя?
Сетевой адрес определяет всю сеть и все узлы внутри нее. Этот адрес не может быть назначен конкретному устройству.
Адрес хоста определяет одно конкретное устройство внутри этой сети. Этот адрес может быть назначен одному устройству.
Широковещательный адрес представляет все хосты в определенной сети. Все устройства в сети запрограммированы на прием сообщений, отправленных на этот адрес.
Возвращаясь к нашему исходному примеру 192.168.1.1/24, какую информацию мы можем теперь получить об этом адресе? Мы уже знаем, что на основе маски /24 сетевая часть — 192.168.1, а хостовая часть — .1. Мы знаем, что последние 8 бит являются битами хоста. Зная, что мы теперь знаем о сети, хосте и широковещательном адресе:
Все 0 в хостовой части адреса равны 00000000, что равно десятичному 0, поэтому сетевой адрес этой конкретной сети — 192.168.1.0.
Часть узла в двоичном формате равна 00000001, что равно 1 в десятичном виде, поэтому этот узел является первым узлом в сети.
Диапазон хостов в этой сети составляет от 00000001 до 11111110 в двоичном формате или от 1 до 254 в десятичном формате. В этой сети 254 уникальных адреса для устройств.
Широковещательный адрес этой сети 11111111, или все 1 в хостовой части. Это означает, что широковещательный адрес для этой сети — .255.
В виде диаграммы эта сеть будет выглядеть так:
Сетевой адрес | Диапазон действительных хостов | Широковещательный адрес |
192.168.1.0 | 192.168.1.1–192.168.1.254 | 192.168.1.255 |
КЛАССЫ АДРЕСОВ IPV4
Адреса IPv4 изначально были разделены на пять разных классов в зависимости от размера. Эти классы больше официально не используются, потому что такие концепции, как бесклассовая междоменная маршрутизация (CIDR) и тот факт, что больше не осталось адресов для раздачи, сделали классы адресов спорным вопросом. Но терминология по-прежнему используется, и многие ИТ-специалисты учились с помощью этой системы, так что это хорошая отправная точка для понимания сетей и, в конечном счете, подсетей сетей.
Классы адресов были разбиты на основе концепции, называемой начальным битовым шаблоном первого октета адреса IPv4. Помните, что машина считывает адресацию IPv4 как одно 32-битное число, поэтому все разработанные шаблоны основаны на двоичном коде. Это приводит к некоторым не столь очевидным десятичным группировкам адресов.
Классы были названы от A до E и имели характеристики, описанные в Таблице 1-1 .
Таблица 1-1 Классы адресов IPv4
Класс | Шаблон начального бита (первый октет) (в двоичном формате) | Первый октет (в десятичном формате) | Примечания |
А | 0 ххххххх ( x относится к оставшимся битам в октете и может быть равен 0 или 1) | 0–127 | 0 недействителен 10.0.0.0/8 зарезервирован только для частной внутренней маршрутизации (RFC 1918). 127 зарезервировано для проверки обратной связи. |
Б | 10 хххххх | 128–191 | 172.16.0.0/12 зарезервирован только для частной внутренней маршрутизации (RFC 1918). |
С | 110 ххххх | 192–223 | 192.168.0.0/16 зарезервирован только для частной внутренней маршрутизации (RFC 1918). |
Д | 1110 хххх | 224–239 | Зарезервировано для многоадресной рассылки; не может быть назначен на одноадресные хосты |
И | 1111 хххх | 240–255 | Зарезервировано для будущего использования/тестирования |
Классы A, B и C — единственные классы, которые можно использовать для одноадресной передачи. Класс D используется для многоадресной связи , что означает, что одно устройство может связываться с определенной группой хостов в сети (в отличие от широковещательной связи, когда одно устройство взаимодействует со всеми хостами в сети). Класс E зарезервирован для будущего использования и/или тестирования. Адреса класса E никогда не будут использоваться для одноадресной передачи.
Биты сети и узла (хоста)
В классах от A до C четыре октета адреса IPv4 были разбиты либо на сетевые октеты, либо на октеты узла (или хоста). На следующей диаграмме показано, как классы были разбиты на сетевые биты, называемые N битами, или биты узла (хоста), называемые H битами. Также показана маска подсети по умолчанию:
Класс адреса | Октет 1 | Октет 2 | Октет 3 | Октет 4 | Маска сети по умолчанию |
А | NNNNNNNN | ххххххх | ххххххх | ххххххх | /8 или 255.0.0.0 |
Б | NNNNNNNN | NNNNNNNN | ххххххх | ххххххх | /16 или 255.255.0.0 |
С | NNNNNNNN | NNNNNNNN | NNNNNNNN | ххххххх | /24 или 255.255.255.0 |
Эта диаграмма говорит нам больше о размерах различных классов адресов:
Сеть класса А имеет 24 бита, которые используются для назначения хостам. 2 · 24 = 16 777 216 адресов. Удаление двух хостов для сетевой идентификации (все 0 в части хоста) и широковещательной связи (все 1 в части хоста) означает, что каждая сеть класса A может содержать 16 777 214 уникальных устройств в одной сети.
Сеть класса B имеет 16 битов, доступных для назначения хоста. 2 · 16 = 65 536 хостов. Вычтите два адреса, зарезервированных для сети и широковещательной рассылки, и вы получите 65 534 действительных хоста на сеть класса B.
Сеть класса C имеет 8 битов, доступных для хостов. 2 8 = 256 хостов. Вычитание двух адресов, зарезервированных для сети и широковещательной рассылки, дает вам 254 действительных хоста на сеть класса C.
Объединив эти знания с информацией из диаграммы классов адресов IPv4, мы также можем сделать следующие выводы:
Существует 126 действительных сетей класса А по 16 777 214 действительных хостов в каждой.
Существует 16 384 действительных сети класса B по 65 534 действительных хоста в каждой.
Мы получаем 16 384 из-за того, что первые 16 бит адреса являются сетевыми битами, но первые два из них фиксированы по образцу 10. Это означает, что у нас осталось 14 бит действительных сетевых битов в диапазоне от 10 000000.00000000 (что 128,0) до 10 111111,11111111 (что равно 191,255). Это 16 384 различных сетей.
Существует 2 097 152 сети класса C по 254 действительных хоста в каждой.
Снова возьмем диаграмму, которая говорит, что имеется 24 N битов (сетевых битов), и три из этих битов фиксированы по шаблону 110. Это означает, что у нас остается 21 бит для назначения сетям в диапазоне 110 00000.00000000.00000000 ( 192.0.0) до 110 11111.11111111.11111111 (223.255.255). Это 2 097 152 отдельных сети.
Оглядываясь назад на наш первоначальный пример в этой статье 192.168.1.1/24, мы теперь знаем больше информации:
Сеть является сетью класса C.
Сеть находится в сети RFC 1918, что означает, что она является частной и может маршрутизироваться только внутри сети.
RFC (частный) 1918 Адреса
Адреса RFC 1918 были созданы, чтобы помочь замедлить исчерпание адресов IPv4. Адреса, являющиеся частью RFC 1918, должны использоваться только в частных внутренних сетях. Их можно маршрутизировать внутри сети, но не выпускать в публичный Интернет. Сегодня большинство компаний и домов используют в своих сетях частные внутренние адреса RFC 1918. Чтобы устройство, использующее адрес RFC 1918, могло выйти в общедоступный Интернет, этот адрес должен пройти через устройство, использующее преобразование сетевых адресов (NAT), и его частный адрес должен быть преобразован в приемлемый общедоступный адрес.
При первоначальном проектировании было выбрано использование 32-битных чисел, потому что считалось, что 2 32 уникальных адреса настолько велики, что никогда не будут достигнуты. Вот почему целая сеть класса А (127) была зарезервирована для проверки обратной связи. Вам нужен только один адрес для проверки обратной связи, но для этого теста было зарезервировано более 16 миллионов адресов — 24 бита хоста означают , что было зарезервировано 224 адреса, когда был нужен только один. 16 777 216 адресов могут показаться большим количеством, но помните, что два из этих адресов зарезервированы для сетевых и широковещательных адресов, поэтому у вас есть только 16 777 214 адресов, зарезервированных для проверки обратной связи. Чувствовать себя лучше?
В исходном дизайне классов адресов сеть, состоящая из всех двоичных нулей или всех двоичных единиц, считалась недействительной. Ранние устройства использовали строку из 0 или 1 в качестве внутренних кодов связи, поэтому их нельзя было использовать. Следовательно, сеть 0.0.0.0 и сеть 255.xxx недействительны. Сеть 255 является частью зарезервированного сетевого пространства класса E, поэтому у нас никогда не было возможности ее использовать, но сеть 0 является частью назначаемого адресного пространства класса A. Еще 16 777 214 адресов потеряны.
Первоначально мы думали, что 2 32 -битное адресное пространство будет невозможно достичь, но появление общедоступного Интернета, а затем и мобильных устройств привело к необходимости новой схемы адресации. IPv6 — это 128-битное адресное пространство. Достижение лимита в 2 128 адресов может показаться невозможным, но с появлением Интернета вещей (IoT) становится ли это невозможным?
Локальные и удаленные адреса
Когда два адреса находятся в одной сети, говорят, что они локальны друг для друга. Когда два адреса находятся в разных сетях, говорят, что они удалены друг от друга. Почему это различие важно? Локальные устройства могут напрямую связываться друг с другом. Удаленным устройствам потребуется устройство уровня 3 (например, маршрутизатор или коммутатор уровня 3) для облегчения связи между двумя конечными точками. Распространенная ошибка, возникающая в сетях после их разделения на более мелкие сети, заключается в том, что устройства, которые когда-то были локальными друг для друга, теперь являются удаленными, и без этого устройства уровня 3 связь больше не происходит. Возможность определить, являются ли два устройства локальными или удаленными, является ценным инструментом, помогающим устранять проблемы со связью.
БЕСКЛАССОВАЯ АДРЕСАЦИЯ
Хотя классовая адресация изначально использовалась на заре использования IPv4, быстро обнаружилась неэффективность этой жесткой схемы — кому на самом деле нужны 16 миллионов хостов в одной сети? Такие концепции, как CIDR и маскирование подсети переменной длины (VLSM), были созданы для обеспечения более эффективного распределения адресов и сетей IPv4.
В бесклассовой адресации все правила остаются прежними, за исключением одного: размера сетевой маски по умолчанию. При бесклассовой адресации маску сети можно изменить с размеров по умолчанию /8, /16 или /24, чтобы обеспечить необходимый размер сети. Например, обычной практикой является взять сеть класса A, такую как сеть RFC 1918 10.0.0.0, и разбить эту большую сеть на более мелкие, более управляемые.сети. Таким образом, вместо одной сети из 16,7 миллионов хостов мы можем использовать маску /16 и создать 256 сетей по 65 534 хоста в каждой:
10.0.0.0/8 (8 N бит 24 H бит) | = | Одна сеть из 16 777 214 хостов (2 24 бита для хостов) | 10.0.0.1–10.255.255.254 |
10.0.0.0/16 (16 N бит и 16 H бит) | = | Одна сеть из 65 534 хостов (2 16 - битных для хостов) | 10.0.0.1–10.0.255.254 |
10.1.0.0/16 | = | Одна сеть из 65 534 хостов | 10.1.0.1–10.1.255.254 |
10.2.0.0/16 | = | Одна сеть из 65 534 хостов | 10.2.0.1–10.2.255.254 |
… | |||
10.254.0.0/16 | = | Одна сеть из 65 534 хостов | 10.254.0.1–10.254.255.254 |
10.255.0.0/16 | = | Одна сеть из 65 534 хостов | 10.255.0.1–10.255.255.255 |
Мы можем доказать это, используя двоичный код, чтобы показать, что никакие другие правила IP-адресации не изменились:
N/H биты | N бит | H биты | ||
10.0.0.0/8 | = | 8 N и 24 H бит | 00001010 | 00000000 00000000 00000000 |
10.0.0.0/16 | = | 16 N и 16 H бит | 00001010 00000000 | 00000000 00000000 |
10.1.0.0/16 | = | 16 N и 16 H бит | 00001010 00000001 | 00000000 00000000 |
10.2.0.0/16 | = | 16 N и 16 H бит | 00001010 00000010 | 00000000 00000000 |
… | ||||
10.254.0.0/16 | = | 16 N и 16 H бит | 00001010 11111110 | 00000000 00000000 |
10.255.0.0/16 | = | 16 N и 16 H бит | 00001010 11111111 | 00000000 00000000 |
Правила для сети, действительного хоста и широковещательных адресов также не изменились. Если мы возьмем столбец из H бит выше и разобьем его дальше, мы получим следующее:
Битовая часть адреса хоста | |||
Адрес | Сетевой адрес (все 0 в битах H) | Диапазон действительных хостов | Широковещательный адрес (все 1 в H битах) |
10.0.0.0/16 | 00000000 00000000 (10.0.0.0) | 00000000 00000001–11111111 11111110 (10.0.0.1–10.0.255.254) | 11111111 11111111 (10.0.255.255) |
10.1.0.0/16 | 00000000 00000000 (10.1.0.0) | 00000000 00000001–11111111 11111110 (10.1.0.1–10.1.255.254) | 11111111 11111111 (10.1.255.255) |
Другим распространенным случаем является использование сети класса A и использование маски по умолчанию класса C для создания 65 536 сетей по 254 хоста в каждой сети:
10.0.0.0/8 (8 N бит и 24 H бит) | = | Одна сеть из 16 777 214 хостов (2 24 бита для хостов) | 10.0.0.1–10.255.255.254 |
10.0.0.0/24 (16 N и 16 H бит) | = | Одна сеть из 254 хостов (2 по 16 бит для хостов) | 10.0.0.1–10.0.0.254 |
10.0.1.0/24 | = | Одна сеть из 254 хостов | 10.0.1.1–10.0.1.254 |
10.0.2.0/24 | = | Одна сеть из 254 хостов | 10.0.2.1–10.0.2.254 |
… | |||
10.255.254.0/24 | = | Одна сеть из 254 хостов | 10.255.254.1–10.255.255.254 |
10.255.255.0/24 | = | Одна сеть из 254 хостов | 10.255.255.1–10.255.255.254 |
Третий распространенный случай — взять сеть класса B и использовать маску по умолчанию класса C для создания 256 сетей по 254 хоста в каждой сети:
172.16.0.0/16 (16 N бит и 16 H бит) | = | Одна сеть из 65 534 хостов (216 бит для хостов) | 10.0.0.1–10.255.255.254 |
172.16.0.0/24 (16 N и 16 H бит) | = | Одна сеть из 254 хостов (28 бит для хостов) | 172.16.0.1–172.16.0.254 |
172.16.1.0/24 | = | Одна сеть из 254 хостов | 172.16.1.1–172.16.1.254 |
172.16.2.0/24 | = | Одна сеть из 254 хостов | 172.16.2.1–172.16.2.254 |
… | |||
172.16.254.0/24 | = | Одна сеть из 254 хостов | 172.16.254.1–172.16.255.254 |
172.16.255.0/24 | = | Одна сеть из 254 хостов | 172.16.255.1–172.16.255.254 |
Во всех этих примерах мы разбили одну большую сеть на множество более мелких и более управляемых сетей. Это называется подсетью . В следующем разделе будет показано, как это сделать для подсети любого размера, который может вам понадобиться.
ИТОГИ
Вы узнали, что простой IPv4-адрес и маска сети говорят нам много информации.
192.168.1.1/24 говорит нам:
Сетевая часть этого адреса — 192.168.1.
Мы обозначаем это как 192.168.1.0/24.
Хостовая часть этого адреса — .1.
В этой сети 254 действительных хоста в диапазоне от .1 до .254.
Это первый действительный хост в этой сети.
Хосты с адресами от .2 до .254 в этой сети будут локальными для этого устройства и, следовательно, смогут напрямую связываться с .1.
Широковещательный адрес для этой сети — 192.168.1.255/24.
Все единицы в основной части равны 11111111 или 0,255.
Это адрес класса C.
Первый октет имеет число 192.
Это допустимый адрес, который может быть назначен устройству для одноадресной связи.
Он не зарезервирован для других целей, таких как многоадресный адрес класса D.
Он не зарезервирован для тестирования/использования в будущем, как адрес класса E.
Он не зарезервирован для петлевого тестирования.
Это не является недопустимым, как сети 0 или 255.
Это не сетевой адрес или широковещательный адрес.