В статье рассказываем, что такое маска подсети, как ее узнать, где использовать и как она связана с основным шлюзом и IP-адресами.
Что такое подсеть
В одном из значений сеть — это группа устройств под одним управлением, способных коммуницировать между собой. Также сеть означает диапазон IP-адресов — выделенный или полученный от регистратора — для конкретной физической сети. Например, выбранный приватный диапазон 10.0.0.0/8 или полученный от регистратора диапазон внешних адресов 192.0.2.0/24.
Чтобы сети между собой не пересекались, для удобства и разделения доступа, сеть делится на сегменты.
Подсеть, помимо меньшего физического сегмента большой сети, также означает диапазон адресов меньшего размера, созданный путем деления более крупной сети на равные непересекающиеся части. Размер подсети определяется маской подсети.
Что такое IP-адрес
IP — Internet Protocol, межсетевой протокол — на модели OSI это протокол третьего сетевого уровня. Его главная задача — адресация узлов сети и маршрутизация пакетов до них. Ключевые сущности для межсетевого протокола: IP-адрес, маска подсети и маршрут.
Теперь к понятию IP-адреса. Это уникальный идентификатор устройства (ПК, мобильного телефона, принтера и т.д.) в компьютерной сети, содержащий данные о нем.
Из чего состоит IP-адрес: IPv4 в двоичной системе и IPv6
IPv4
В версии протокола IPv4 адрес представляет собой 4-байтовое или 32-битное число. Для удобства можно реализовать перевод IP-адреса в двоичную систему. В таком случае он записывается с разбивкой по октетам в двоично-десятичном представлении — каждое число от 0 до 255 соответствует одному байту в адресе. Самый популярный пример — адрес многих роутеров 192.168.0.1.
IPv6
В версии IPv6 длина адреса составляет 128 бит, что расширяет возможности адресации. Обычно адрес принимает вид 8 четырехзначных шестнадцатеричных чисел, для упрощения адрес записывают с пропуском начальных нулей. IP-адрес 1050:0000:0000:0000:0005:0600:300c:326b можно записать как 1050:0:0:0:5:600:300c:326b.
Утверждается, что протокол IPv6 может обеспечить до 5·1028 адресов на каждого жителя Земли. Новая версия протокола была введена из-за недостатка адресов IPv4 и для иерархичности адресов, что упрощает маршрутизацию.
Создайте свой сервер
Просто подберите нужную конфигурацию.
А мы предоставим ресурсы и публичный IP-адрес.
Открыть конфигуратор →
Стек протоколов и сетевая модель TCP/IP
TCP — Transmission Control Protocol, протокол контроля передачи — протокол 4 транспортного уровня модели OSI. Его ключевые функции — мониторинг передачи данных, сегментация данных при отправке и сборке пакетов в правильном порядке при получении.
TCP обеспечивает надежную доставку пакетов за счет установления предварительного логического соединения методом «трех рукопожатий», или 3-way handshake, — периодического подтверждения доставки пакетов и переотправки потерянных.
Ключевой сущностью для протокола TCP является порт — 16-битное целое число от 1 до 65535. Данное число позволяет идентифицировать конкретное приложение на узле, отправляющее трафик (порт отправителя) либо принимающее на удаленном узле (порт получателя).
Стек протоколов и сетевая модель TCP/IP имеет более упрощенное разделение по уровням, чем сетевая модель OSI, но покрывает все предоставляемые ею функции. Вместо семи уровней OSI стек TCP/IP состоит из четырех:
- уровень приложений — сетевой протокол верхнего уровня, использует HTTP, RTSP, SMTP,
- транспортный уровень — TCP, UDP,
- сетевой уровень — IP,
- канальный уровень — DHCP, ARP.
Для работы с маской подсети стоит отдельно упомянуть прикладной протокол DHCP — Dynamic Host Configuration Protocol, протокол динамической конфигурации хоста. Это широковещательный протокол, позволяющий хосту получить настройки IP в автоматическом режиме без необходимости ручной настройки. В настройки входит IP-адрес, маска подсети, основной шлюз, DNS-серверы.
Подробнее о протоколе TCP →
Что такое маска подсети
Маска подсети — 32-битное число, служащее битовой маской для разделения сетевой части (адреса подсети) и части хоста IP-адреса. Состоит из последовательности от 0 до 32 двоичных единиц, после которых остаток разрядов представляют двоичные нули. Их смешение недопустимо. Устройства в одной подсети имеют одинаковый адрес подсети и передают данные на канальном уровне.
Устройства в разных подсетях коммуницируют через маршрутизацию. Как и IP-адрес, маска может быть записана в двоично-десятичной форме (например, 255.255.0.0) или в виде префикса в CIDR-нотации — числом от 0 до 32, обозначающего длину маски в битах. Например, в подсети 192.0.2.0/24 значение /24 — это маска, равная 255.255.255.0.
Маршрутизатор и основной шлюз подсети
Пересылку пакетов данных между разными IP-сетями осуществляет маршрутизатор, или роутер, — устройство, представляющее собой компьютер с несколькими сетевыми интерфейсами, на котором установлено специальное ПО для маршрутизации.
Маршрут — запись в таблице маршрутизации о следующем устройстве в сети (адрес машины или сетевой интерфейс), которому следует направить пакеты для пересылки в конечную сеть.
Таблица маршрутизации хранится в памяти роутера, ее главная функция — описание соответствия между адресами назначения и интерфейсами, через которые необходимо отправить данные до следующего маршрутизатора.
Основной шлюз — устройство или специальная ОС, которые обеспечивают коммуникацию сетей. Сейчас TCP/IP — самый популярный стек, и шлюз фактически стал синонимом маршрутизатора. Шлюз по умолчанию — маршрут до подсетей, не имеющих в таблице маршрутизации специфического маршрута.
При наличии двух маршрутов с разной маской для одного IP-адреса выбирается более специфический маршрут — с самой длинной маской, то есть в самую меньшую подсеть из доступных.
Адресный план
Составление адресного плана — это разбиение IP-пространства на подсети одинакового размера. Процесс необходим для повышения безопасности и производительности. Например, предприятию необходимо разграничить работу отделов: в каждой подсети будут определенные устройства — HR-отдел не получит доступ к подсети финансистов, но у всех будет разрешение на доступ к серверам.м
Маска подсети позволяет вычислить, кто находится в одной подсети. Компьютеры подсети обмениваются данными напрямую, а запрос на выход в интернет идет через шлюз по умолчанию.
Агрегация
Агрегация — процесс объединения мелких префиксов с длинной маской и малым количеством хостов в крупные — с короткой маской и множеством хостов. С помощью агрегации минимизируется необходимая информация для маршрутизатора, которую он использует для поиска пути передачи в сети.
Классовая адресация
Классовая адресация — архитектура сетевой адресации, которая делит адресное пространство протокола IPv4 на пять классов адресов: A для больших сетей, B для средних, C для небольших, D и E — служебные сети.
Принадлежность к одному из классов задается первыми битами адреса. Класс определяет количество возможных адресов хостов внутри сети. Модель классовой адресации использовали до появления CIDR.
Бесклассовая адресация
CIDR — Classless InterDomain Routing, бесклассовая междоменная маршрутизация. Это метод адресации, который позволяет гибко управлять пространством IP-адресов за счет отсутствия жестких рамок предыдущей модели.
VLSM — Variable Length Subnet Mask, переменная длина маски подсети — ключевая сущность бесклассовой адресации. При CIDR маска может быть любой длины от 0 до 32 бит, тогда как в случае классовой адресации маске подсети давалось фиксированное значение в зависимости от класса: 8, 16 или 24 бит.
VLSM повышает удобство использования подсетей, поскольку они могут быть разного размера. Допустим, администратору нужно управлять четырьмя отделами с определенным количеством компьютеров: продажи и закупки (120 компьютеров), разработка (50), аккаунты (26) и отдел управления (5).
IP администратора 192.168.1.0/24. Для каждого сегмента производится расчет размера блока, который больше или равен фактической потребности, представляющей собой сумму адресов хостов, широковещательных адресов и сетевых адресов. Список возможных подсетей:
Обозначение | Хосты/подсети |
/24 | 254 |
/25 | 126 |
/26 | 62 |
/27 | 30 |
/28 | 14 |
/29 | 6 |
/30 | 2 |
Все сегменты располагаются в порядке убывания на основе размера блока от наибольшего до наименьшего требования.
Наибольший доступный IP должен быть выделен для самых больших потребностей, то есть для самого большого количества ПК. У отдела продаж и закупок — 120 ПК. Он получает 192.168.1.0/25, который имеет 126 действительных адресов, легко доступные для 120 хостов. Используемая маска подсети 255.255.255.128.
Следующий сегмент — отдел разработки — требует IP для обслуживания 50 хостов. IP-подсеть с сетевым номером 192.168.1.128/26 является следующей по величине, которая может быть назначена для 62 хостов, таким образом выполняя требование отдела. Маска будет иметь значение 255.255.255.192.
Аналогично следующая IP подсеть 192.168.1.192/27 может удовлетворить требования аккаунт-отдела, так как она имеет 30 действительных IP-хостов, которые могут быть назначены 26 компьютерам. Используемая маска подсети 255.255.255.224.
Последний сегмент требует 5 действительных хостов IP, которые могут быть выполнены подсетью 192.168.1.224/29 с маской 255.255.255.248. Можно было бы выбрать IP с маской 255.255.255.240, но он имеет 14 действительных хостов IP. Поскольку требования меньше — выбирается наиболее сопоставимый вариант.
Будущее IP-адресов — архитектура RINA
Если вы решите использовать подсети, маски будут необходимы для обеспечения того, чтобы входящий трафик направлялся к нужным хост-устройствам и от них. Даже если у вас относительно небольшая система, маски подсети могут сыграть важную роль в ее надежной и бесперебойной работе.
Возможная технология будущего для IP-адресов — Recursive InterNetwork Architecture. RINA — новая сетевая архитектура, основанная на фундаментальном принципе, что сетевое взаимодействие — это межпроцессное взаимодействие (IPC). Она рекурсирует службу IPC в различных диапазонах.
Архитектура RINA обладает свойствами, которые по своей сути решают давние проблемы сетевого взаимодействия. Прежде всего, повторяющаяся структура ее модели распределенного IPC позволяет ей неограниченно масштабироваться, что позволяет избежать текущих проблем с растущими таблицами маршрутизации. Кроме того, RINA рассматривает каждый DIF как частную сеть, что обеспечивает внутреннюю безопасность.
Параметр | Десятичная запись | Шестнадцатеричная запись | Двоичная запись |
IP адрес | 176.194.91.112 | B0.C2.5B.70 | 10110000.11000010.01011011.01110000 |
---|---|---|---|
Префикс маски подсети | /24 | ||
Маска подсети | 255.255.255.0 | FF.FF.FF.00 | 11111111.11111111.11111111.00000000 |
Обратная маска подсети (wildcard mask) | 0.0.0.255 | 00.00.00.FF | 00000000.00000000.00000000.11111111 |
IP адрес сети | 176.194.91.0 | B0.C2.5B.00 | 10110000.11000010.01011011.00000000 |
Широковещательный адрес | 176.194.91.255 | B0.C2.5B.FF | 10110000.11000010.01011011.11111111 |
IP адрес первого хоста | 176.194.91.1 | B0.C2.5B.01 | 10110000.11000010.01011011.00000001 |
IP адрес последнего хоста | 176.194.91.254 | B0.C2.5B.FE | 10110000.11000010.01011011.11111110 |
Количество доступных адресов | 256 | ||
Количество рабочих адресов для хостов | 254 |
Ссылка на эту страницу: shootnick.ru/ip_calc/176.194.91.112/24
Так же у нас есть IPv6 калькулятор подсетей
Познавательное о IPv4 …
IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Первая широко используемая версия. Протокол описан в RFC 791 (сентябрь 1981 года), заменившем RFC 760 (январь 1980 года).
IPv4 использует 32-битные (четырёхбайтные) адреса, ограничивающие адресное пространство 4 294 967 296 (232) возможными уникальными адресами.
Традиционной формой записи IPv4 адреса является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками. Через дробь указывается длина маски подсети.
IP-адрес состоит из двух частей: номера сети и номера узла. В случае изолированной сети её адрес может быть выбран администратором из специально зарезервированных для таких сетей блоков адресов (10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16). Если же сеть должна работать как составная часть Интернета, то адрес сети выдаётся провайдером либо региональным интернет-регистратором (Regional Internet Registry, RIR). Согласно данным на сайте IANA, существует пять RIR: ARIN, обслуживающий Северную Америку, а также Багамы, Пуэрто-Рико и Ямайку; APNIC, обслуживающий страны Южной, Восточной и Юго-Восточной Азии, а также Австралии и Океании; AfriNIC, обслуживающий страны Африки; LACNIC, обслуживающий страны Южной Америки и бассейна Карибского моря; и RIPE NCC, обслуживающий Европу, Центральную Азию, Ближний Восток. Региональные регистраторы получают номера автономных систем и большие блоки адресов у IANA, а затем выдают номера автономных систем и блоки адресов меньшего размера локальным интернет-регистраторам (Local Internet Registries, LIR), обычно являющимся крупными провайдерами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Маршрутизатор по определению входит сразу в несколько сетей. Поэтому каждый порт маршрутизатора имеет собственный IP-адрес. Конечный узел также может входить в несколько IP-сетей. В этом случае компьютер должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом, IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.
Есть два способа определения того, сколько бит отводится на маску подсети, а сколько — на IP-адрес. Изначально использовалась классовая адресация (INET), но со второй половины 90-х годов XX века она была вытеснена бесклассовой адресацией (CIDR), при которой количество адресов в сети определяется маской подсети.
Иногда встречается запись IP-адресов вида «192.168.5.0/24». Данный вид записи заменяет собой указание диапазона IP-адресов. Число после косой черты означает количество единичных разрядов в маске подсети. Для приведённого примера маска подсети будет иметь двоичный вид 11111111 11111111 11111111 00000000 или то же самое в десятичном виде: «255.255.255.0». 24 разряда IP-адреса отводятся под номер сети, а остальные 32-24=8 разрядов полного адреса — под адреса хостов этой сети, адрес этой сети и широковещательный адрес этой сети. Итого, 192.168.5.0/24 означает диапазон адресов хостов от 192.168.5.1 до 192.168.5.254, а также 192.168.5.0 — адрес сети и 192.168.5.255 — широковещательный адрес сети. Для вычисления адреса сети и широковещательного адреса сети используются формулы:
- адрес сети = IP.любого_компьютера_этой_сети AND MASK (адрес сети позволяет определить, что компьютеры в одной сети)
- широковещательный адрес сети = IP.любого_компьютера_этой_сети OR NOT(MASK) (широковещательный адрес сети воспринимается всеми компьютерами сети как дополнительный свой адрес, то есть пакет на этот адрес получат все хосты сети как адресованные лично им. Если на сетевой интерфейс хоста, который не является маршрутизатором пакетов, попадёт пакет, адресованный не ему, то он будет отброшен).
Запись IP-адресов с указанием через слэш маски подсети переменной длины также называют CIDR-адресом в противоположность обычной записи без указания маски, в операционных системах типа UNIX также именуемой INET-адресом.
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов: если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast). Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, в сети 192.168.5.0 с маской 255.255.255.0 пакет с адресом 192.168.5.255 доставляется всем узлам этой сети. Такая рассылка называется широковещательным сообщением (direct broadcast).
IP-адрес называют статическим (постоянным, неизменяемым), если он назначается пользователем в настройках устройства, либо назначается автоматически при подключении устройства к сети и не может быть присвоен другому устройству.
IP-адрес называют динамическим (непостоянным, изменяемым), если он назначается автоматически при подключении устройства к сети и используется в течение ограниченного промежутка времени, указанного в сервисе назначавшего IP-адрес (DHCP).
Для получения IP-адреса клиент может использовать один из следующих протоколов:
- DHCP (RFC 2131) — наиболее распространённый протокол настройки сетевых параметров.
- BOOTP (RFC 951) — простой протокол настройки сетевого адреса, обычно используется для бездисковых станций.
- IPCP (RFC 1332) в рамках протокола PPP (RFC 1661).
- Zeroconf (RFC 3927) — протокол настройки сетевого адреса, определения имени, поиск служб.
- RARP (RFC 903) Устаревший протокол, использующий обратную логику (из аппаратного адреса — в логический) популярного и поныне в широковещательных сетях протокола ARP. Не поддерживает распространения информации о длине маски (не поддерживает VLSM).
Адреса, используемые в локальных сетях, относят к частным. К частным относятся IP-адреса из следующих сетей:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Также для внутреннего использования:
- 127.0.0.0/8 — используется для коммуникаций внутри хоста.
- 169.254.0.0/16 — используется для автоматической настройки сетевого интерфейса в случае отсутствия DHCP (за исключением первой и последней /24 подсети).
Полный список описания сетей для IPv4 представлен в RFC 6890.
«Subnet» redirects here. For subnets in the mathematics of topology, see Subnet (mathematics).
Creating a subnet by dividing the host identifier
A subnetwork or subnet is a logical subdivision of an IP network.[1]: 1, 16 The practice of dividing a network into two or more networks is called subnetting.
Computers that belong to the same subnet are such that their IP addresses begin with a common binary prefix. This results in the partitioning of an IP address into two fields: the network number or routing prefix and the rest field or host identifier. The rest field is an identifier for a specific host or network interface.
The routing prefix may be expressed in Classless Inter-Domain Routing (CIDR) notation written as the first address of a network, followed by a slash character (/), and ending with the bit-length of the prefix. For example, 198.51.100.0/24 is the prefix of the Internet Protocol version 4 network starting at the given address, having 24 bits allocated for the network prefix, and the remaining 8 bits reserved for host addressing. Addresses in the range 198.51.100.0 to 198.51.100.255 belong to this network, with 198.51.100.255 as the subnet broadcast address. The IPv6 address specification 2001:db8::/32 is a large address block with 296 addresses, having a 32-bit routing prefix.
For IPv4, a network may also be characterized by its subnet mask or netmask, which is the bitmask that, when applied by a bitwise AND operation to any IP address in the network, yields the routing prefix. Subnet masks are also expressed in dot-decimal notation like an IP address. For example, the prefix 198.51.100.0/24 would have the subnet mask 255.255.255.0.
Traffic is exchanged between subnetworks through routers when the routing prefixes of the source address and the destination address differ. A router serves as a logical or physical boundary between the subnets.
The benefits of subnetting an existing network vary with each deployment scenario. In the address allocation architecture of the Internet using CIDR and in large organizations, efficient allocation of address space is necessary. Subnetting may also enhance routing efficiency, or have advantages in network management when subnetworks are administratively controlled by different entities in a larger organization. Subnets may be arranged logically in a hierarchical architecture, partitioning an organization’s network address space into a tree-like routing structure, or other structures such as meshes.
Network addressing and routing[edit]
The concept of subnetting the IPv4 address space 200.100.10.0/24, which contains 256 addresses, into two smaller address spaces, namely 200.100.10.0/25 and 200.100.10.128/25 with 128 addresses each.
Computers participating in a network such as the Internet each have at least one network address. Usually, this address is unique to each device and can either be configured automatically with the Dynamic Host Configuration Protocol (DHCP) by a network server, manually by an administrator, or automatically by stateless address autoconfiguration.
An address fulfills the functions of identifying the host and locating it on the network. The most common network addressing architecture is Internet Protocol version 4 (IPv4), but its successor, IPv6, has been increasingly deployed since approximately 2006. An IPv4 address consists of 32 bits. An IPv6 address consists of 128 bits. In both systems, an IP address is divided into two logical parts, the network prefix and the host identifier. All hosts on a subnetwork have the same network prefix. This prefix occupies the most-significant bits of the address. The number of bits allocated within a network to the prefix may vary between subnets, depending on the network architecture. The host identifier is a unique local identification and is either a host number on the local network or an interface identifier.
This addressing structure permits the selective routing of IP packets across multiple networks via special gateway computers, called routers, to a destination host if the network prefixes of origination and destination hosts differ, or sent directly to a target host on the local network if they are the same. Routers constitute logical or physical borders between the subnets, and manage traffic between them. Each subnet is served by a designated default router but may consist internally of multiple physical Ethernet segments interconnected by network switches.
The routing prefix of an address is identified by the subnet mask, written in the same form used for IP addresses. For example, the subnet mask for a routing prefix that is composed of the most-significant 24 bits of an IPv4 address is written as 255.255.255.0.
The modern standard form of specification of the network prefix is CIDR notation, used for both IPv4 and IPv6. It counts the number of bits in the prefix and appends that number to the address after a slash (/) character separator. This notation was introduced with Classless Inter-Domain Routing (CIDR).[2]
In IPv6 this is the only standards-based form to denote network or routing prefixes.
For example, the IPv4 network 192.0.2.0 with the subnet mask 255.255.255.0 is written as 192.0.2.0/24, and the IPv6 notation 2001:db8::/32 designates the address 2001:db8:: and its network prefix consisting of the most significant 32 bits.
In classful networking in IPv4, before the introduction of CIDR, the network prefix could be directly obtained from the IP address, based on its highest-order bit sequence. This determined the class (A, B, C) of the address and therefore the subnet mask. Since the introduction of CIDR, however, the assignment of an IP address to a network interface requires two parameters, the address and a subnet mask.
Given an IPv4 source address, its associated subnet mask, and the destination address, a router can determine whether the destination is on a locally connected network or a remote network. The subnet mask of the destination is not needed, and is generally not known to a router.[3] For IPv6, however, on-link determination is different in detail and requires the Neighbor Discovery Protocol (NDP).[4][5] IPv6 address assignment to an interface carries no requirement of a matching on-link prefix and vice versa, with the exception of link-local addresses.
Since each locally connected subnet must be represented by a separate entry in the routing tables of each connected router, subnetting increases routing complexity. However, by careful design of the network, routes to collections of more distant subnets within the branches of a tree hierarchy can be aggregated into a supernetwork and represented by single routes.
Internet Protocol version 4[edit]
Determining the network prefix[edit]
An IPv4 subnet mask consists of 32 bits; it is a sequence of ones (1) followed by a block of zeros (0). The ones indicate bits in the address used for the network prefix and the trailing block of zeros designates that part as being the host identifier.
The following example shows the separation of the network prefix and the host identifier from an address (192.0.2.130) and its associated /24 subnet mask (255.255.255.0). The operation is visualized in a table using binary address formats.
Binary form | Dot-decimal notation | |
---|---|---|
IP address | 11000000.00000000.00000010.10000010 | 192.0.2.130 |
Subnet mask | 11111111.11111111.11111111.00000000 | 255.255.255.0 |
Network prefix | 11000000.00000000.00000010.00000000 | 192.0.2.0 |
Host identifier | 00000000.00000000.00000000.10000010 | 0.0.0.130 |
The result of the bitwise AND operation of IP address and the subnet mask is the network prefix 192.0.2.0. The host part, which is 130, is derived by the bitwise AND operation of the address and the one’s complement of the subnet mask.
Subnetting[edit]
Subnetting is the process of designating some high-order bits from the host part as part of the network prefix and adjusting the subnet mask appropriately. This divides a network into smaller subnets. The following diagram modifies the above example by moving 2 bits from the host part to the network prefix to form four smaller subnets each one quarter of the previous size.
Binary form | Dot-decimal notation | |
---|---|---|
IP address | 11000000.00000000.00000010.10000010 | 192.0.2.130 |
Subnet mask | 11111111.11111111.11111111.11000000 | 255.255.255.192 |
Network prefix | 11000000.00000000.00000010.10000000 | 192.0.2.128 |
Host part | 00000000.00000000.00000000.00000010 | 0.0.0.2 |
Special addresses and subnets[edit]
IPv4 uses specially designated address formats to facilitate recognition of special address functionality. The first and the last subnets obtained by subnetting a larger network have traditionally had a special designation and, early on, special usage implications.[6] In addition, IPv4 uses the all ones host address, i.e. the last address within a network, for broadcast transmission to all hosts on the link.
The first subnet obtained from subnetting a larger network has all bits in the subnet bit group set to zero. It is therefore called subnet zero.[7] The last subnet obtained from subnetting a larger network has all bits in the subnet bit group set to one. It is therefore called the all-ones subnet.[8]
The IETF originally discouraged the production use of these two subnets. When the prefix length is not available, the larger network and the first subnet have the same address, which may lead to confusion. Similar confusion is possible with the broadcast address at the end of the last subnet. Therefore, reserving the subnet values consisting of all zeros and all ones on the public Internet was recommended,[9] reducing the number of available subnets by two for each subnetting. This inefficiency was removed, and the practice was declared obsolete in 1995 and is only relevant when dealing with legacy equipment.[10]
Although the all-zeros and the all-ones host values are reserved for the network address of the subnet and its broadcast address, respectively, in systems using CIDR all subnets are available in a subdivided network. For example, a /24 network can be divided into sixteen usable /28 networks. Each broadcast address, i.e. *.15, *.31, …, *.255, reduces only the host count in each subnetwork.
Subnet host count[edit]
The number of subnetworks available and the number of possible hosts in a network may be readily calculated. For instance, the 192.168.5.0/24 network may be subdivided into the following four /26 subnets. The highlighted two address bits become part of the network number in this process.
Network | Network (binary) | Broadcast address |
---|---|---|
192.168.5.0/26 | 11000000.10101000.00000101.00000000 | 192.168.5.63 |
192.168.5.64/26 | 11000000.10101000.00000101.01000000 | 192.168.5.127 |
192.168.5.128/26 | 11000000.10101000.00000101.10000000 | 192.168.5.191 |
192.168.5.192/26 | 11000000.10101000.00000101.11000000 | 192.168.5.255 |
The remaining bits after the subnet bits are used for addressing hosts within the subnet. In the above example, the subnet mask consists of 26 bits, making it 255.255.255.192, leaving 6 bits for the host identifier. This allows for 62 host combinations (26−2).
In general, the number of available hosts on a subnet is 2h−2, where h is the number of bits used for the host portion of the address. The number of available subnets is 2n, where n is the number of bits used for the network portion of the address.
There is an exception to this rule for 31-bit subnet masks,[11] which means the host identifier is only one bit long for two permissible addresses. In such networks, usually point-to-point links, only two hosts (the endpoints) may be connected and a specification of network and broadcast addresses is not necessary.
Internet Protocol version 6[edit]
The design of the IPv6 address space differs significantly from IPv4. The primary reason for subnetting in IPv4 is to improve efficiency in the utilization of the relatively small address space available, particularly to enterprises. No such limitations exist in IPv6, as the large address space available, even to end-users, is not a limiting factor.
As in IPv4, subnetting in IPv6 is based on the concepts of variable-length subnet masking (VLSM) and the Classless Inter-Domain Routing methodology. It is used to route traffic between the global allocation spaces and within customer networks between subnets and the Internet at large.
A compliant IPv6 subnet always uses addresses with 64 bits in the host identifier.[12] Given the address size of 128 bits, it therefore has a /64 routing prefix. Although it is technically possible to use smaller subnets,[13] they are impractical for local area networks based on Ethernet technology, because 64 bits are required for stateless address autoconfiguration.[14] The Internet Engineering Task Force recommends the use of /127 subnets for point-to-point links, which have only two hosts.[15][16]
IPv6 does not implement special address formats for broadcast traffic or network numbers,[17] and thus all addresses in a subnet are acceptable for host addressing. The all-zeroes address is reserved as the subnet-router anycast address.[18] The subnet router anycast address is the lowest address in the subnet, so it looks like the “network address”. If a router has multiple subnets on the same link, then it has multiple subnet router anycast addresses on that link.[19] The first and last address in any network or subnet is not allowed to be assigned to any individual host.[20]
In the past, the recommended allocation for an IPv6 customer site was an address space with a 48-bit (/48) prefix.[21] However, this recommendation was revised to encourage smaller blocks, for example using 56-bit prefixes.[22] Another common allocation size for residential customer networks has a 64-bit prefix.
See also[edit]
- Autonomous system (Internet)
References[edit]
- ^ Jeffrey Mogul; Jon Postel (August 1985). Internet Standard Subnetting Procedure. IETF. doi:10.17487/RFC0950. RFC 950. Updated by RFC 6918.
- ^ V. Fuller; T. Li (August 2006). Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan. Network Working Group. doi:10.17487/RFC4632. RFC 4632.
- ^ R. Braden, ed. (October 1989). Requirements for Internet Hosts — Communication Layers. Network Working Group IETF. sec. 3.3.1. doi:10.17487/RFC1122. RFC 1122. Updated by RFC 1349, RFC 4379, RFC 5884, RFC 6093, RFC 6298, RFC 6633, RFC 6864, RFC 8029.
- ^ T. Narten; E. Nordmark; W. Simpson; H. Soliman (September 2007). Neighbor Discovery for IP version 6 (IPv6). Network Working Group. doi:10.17487/RFC4861. RFC 4861.
- ^ H. Singh; W. Beebee; E. Nordmark (July 2010). IPv6 Subnet Model: The Relationship between Links and Subnet Prefixes. IETF. doi:10.17487/RFC5942. RFC 5942.
- ^ «Document ID 13711 — Subnet Zero and the All-Ones Subnet». Cisco Systems. 2005-08-10. Retrieved 2010-04-25.
Traditionally, it was strongly recommended that subnet zero and the all-ones subnet not be used for addressing. […] Today, the use of subnet zero and the all-ones subnet is generally accepted and most vendors support their use.
- ^ «Document ID 13711 — Subnet Zero and the All-Ones Subnet». Cisco Systems. 2005-08-10. Retrieved 2010-04-23.
the first […] subnet[…], known as subnet zero
- ^ «Document ID 13711 — Subnet Zero and the All-Ones Subnet». Cisco Systems. 2005-08-10. Retrieved 2010-04-23.
[…] the last subnet[…], known as […] the all-ones subnet
- ^ Jeffrey Mogul; Jon Postel (August 1985). Internet Standard Subnetting Procedure. IETF. p. 6. doi:10.17487/RFC0950. RFC 950.
It is useful to preserve and extend the interpretation of these special addresses in subnetted networks. This means the values of all zeros and all ones in the subnet field should not be assigned to actual (physical) subnets.
- ^ Troy Pummill; Bill Manning (December 1995). Variable Length Subnet Table For IPv4. IETF. doi:10.17487/RFC1878. RFC 1878.
This practice is obsolete! Modern software will be able to utilize all definable networks.
(Informational RFC, demoted to category Historic) - ^ A. Retana; R. White; V. Fuller; D. McPherson (December 2000). Using 31-Bit Prefixes on IPv4 Point-to-Point Links. doi:10.17487/RFC3021. RFC 3021.
- ^ R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture — section 2.5.1. Interface Identifiers. IETF. sec. 2.5.1. doi:10.17487/RFC4291. RFC 4291.
For all unicast addresses, except those that start with the binary value 000, Interface IDs are required to be 64 bits long and to be constructed in Modified EUI-64 format.
(Updated by RFC 5952, RFC 6052, RFC 7136, RFC 7346, RFC 7371, RFC 8064.) - ^ S. Thomson; T. Narten; T. Jinmei (September 2007). IPv6 Stateless Address Autoconfiguration — section 5.5.3.(d) Router Advertisement Processing. IETF. sec. 5.5.3. doi:10.17487/RFC4862. RFC 4862.
It is the responsibility of the system administrator to ensure that the lengths of prefixes contained in Router Advertisements are consistent with the length of interface identifiers for that link type. […] an implementation should not assume a particular constant. Rather, it should expect any lengths of interface identifiers.
(Updated by RFC 7527.) - ^ M. Crawford (December 1998). Transmission of IPv6 Packets over Ethernet Networks — section 4 Stateless Autoconfiguration. IETF. sec. 4. doi:10.17487/RFC2464. RFC 2464.
The Interface Identifier [AARCH] for an Ethernet interface is based on the EUI-64 identifier [EUI64] derived from the interface’s built-in 48-bit IEEE 802 address. […] An IPv6 address prefix used for stateless autoconfiguration [ACONF] of an Ethernet interface must have a length of 64 bits.
(Updated by RFC 6085, RFC 8064.) - ^ M. Kohno; B. Nitzan; R. Bush; Y. Matsuzaki; L. Colitti; T. Narten (April 2011). Using 127-Bit IPv6 Prefixes on Inter-Router Links. IETF. doi:10.17487/RFC6164. RFC 6164.
On inter-router point-to-point links, it is useful, for security and other reasons, to use 127-bit IPv6 prefixes.
- ^ W. George (February 2012). RFC 3627 to Historic Status. IETF. doi:10.17487/RFC6547. RFC 6547.
This document moves «Use of /127 Prefix Length Between Routers Considered Harmful» (RFC 3627) to Historic status to reflect the updated guidance contained in «Using 127-Bit IPv6 Prefixes on Inter-Router Links» (RFC 6164).
- ^ R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture — section 2 IPv6 Addressing. IETF. sec. 2. doi:10.17487/RFC4291. RFC 4291.
There are no broadcast addresses in IPv6, their function being superseded by multicast addresses. […] In IPv6, all zeros and all ones are legal values for any field, unless specifically excluded.
- ^ R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture — section 2.6.1 Required Anycast Address. IETF. sec. 2.6.1. doi:10.17487/RFC4291. RFC 4291.
This anycast address is syntactically the same as a unicast address for an interface on the link with the interface identifier set to zero.
- ^ «Subnet Router Anycast Addresses – what are they, how do they work? – Into6».
- ^ «TCP/IP addressing and subnetting — Windows Client».
- ^ «IPv6 Addressing Plans». ARIN IPv6 Wiki. Retrieved 2010-04-25.
All customers get one /48 unless they can show that they need more than 65k subnets. […] If you have lots of consumer customers you may want to assign /56s to private residence sites.
- ^ T. Narten; G. Huston; L. Roberts (March 2011). IPv6 Address Assignment to End Sites. IETF. doi:10.17487/RFC6177. ISSN 2070-1721. BCP 157. RFC 6177.
APNIC, ARIN, and RIPE have revised the end site assignment policy to encourage the assignment of smaller (i.e., /56) blocks to end sites.
Further reading[edit]
- Requirements for IPv4 Routers. doi:10.17487/RFC1812. RFC 1812.
- Utility of subnets of Internet networks. doi:10.17487/RFC0917. RFC 917.
- DNS Encodings of Network Names and Other Type. doi:10.17487/RFC1101. RFC 1101.
- Blank, Andrew G. (2006). TCP/IP Foundations. Wiley. ISBN 9780782151138.
- Lammle, Todd (2005). CCNA Cisco Certified Network Associate Study Guide 5th Edition. San Francisco, London: Sybex.
- Groth, David; Skandier, Toby (2005). Network + Study Guide (4th ed.). San Francisco, London: Wiley.
External links[edit]
Wikiversity has learning resources about Subnetting
- Cisco-IP Addressing and Subnetting for New Users
- Subnetworking at Curlie
- Netmask Quick Reference Chart
«Subnet» redirects here. For subnets in the mathematics of topology, see Subnet (mathematics).
Creating a subnet by dividing the host identifier
A subnetwork or subnet is a logical subdivision of an IP network.[1]: 1, 16 The practice of dividing a network into two or more networks is called subnetting.
Computers that belong to the same subnet are such that their IP addresses begin with a common binary prefix. This results in the partitioning of an IP address into two fields: the network number or routing prefix and the rest field or host identifier. The rest field is an identifier for a specific host or network interface.
The routing prefix may be expressed in Classless Inter-Domain Routing (CIDR) notation written as the first address of a network, followed by a slash character (/), and ending with the bit-length of the prefix. For example, 198.51.100.0/24 is the prefix of the Internet Protocol version 4 network starting at the given address, having 24 bits allocated for the network prefix, and the remaining 8 bits reserved for host addressing. Addresses in the range 198.51.100.0 to 198.51.100.255 belong to this network, with 198.51.100.255 as the subnet broadcast address. The IPv6 address specification 2001:db8::/32 is a large address block with 296 addresses, having a 32-bit routing prefix.
For IPv4, a network may also be characterized by its subnet mask or netmask, which is the bitmask that, when applied by a bitwise AND operation to any IP address in the network, yields the routing prefix. Subnet masks are also expressed in dot-decimal notation like an IP address. For example, the prefix 198.51.100.0/24 would have the subnet mask 255.255.255.0.
Traffic is exchanged between subnetworks through routers when the routing prefixes of the source address and the destination address differ. A router serves as a logical or physical boundary between the subnets.
The benefits of subnetting an existing network vary with each deployment scenario. In the address allocation architecture of the Internet using CIDR and in large organizations, efficient allocation of address space is necessary. Subnetting may also enhance routing efficiency, or have advantages in network management when subnetworks are administratively controlled by different entities in a larger organization. Subnets may be arranged logically in a hierarchical architecture, partitioning an organization’s network address space into a tree-like routing structure, or other structures such as meshes.
Network addressing and routing[edit]
The concept of subnetting the IPv4 address space 200.100.10.0/24, which contains 256 addresses, into two smaller address spaces, namely 200.100.10.0/25 and 200.100.10.128/25 with 128 addresses each.
Computers participating in a network such as the Internet each have at least one network address. Usually, this address is unique to each device and can either be configured automatically with the Dynamic Host Configuration Protocol (DHCP) by a network server, manually by an administrator, or automatically by stateless address autoconfiguration.
An address fulfills the functions of identifying the host and locating it on the network. The most common network addressing architecture is Internet Protocol version 4 (IPv4), but its successor, IPv6, has been increasingly deployed since approximately 2006. An IPv4 address consists of 32 bits. An IPv6 address consists of 128 bits. In both systems, an IP address is divided into two logical parts, the network prefix and the host identifier. All hosts on a subnetwork have the same network prefix. This prefix occupies the most-significant bits of the address. The number of bits allocated within a network to the prefix may vary between subnets, depending on the network architecture. The host identifier is a unique local identification and is either a host number on the local network or an interface identifier.
This addressing structure permits the selective routing of IP packets across multiple networks via special gateway computers, called routers, to a destination host if the network prefixes of origination and destination hosts differ, or sent directly to a target host on the local network if they are the same. Routers constitute logical or physical borders between the subnets, and manage traffic between them. Each subnet is served by a designated default router but may consist internally of multiple physical Ethernet segments interconnected by network switches.
The routing prefix of an address is identified by the subnet mask, written in the same form used for IP addresses. For example, the subnet mask for a routing prefix that is composed of the most-significant 24 bits of an IPv4 address is written as 255.255.255.0.
The modern standard form of specification of the network prefix is CIDR notation, used for both IPv4 and IPv6. It counts the number of bits in the prefix and appends that number to the address after a slash (/) character separator. This notation was introduced with Classless Inter-Domain Routing (CIDR).[2]
In IPv6 this is the only standards-based form to denote network or routing prefixes.
For example, the IPv4 network 192.0.2.0 with the subnet mask 255.255.255.0 is written as 192.0.2.0/24, and the IPv6 notation 2001:db8::/32 designates the address 2001:db8:: and its network prefix consisting of the most significant 32 bits.
In classful networking in IPv4, before the introduction of CIDR, the network prefix could be directly obtained from the IP address, based on its highest-order bit sequence. This determined the class (A, B, C) of the address and therefore the subnet mask. Since the introduction of CIDR, however, the assignment of an IP address to a network interface requires two parameters, the address and a subnet mask.
Given an IPv4 source address, its associated subnet mask, and the destination address, a router can determine whether the destination is on a locally connected network or a remote network. The subnet mask of the destination is not needed, and is generally not known to a router.[3] For IPv6, however, on-link determination is different in detail and requires the Neighbor Discovery Protocol (NDP).[4][5] IPv6 address assignment to an interface carries no requirement of a matching on-link prefix and vice versa, with the exception of link-local addresses.
Since each locally connected subnet must be represented by a separate entry in the routing tables of each connected router, subnetting increases routing complexity. However, by careful design of the network, routes to collections of more distant subnets within the branches of a tree hierarchy can be aggregated into a supernetwork and represented by single routes.
Internet Protocol version 4[edit]
Determining the network prefix[edit]
An IPv4 subnet mask consists of 32 bits; it is a sequence of ones (1) followed by a block of zeros (0). The ones indicate bits in the address used for the network prefix and the trailing block of zeros designates that part as being the host identifier.
The following example shows the separation of the network prefix and the host identifier from an address (192.0.2.130) and its associated /24 subnet mask (255.255.255.0). The operation is visualized in a table using binary address formats.
Binary form | Dot-decimal notation | |
---|---|---|
IP address | 11000000.00000000.00000010.10000010 | 192.0.2.130 |
Subnet mask | 11111111.11111111.11111111.00000000 | 255.255.255.0 |
Network prefix | 11000000.00000000.00000010.00000000 | 192.0.2.0 |
Host identifier | 00000000.00000000.00000000.10000010 | 0.0.0.130 |
The result of the bitwise AND operation of IP address and the subnet mask is the network prefix 192.0.2.0. The host part, which is 130, is derived by the bitwise AND operation of the address and the one’s complement of the subnet mask.
Subnetting[edit]
Subnetting is the process of designating some high-order bits from the host part as part of the network prefix and adjusting the subnet mask appropriately. This divides a network into smaller subnets. The following diagram modifies the above example by moving 2 bits from the host part to the network prefix to form four smaller subnets each one quarter of the previous size.
Binary form | Dot-decimal notation | |
---|---|---|
IP address | 11000000.00000000.00000010.10000010 | 192.0.2.130 |
Subnet mask | 11111111.11111111.11111111.11000000 | 255.255.255.192 |
Network prefix | 11000000.00000000.00000010.10000000 | 192.0.2.128 |
Host part | 00000000.00000000.00000000.00000010 | 0.0.0.2 |
Special addresses and subnets[edit]
IPv4 uses specially designated address formats to facilitate recognition of special address functionality. The first and the last subnets obtained by subnetting a larger network have traditionally had a special designation and, early on, special usage implications.[6] In addition, IPv4 uses the all ones host address, i.e. the last address within a network, for broadcast transmission to all hosts on the link.
The first subnet obtained from subnetting a larger network has all bits in the subnet bit group set to zero. It is therefore called subnet zero.[7] The last subnet obtained from subnetting a larger network has all bits in the subnet bit group set to one. It is therefore called the all-ones subnet.[8]
The IETF originally discouraged the production use of these two subnets. When the prefix length is not available, the larger network and the first subnet have the same address, which may lead to confusion. Similar confusion is possible with the broadcast address at the end of the last subnet. Therefore, reserving the subnet values consisting of all zeros and all ones on the public Internet was recommended,[9] reducing the number of available subnets by two for each subnetting. This inefficiency was removed, and the practice was declared obsolete in 1995 and is only relevant when dealing with legacy equipment.[10]
Although the all-zeros and the all-ones host values are reserved for the network address of the subnet and its broadcast address, respectively, in systems using CIDR all subnets are available in a subdivided network. For example, a /24 network can be divided into sixteen usable /28 networks. Each broadcast address, i.e. *.15, *.31, …, *.255, reduces only the host count in each subnetwork.
Subnet host count[edit]
The number of subnetworks available and the number of possible hosts in a network may be readily calculated. For instance, the 192.168.5.0/24 network may be subdivided into the following four /26 subnets. The highlighted two address bits become part of the network number in this process.
Network | Network (binary) | Broadcast address |
---|---|---|
192.168.5.0/26 | 11000000.10101000.00000101.00000000 | 192.168.5.63 |
192.168.5.64/26 | 11000000.10101000.00000101.01000000 | 192.168.5.127 |
192.168.5.128/26 | 11000000.10101000.00000101.10000000 | 192.168.5.191 |
192.168.5.192/26 | 11000000.10101000.00000101.11000000 | 192.168.5.255 |
The remaining bits after the subnet bits are used for addressing hosts within the subnet. In the above example, the subnet mask consists of 26 bits, making it 255.255.255.192, leaving 6 bits for the host identifier. This allows for 62 host combinations (26−2).
In general, the number of available hosts on a subnet is 2h−2, where h is the number of bits used for the host portion of the address. The number of available subnets is 2n, where n is the number of bits used for the network portion of the address.
There is an exception to this rule for 31-bit subnet masks,[11] which means the host identifier is only one bit long for two permissible addresses. In such networks, usually point-to-point links, only two hosts (the endpoints) may be connected and a specification of network and broadcast addresses is not necessary.
Internet Protocol version 6[edit]
The design of the IPv6 address space differs significantly from IPv4. The primary reason for subnetting in IPv4 is to improve efficiency in the utilization of the relatively small address space available, particularly to enterprises. No such limitations exist in IPv6, as the large address space available, even to end-users, is not a limiting factor.
As in IPv4, subnetting in IPv6 is based on the concepts of variable-length subnet masking (VLSM) and the Classless Inter-Domain Routing methodology. It is used to route traffic between the global allocation spaces and within customer networks between subnets and the Internet at large.
A compliant IPv6 subnet always uses addresses with 64 bits in the host identifier.[12] Given the address size of 128 bits, it therefore has a /64 routing prefix. Although it is technically possible to use smaller subnets,[13] they are impractical for local area networks based on Ethernet technology, because 64 bits are required for stateless address autoconfiguration.[14] The Internet Engineering Task Force recommends the use of /127 subnets for point-to-point links, which have only two hosts.[15][16]
IPv6 does not implement special address formats for broadcast traffic or network numbers,[17] and thus all addresses in a subnet are acceptable for host addressing. The all-zeroes address is reserved as the subnet-router anycast address.[18] The subnet router anycast address is the lowest address in the subnet, so it looks like the “network address”. If a router has multiple subnets on the same link, then it has multiple subnet router anycast addresses on that link.[19] The first and last address in any network or subnet is not allowed to be assigned to any individual host.[20]
In the past, the recommended allocation for an IPv6 customer site was an address space with a 48-bit (/48) prefix.[21] However, this recommendation was revised to encourage smaller blocks, for example using 56-bit prefixes.[22] Another common allocation size for residential customer networks has a 64-bit prefix.
See also[edit]
- Autonomous system (Internet)
References[edit]
- ^ Jeffrey Mogul; Jon Postel (August 1985). Internet Standard Subnetting Procedure. IETF. doi:10.17487/RFC0950. RFC 950. Updated by RFC 6918.
- ^ V. Fuller; T. Li (August 2006). Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan. Network Working Group. doi:10.17487/RFC4632. RFC 4632.
- ^ R. Braden, ed. (October 1989). Requirements for Internet Hosts — Communication Layers. Network Working Group IETF. sec. 3.3.1. doi:10.17487/RFC1122. RFC 1122. Updated by RFC 1349, RFC 4379, RFC 5884, RFC 6093, RFC 6298, RFC 6633, RFC 6864, RFC 8029.
- ^ T. Narten; E. Nordmark; W. Simpson; H. Soliman (September 2007). Neighbor Discovery for IP version 6 (IPv6). Network Working Group. doi:10.17487/RFC4861. RFC 4861.
- ^ H. Singh; W. Beebee; E. Nordmark (July 2010). IPv6 Subnet Model: The Relationship between Links and Subnet Prefixes. IETF. doi:10.17487/RFC5942. RFC 5942.
- ^ «Document ID 13711 — Subnet Zero and the All-Ones Subnet». Cisco Systems. 2005-08-10. Retrieved 2010-04-25.
Traditionally, it was strongly recommended that subnet zero and the all-ones subnet not be used for addressing. […] Today, the use of subnet zero and the all-ones subnet is generally accepted and most vendors support their use.
- ^ «Document ID 13711 — Subnet Zero and the All-Ones Subnet». Cisco Systems. 2005-08-10. Retrieved 2010-04-23.
the first […] subnet[…], known as subnet zero
- ^ «Document ID 13711 — Subnet Zero and the All-Ones Subnet». Cisco Systems. 2005-08-10. Retrieved 2010-04-23.
[…] the last subnet[…], known as […] the all-ones subnet
- ^ Jeffrey Mogul; Jon Postel (August 1985). Internet Standard Subnetting Procedure. IETF. p. 6. doi:10.17487/RFC0950. RFC 950.
It is useful to preserve and extend the interpretation of these special addresses in subnetted networks. This means the values of all zeros and all ones in the subnet field should not be assigned to actual (physical) subnets.
- ^ Troy Pummill; Bill Manning (December 1995). Variable Length Subnet Table For IPv4. IETF. doi:10.17487/RFC1878. RFC 1878.
This practice is obsolete! Modern software will be able to utilize all definable networks.
(Informational RFC, demoted to category Historic) - ^ A. Retana; R. White; V. Fuller; D. McPherson (December 2000). Using 31-Bit Prefixes on IPv4 Point-to-Point Links. doi:10.17487/RFC3021. RFC 3021.
- ^ R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture — section 2.5.1. Interface Identifiers. IETF. sec. 2.5.1. doi:10.17487/RFC4291. RFC 4291.
For all unicast addresses, except those that start with the binary value 000, Interface IDs are required to be 64 bits long and to be constructed in Modified EUI-64 format.
(Updated by RFC 5952, RFC 6052, RFC 7136, RFC 7346, RFC 7371, RFC 8064.) - ^ S. Thomson; T. Narten; T. Jinmei (September 2007). IPv6 Stateless Address Autoconfiguration — section 5.5.3.(d) Router Advertisement Processing. IETF. sec. 5.5.3. doi:10.17487/RFC4862. RFC 4862.
It is the responsibility of the system administrator to ensure that the lengths of prefixes contained in Router Advertisements are consistent with the length of interface identifiers for that link type. […] an implementation should not assume a particular constant. Rather, it should expect any lengths of interface identifiers.
(Updated by RFC 7527.) - ^ M. Crawford (December 1998). Transmission of IPv6 Packets over Ethernet Networks — section 4 Stateless Autoconfiguration. IETF. sec. 4. doi:10.17487/RFC2464. RFC 2464.
The Interface Identifier [AARCH] for an Ethernet interface is based on the EUI-64 identifier [EUI64] derived from the interface’s built-in 48-bit IEEE 802 address. […] An IPv6 address prefix used for stateless autoconfiguration [ACONF] of an Ethernet interface must have a length of 64 bits.
(Updated by RFC 6085, RFC 8064.) - ^ M. Kohno; B. Nitzan; R. Bush; Y. Matsuzaki; L. Colitti; T. Narten (April 2011). Using 127-Bit IPv6 Prefixes on Inter-Router Links. IETF. doi:10.17487/RFC6164. RFC 6164.
On inter-router point-to-point links, it is useful, for security and other reasons, to use 127-bit IPv6 prefixes.
- ^ W. George (February 2012). RFC 3627 to Historic Status. IETF. doi:10.17487/RFC6547. RFC 6547.
This document moves «Use of /127 Prefix Length Between Routers Considered Harmful» (RFC 3627) to Historic status to reflect the updated guidance contained in «Using 127-Bit IPv6 Prefixes on Inter-Router Links» (RFC 6164).
- ^ R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture — section 2 IPv6 Addressing. IETF. sec. 2. doi:10.17487/RFC4291. RFC 4291.
There are no broadcast addresses in IPv6, their function being superseded by multicast addresses. […] In IPv6, all zeros and all ones are legal values for any field, unless specifically excluded.
- ^ R. Hinden; S. Deering (February 2006). IP Version 6 Addressing Architecture — section 2.6.1 Required Anycast Address. IETF. sec. 2.6.1. doi:10.17487/RFC4291. RFC 4291.
This anycast address is syntactically the same as a unicast address for an interface on the link with the interface identifier set to zero.
- ^ «Subnet Router Anycast Addresses – what are they, how do they work? – Into6».
- ^ «TCP/IP addressing and subnetting — Windows Client».
- ^ «IPv6 Addressing Plans». ARIN IPv6 Wiki. Retrieved 2010-04-25.
All customers get one /48 unless they can show that they need more than 65k subnets. […] If you have lots of consumer customers you may want to assign /56s to private residence sites.
- ^ T. Narten; G. Huston; L. Roberts (March 2011). IPv6 Address Assignment to End Sites. IETF. doi:10.17487/RFC6177. ISSN 2070-1721. BCP 157. RFC 6177.
APNIC, ARIN, and RIPE have revised the end site assignment policy to encourage the assignment of smaller (i.e., /56) blocks to end sites.
Further reading[edit]
- Requirements for IPv4 Routers. doi:10.17487/RFC1812. RFC 1812.
- Utility of subnets of Internet networks. doi:10.17487/RFC0917. RFC 917.
- DNS Encodings of Network Names and Other Type. doi:10.17487/RFC1101. RFC 1101.
- Blank, Andrew G. (2006). TCP/IP Foundations. Wiley. ISBN 9780782151138.
- Lammle, Todd (2005). CCNA Cisco Certified Network Associate Study Guide 5th Edition. San Francisco, London: Sybex.
- Groth, David; Skandier, Toby (2005). Network + Study Guide (4th ed.). San Francisco, London: Wiley.
External links[edit]
Wikiversity has learning resources about Subnetting
- Cisco-IP Addressing and Subnetting for New Users
- Subnetworking at Curlie
- Netmask Quick Reference Chart
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей, в этой теме я предлагаю разобраться со структурой IP-адреса и откуда вообще берутся какие-то номера сети и номера узлов, ведь IP-адрес с виду цельная и неделимая сущность. Также в этой записи мы коротко поговорим о маске подсети и зачем она нужна, увидим, что когда-то было всё плохо и сети были классовыми, а сейчас всё стало хорошо благодаря CIDR и VLSM и сети стали бесклассовые и в завершении посмотрим на формы записи IP-адресов в протоколе IPv4.
Если тема компьютерных сетей вам интересна, то можете ознакомиться с другими записями курса.
Оглавление первой части: «Основы взаимодействия в компьютерных сетях».
Оглавление четвертой части: «Сетевой уровень: протокол IP и его версия IPv4».
4.2.1 Введение
Содержание статьи:
- 4.2.1 Введение
- 4.2.2 Структура IP-адреса и маска подсети
- 4.2.3 Классовые сети
- 4.2.4 Бесклассовые сети (CIDR) и маска подсети переменной длины (VLSM)
- 4.2.5 Форма записи IP-адреса и сокращения
- 4.2.6 Выводы
Структура IP-адреса — это одна из самых важных тем для понимания принципов работы протокола IP, эта тема очень тесно связана с маршрутизацией, механизмом работы классовых сетей и механизмом маски подсети переменной длинны, если вы не разберетесь со структурой IP-адреса, вы, конечно, не будете испытывать проблем с тем, чтобы настроить на своем ПК доступ в Интернет, но у вас не будет понимания принципов работы IP сетей. Надеюсь, я вас убедил в том, что тема важная, хоть и небольшая.
4.2.2 Структура IP-адреса и маска подсети
В протоколе IP есть две очень важные вещи, которые сделали его вездесущим. Первое – это заголовок IP-пакета, который определяет функционал протокола, а второе – это IP-адрес, который, следует заметить, является частью заголовка, но о нем стоит поговорить отдельно, чем мы сейчас и займемся. Я более чем уверен, что вы уже видели IP-адреса и более того, работали с ними, но если нет, то вот вам пример: 192.168.1.0. Для человека IP-адреса в протоколе IPv4 чаще всего представлены вот в таком виде.
Тут ничего сложного нет. Для нас IP-адрес разбит на четыре кусочка, разделителем между кусочками служат точки, каждый такой кусочек представляет собой один байт или один октет, следовательно, максимально возможное число, которое можно записать равно 255, а минимальное число ноль. Получается, что чисто теоретически можно использовать адреса от 0.0.0.0 до 255.255.255.255. Правда часть из этих адресов зарезервирована под специальные нужды, это мы обсудим в отдельной теме. Сейчас же будем считать, что нам доступно два в тридцать второй степени IP-адресов или 4 294 967 296, которых уже катастрофически не хватает, поэтому происходить плавное внедрение протокола IPv6.
На самом деле IP-адрес – это не просто четыре числа, разделенных точками, а более интересная и сложная сущность. Во-первых, следует заметить, что маршрутизаторы не знают десятичной системы счисления, так же, как и абонентские узлы, для них IP-адрес представлен набором нулей и единиц в нашем случае (192.168.1.0), IP-адрес для машины выглядит как-то так: 11000000 (192) 10101000 (168) 00000001 (1) 00000000 (0). Октеты в данном случае я разделил пробелами, думаю, тут всё очевидно: каждый байт – это восемь двоичных значений (0 или 1), а всего у нас для IP-адреса выделено четыре байта, то есть 32 бита, отсюда вытекает и два в тридцать второй степени IP-адресов.
Я сразу оговорился, что IP-адрес более сложная штука, чем кажется на первый взгляд. Дело всё в том, что IP-адрес включает в себя два параметра, которые позволяют идентифицировать узел в глобальной сети: номер узла и номер сети. Вообще, протокол IP предусматривает два механизма разбиения IP-адреса на номер сети и номер узла. Первый механизм называется классовая адресация, а второй механизм называется CIDR (Classless Inter-Domain Routing) или бесклассовая адресация. В этой теме мы сделаем поверхностный обзор этих механизмов, а в дальнейшем разберемся с ними детально.
Сейчас же сделаем небольшое отступление и поговорим про байты и биты, а если быть более точным, то про порядок нумерации байтов и битов в байте. Для примера возьмем IP-адрес 192.168.1.0 и запишем его в двоичном виде.
Рисунок 4.2.1 Номера октетов и битов в IP-адресе
В таблице показана нумерация октетов и бит в октетах так, как это реализуется в сетях модели TCP/IP. Эта нумерация справедлива как для IP-адреса в отдельности, так для всего заголовка IP-пакета. Крайний левый байт или самый первый байт называется старшим и его порядковый номер ноль, последний байт — младший и его порядковый номер три. То же самое относится и к битам: самый старший бит имеет порядковый номер ноль, а самый младший бит в байте имеет порядковый номер семь. Такая нумерация называется от старшего к младшему или big-endian, иногда такой порядок называется сетевым порядком.
Кстати, если у вас процессор интеловской архитектуры, то он нумерует байты и биты в обратном порядке, то есть от младшего к старшему, big-endian или интеловский порядок нумерации. Есть еще смешанный порядок и переключаемый порядок, но это нам уже не очень интересно. Почему в компьютерных сетях используется прямой порядок? Да очень просто, дело в том, что в таком порядке числа удобнее сравнивать, а сетевые устройства в основном только и делают, что сравнивают то, что им пришло в пакетах с тем, что записано в их конфигурациях или памяти.
4.2.3 Классовые сети
Классовые сети были единственным способом разделить пространство IP-адресов между всеми желающими до 1993 года, то есть с 1981 по 1993 год, в 1993 году появился механизмы VLSM и CIDR, которые сделали процесс деления более гибким, из этого можно сделать вывод, что в начале девяностых уже появились первые проблемы с нехваткой IP-адресов в протоколе IPv4.
Классовая адресация, как ясно из названия, делит всё пространство IP-адресов на классы, всего этих классов пять: A, B, C, D, E. Как понять к какому классу принадлежит IP-адрес? Да очень просто! Посмотреть на его первые биты. Приведу небольшой список, чтобы было понятно, к какому классу какой IP-адрес относится:
- сети класса А определяются значением первого бита, если первый бит IP-адреса нулевой, то это означает, что он относится к сети класса А, во всех остальных случаях – это другой класс;
- сети класса B определяются по значениям первых двух бит IP-адреса, IP-адрес относится к сети класса B в том случае, если первый бит имеет значение 1, а второй 0;
- IP-адрес будет принадлежать к сети класса C, если первый бит адреса будет равен 1, второй бит тоже 1, а третий будет 0;
- сети класса D определяются по первым четырем битам IP-адреса, при этом первый бит 1, второй бит 1, третий бит 1, а четвертый 0, стоит добавить, что сети класса D использовались для многоадресной рассылки или иначе multicast;
- и наконец сети класса E были зарезервированы и их нельзя было использовать простым смертным, определялись они первыми четырьмя битами, каждый из которых должен был иметь значение 1.
Для ясности давайте посмотрим на примере IP-адресов для каждого класса:
- Сеть класса А. IP-адрес в десятичном виде: 10.10.0.1. IP-адрес в двоичном виде: 00001010 00001010 00000000 00000001. Обратите внимание на то, что первый бит равен нулю, он как раз и определяет, что данный IP-адрес принадлежит к сети класса A.
- Сеть класса B. IP-адрес в десятичном виде: 130.25.25.12. IP-адрес в двоичном виде: 1000 0010 00011001 00011001 000011000. Принадлежность к данному классу определяют первых два бита: 10.
- Сеть класса C. IP-адрес в десятичном виде: 192.168.1.0. IP-адрес в двоичном виде: 11000000 10101000 00000001 00000000. Значение первых трех бит определяют принадлежность этого адреса к классу C.
- Сеть класса D. IP-адрес в десятичном виде: 224.0.0.6. IP-адрес в двоичном виде: 11100000 00000000 00000000 00000110. Значение первых четырех бит выделены жирным.
- Сеть класса E. IP-адрес в десятичном виде: 240.10.10.10. IP-адрес в двоичном виде: 11110000 00001010 00001010 00001010.
С классами сетей всё ясно и понятно, остается нераскрытым вопрос: как понять из какой подсети тот или иной IP-адрес, но об этом мы поговорим в теме про классовые сети, сейчас же только отмечу, что принадлежность IP-адреса к той или иной подсети определяется значением некоторых бит в самом IP-адресе и фиксированной маской, которая в любом случае будет сопровождать этот адрес.
4.2.4 Бесклассовые сети (CIDR) и маска подсети переменной длины (VLSM)
Бесклассовая адресация или CIDR – это механизм разделения сети на подсети в современных сетях передачи данных, этот механизм позволил существенно экономить адреса и не тратить лишнего. CIDR тесно связан с понятием VLSM (variable length subnet mask) или маска подсети переменной длинны, можно просто маска подсети или маска, на данный момент вас поймут верно. Становится понятно, что здесь уже нет жестких рамок классов, поскольку и самих классов нет. Теперь для того чтобы понять к какой подсети относится IP-адрес, самого IP-адреса недостаточно, нужна еще и маска подсети, которая, следует сказать, не передается по сети, она указывается только на конечных узлах и маршрутизаторах (а, например, L2 коммутаторы и хабы вообще ничего не знают про IP-адреса, первые работают на канальном уровне, а вторые реализуют механизмы физического уровня модели OSI 7, про разницу между хабами, коммутаторами и роутерами читайте здесь), и для нее нет отдельного поля в IP-пакете.
Как выглядит маска подсети? Да на самом деле, как IP-адрес, вот несколько примеров маски: 255.255.255.0, 255.255.254.0, 255.248.0.0. Заметили, здесь общего? Ну, кроме того, что во всех примерах первый октет 255. Общая составляющая будет заметна, если написать все эти маски в двоичном виде:
- 255.255.255.0: 11111111 11111111 11111111 00000000;
- 255.255.254.0: 11111111 11111111 11111110 00000000;
- 255.248.0.0: 11111111 11111000 00000000 00000000.
Обратите внимание: у каждой маски вначале идут только единицы, затем идут только нули, чередоваться нули и единицы в маске подсети не могут. Например, не может быть вот такой маски: 255.254.255.0 или в двоичной системе: 11111111 11111110 11111111 00000000. И это очень важно, поскольку именно на границе нулей и единиц маски подсети находится граница между номером сети и номером узла в IP-адресе.
На примере будет все немного яснее, давайте возьмем следующий IP-адрес и маску: 192.168.1.25/24, иначе это можно было бы записать так: 192.168.1.25 с маской 255.255.255.0, число 24 означает количество единиц в маске. Если вам просто дать этот IP-адрес без маски, то вы не сможете сказать: какие биты этого IP-адреса отданы под номер сети, а какие под номер узла, с маской же все становится понятно. Чтобы понять где здесь номер сети, а где номер узла, нужно перевести и маску, и IP-адрес в двоичную систему счисления. Давайте сделаем всё это в виде таблицы.
Рисунок 4.2.2 Переводим IP-адрес и маску подсети в двоичный вид
Сразу отметим, что те биты IP-адреса, напротив которых в маске подсети стоят единицы, будут относиться к номеру сети, а те биты адреса, напротив которых у маски нули, относятся к номеру хоста. Чтобы узнать номер узла и номер сети нужно выполнить операцию «логическое И» между соответствующими битами IP-адреса и маски. Операция «логическое И» в двоичной системе счисления эквивалентна операции умножения в десятичной: 1×1=1, 1×0=0, 0×0=0. Вы уже понимаете, что номер сети в IP-адресе при использовании CIDR и VLSM определяется маской, а именно единичными битами маски, то есть для нашего случая номер сети это: 192.168.1.0, а под номера узлов у нас остается диапазон с 192.168.1.1 по 192.168.1.254, заметьте, что есть еще 192.168.1.255 — это широковещательный IP-адрес для данной сети и его нельзя назначить узлу или интерфейсу маршрутизатора.
Мы рассмотрели простой пример использования маски подсети, в данном случае граница между номером сети и номером узла в IP-адресе проходит по границе предпоследнего октета, но не всегда бывает так, например, маска 255.248.0.0 проводит границу между номером сети и номером узла посередине октета, но о таких случаях мы поговорим в отдельной теме, посвященной бесклассовой адресации (CIDR) и механизму маски подсети (VLSM).
4.2.5 Форма записи IP-адреса и сокращения
Теперь вас стоит немного удивить и сказать, что ни один официальный документ, посвященный IP протоколу, не говорит нам о том, как правильно записывать IP-адрес в документах, на бумаге или в конфигурациях того или иного устройства. На самом деле IP-адрес — это число, которое можно записать в любой системе счисления, хоть в восьмеричной.
Форма записи октетов, разделенных точками, просто удобна для человека: 127.0.0.1. Но для машины IP-адрес число, которое может находиться в диапазоне от 00000000 00000000 00000000 00000000 до 11111111 11111111 11111111 11111111 или в десятичной системе счисления: от 0 до 4 294 967 295. И вы понимаете, что IP-адрес 127.0.0.1 — это не число 127001, это вот такое число 01111111 00000000 00000000 00000001 или в десятичной системе: 2 130 706 433. Более того, если вы запустите командую строку или эмулятор терминала в своей операционной системе, то сможете пропинговать IP-адрес 127.0.0.1, используя число выше, если не верите, то смотрите листинг ниже.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Microsoft Windows [Version 10.0.17134.228] (c) Корпорация Майкрософт (Microsoft Corporation), 2018. Все права защищены. C:UsersDell>ping 2130706433 Обмен пакетами с 127.0.0.1 по с 32 байтами данных: Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Статистика Ping для 127.0.0.1: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема—передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек C:UsersDell> |
Эстетами или проще говоря тем, кому хочется понтанутся, было придумано еще два способа записи IP-адресов в десятичном виде, эти способы идут к нам из стека BSD и функции inet_aton (). Первый способ записи выглядит так: 8bit.24bit. Вот так будет выглядеть IP-адрес в 127.0.0.1: 127.1, в двоичном виде он будет выглядеть так: 01111111.000000000000000000000001. То есть под первое число выделено 8 бит, а под второе 24. Windows вполне себе понимает такую форму записи.
C:UsersDell>ping 127.1 Обмен пакетами с 127.0.0.1 по с 32 байтами данных: Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Статистика Ping для 127.0.0.1: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема—передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек |
Чтобы было понятнее, приведу еще один пример: 127.267894, чтобы понять, что это за IP, вам нужно будет перевести его в двоичный вид, разбить на октеты и восстановить его в том виде, к которому мы привыкли или просто попробовать пропинговать адрес:
C:UsersDell>ping 127.267894 Обмен пакетами с 127.4.22.118 по с 32 байтами данных: Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128 Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128 Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128 Ответ от 127.4.22.118: число байт=32 время<1мс TTL=128 Статистика Ping для 127.4.22.118: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема—передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек |
Вторая сокращенная форма записи IP-адреса выглядит так: 8bit.8bit.16bit. Адрес 127.0.0.1 в этой форме можно записать так: 127.0.1. Винда понимает и эту форму:
C:UsersDell>ping 127.0.1 Обмен пакетами с 127.0.0.1 по с 32 байтами данных: Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128 Статистика Ping для 127.0.0.1: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема—передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек |
Для примера давайте пропингуем адрес 127.99.259, чтобы посмотреть как происходит преобразование:
C:UsersDell>ping 127.99.259 Обмен пакетами с 127.99.1.3 по с 32 байтами данных: Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128 Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128 Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128 Ответ от 127.99.1.3: число байт=32 время<1мс TTL=128 Статистика Ping для 127.99.1.3: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема—передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек |
Нормальный человек никогда не будет вам рекомендовать использовать для записи IP-адреса обычные числа или формы 8bit.24bit, 8bit.8bit.16bit. Дело в том, что эти формы записи IP-адресов настолько непривычны, что не всем удобно и понятно с ними работать, вас могут просто банально не понять, если вместо IP-адреса вы напишите огромное число или сокращенную форму записи. Второй момент заключается в том, что не всё оборудование и не каждая программа сможет работать с такими формами записи IP-адресов, нет никакой гарантии того, что разработчик софта вообще знал о том, что такие формы допустимы в протоколе IP.
4.2.6 Выводы
Итак, какие выводы можно сделать по IP-адресам в протоколе IPv4 и их структуре? IP-адрес состоит из двух частей: номера сети и номера узла. Для отделения мух от котлет у нас есть два механизма: классовая адресация, которая уже не используется из-за неэкономного расходования ограниченного ресурса IP-адресов, а также механизмы VLSM и CIDR, которые позволяют очень гибко делить сети на подсети. Оба этих механизма мы рассмотрим более подробно, сейчас же был просто поверхностный взгляд.
Также стоит сказать, что IP-адреса узлам назначаются администратором вручную или при помощи DHCP-сервера, который настраивает администратор. Если же у вас сеть разделена на подсети, то у каждой подсети должен быть уникальный номер, а еще внутри подсети каждый узел должен иметь уникальный номер.
Нужно сказать еще и о том, что очень часто вместе с IP-адресом узла, нам нужно будет использовать IP-адрес шлюза и маску сети, обе эти настройки никак не передаются по сети, поскольку для них нет поля в заголовке IP-пакета. В заголовке есть только IP-адрес источника и IP-адрес назначения, этой информации хватает маршрутизатору для того, чтобы выбрать направление, по которому будет направлен пакет.