- 70
- 37
Всем привет. Решил написать гайд для начинающих DevOps инженеров и администраторов сетей. Пишу гайд в раздел общения по совету модератора. Адресация айпи очень важна. От неё зависит работа каждого устройства в сети. В данном гайде адресация IPv6 упоминаться не будет.
IPv4 состоит из 4-х чисел разделённых между собой точками.
Каждое такое число до точки называем октетом (от латинского octo — восемь). IPv4 (далее как - IP) — это 32-х битный адрес, который мы даём сетевому интерфейсу узла (хоста — устройству в сети). Каждый октет состоит из 8 битов. Каждый бит может иметь значение 0 либо 1. Если все 8 битов будут иметь значение 1, то число которое мы получим будет являться
Часто около адреса можно увидеть что-то, что называется "маской". Маска сети записывается рядом с адресом IP через слеш (/). Обычно это десятичное число, (16, 24, ..) но запись может быть и в виде адреса 255.255.255.0. Что это означает? Маска сети (возьмём в пример маску 24) делит айпи адрес на две части — сеть и хосты. Она прямо указывает, что первые 24 бита по левой стороне адреса будут являться сетью, оставшиеся биты — узлы.
Пример:
Представим адрес
Адрес в двоичной системе: 11000000.10101000.00000000.01100100
Число 24 — является маской сети. Это количество битов, которые выделены на адрес сети. Всего битов в адресе IP 32. 32 - 24 = 8. 8 битов (то есть — целый октет) выделено на адрес хоста.
Таким образом, мы можем сказать, что адрес
Маска может быть больше чем 24. В пример возьмём тот же самый адрес, но с маской 29 и ещё раз посмотрим на бинарный его вид
11000000.10101000.00000000.01100100
На хосты осталось всего 3 бита, а соответственно меньше IP адресов для хостов доступно. Если вы посмотрите на IP, который даёт вам провайдер, то вероятно увидите маску 32 (или же её аналогичный вариант
Такой лёгкий способ расчёта количества хостов, адреса сети, первый и последний адрес в сети — работает с масками 8, 16, 24, 32 — то есть когда на хосты выделен один октет. Рассмотрим пример сложнее.
Адрес/маска:
Адрес в двоичной системе: 01010100.00001101.00011010.11010101
Маска в двоичной системе: 11111111.11111111.11111111.11100000
5 нулей на последнем октете — это наши доступные хосты. Показываю фокус как легко рассчитать адрес сети.
Берём известный IP и адрес маски. Делаем операцию AND:
01010100.00001101.00011010.11010101
11111111.11111111.11111111.11100000
Результат: 01010100.00001101.00011010.11000000
Переведём результат в десятичную систему.
Получаем адрес:
Маска после инверсии: 00000000.00000000.00000000.00011111
Проведем операцию OR над инверсией маски и адресом сети:
01010100.00001101.00011010.11000000
00000000.00000000.00000000.00011111
Результат: 01010100.00001101.00011010.11011111
Результат этой операции переведём в десятичный вариант и получим широковещательный адрес:
Для этого от 192 отнимем 1 и получим 191 (
Результат: 84.13.26.160 — 84.13.26.191
Помните про количество устройств в сети? Их было 31, но это не значит что мы сможем разместить 31 устройство. 2 адреса уходит на адрес сети и на широковещательный адрес. То есть по факту доступные адреса будут от
Адрес/маска:
Нам нужно узнать количество хостов, пул доступных адресов, адрес сети и broadcast адрес. В данном способе мы не сможем увидеть сами биты, но нужно в голове понимать где заканчивается сеть и начинаются хосты. Первые 29 битов с левой стороны — это сеть. берём ближайшую наименьшую маску такую, чтобы октет имел 8 битов (8, 16, 24, 32). В нашем случае нужно взять 24.
29 - 24 = 5;
2^5 = 32 — общее количество подсетей
256 / 32 = 8 - каждый 8-й адрес — новая сеть.
Мы подставили 256. Что это? Байт состоит из 8-ми битов. Соответственно 2 в степени 8 = 256. Байт может принимать значение от 0 до 255 — то есть 256 значений.
Результатом этого деления является цифра 8. То есть каждый 8-й адрес подсети является адресом новой сети. Теперь напишем что у нас получилось.
Каждый адрес новой сети будет иметь на последнем бите одну из следующих цифр/чисел: 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88 и так далее до 255. У нас адрес заканчивается на 81, поэтому адресом нашей сети будет
Вот так выглядят другие подсети:
94.132.65.0 - 94.132.65.7 — первая сеть
94.132.65.8 - 94.132.65.15 — вторая сеть
94.132.65.16 - 94.132.65.23 — третья сеть
И так далее.
Мы разделили сеть на подсети используя маску.
Даже если вы не шарите в этой теме, но вам понравилось — жду ваши комментарии/вопросы на эту тему. Можете придумывать айпи адреса в комментах и сами считать всю эту дичь.
P.S: да, я тот чел, который называет интернет кабель ПАТЧКОРДОМ!
В ЭТОМ ГАЙДЕ МЫ ИСПОЛЬЗУЕМ ТОЛЬКО ТЕХНОЛОГИЮ VLSM
Из чего состоит IP адрес?
IPv4 состоит из 4-х чисел разделённых между собой точками.
Пример IPv4:
192.168.0.100
Каждое такое число до точки называем октетом (от латинского octo — восемь). IPv4 (далее как - IP) — это 32-х битный адрес, который мы даём сетевому интерфейсу узла (хоста — устройству в сети). Каждый октет состоит из 8 битов. Каждый бит может иметь значение 0 либо 1. Если все 8 битов будут иметь значение 1, то число которое мы получим будет являться
Код:
255.255.255.255
Маска сети — что это? Как разделить сеть на подсети? Двоичный вариант
Часто около адреса можно увидеть что-то, что называется "маской". Маска сети записывается рядом с адресом IP через слеш (/). Обычно это десятичное число, (16, 24, ..) но запись может быть и в виде адреса 255.255.255.0. Что это означает? Маска сети (возьмём в пример маску 24) делит айпи адрес на две части — сеть и хосты. Она прямо указывает, что первые 24 бита по левой стороне адреса будут являться сетью, оставшиеся биты — узлы.
Пример:
Представим адрес
192.168.0.100 / 24
Адрес в двоичной системе: 11000000.10101000.00000000.01100100
Число 24 — является маской сети. Это количество битов, которые выделены на адрес сети. Всего битов в адресе IP 32. 32 - 24 = 8. 8 битов (то есть — целый октет) выделено на адрес хоста.
192.168.0
— является сетью, а 100 — хост. В данной сети у нас есть 256 - 2 = 254 свободных адреса. Почему -2? Первый адрес — адрес сети — 192.168.0.0
. Второй адрес — 192.168.0.255
— широковещательный (broadcast) адрес, который нужен коммутатору (свитчу).Эти адреса не могут быть даны сетевому интерфейсу узла. В данном гайде объяснять что такое broadcast адрес не буду. Просто знайте, что такой адрес есть в сети.Таким образом, мы можем сказать, что адрес
192.168.0.100
— является адресом хоста. В сети доступно 254 устройства (узла) — первый узел будет иметь адрес 192.168.0.1
, последний будет иметь адрес 192.168.0.254
. Если в сети присутствует роутер, то ему обычно даём либо последний адрес из пула, или первый (на последнем октете будет 1 или 254).Маска может быть больше чем 24. В пример возьмём тот же самый адрес, но с маской 29 и ещё раз посмотрим на бинарный его вид
11000000.10101000.00000000.01100100
На хосты осталось всего 3 бита, а соответственно меньше IP адресов для хостов доступно. Если вы посмотрите на IP, который даёт вам провайдер, то вероятно увидите маску 32 (или же её аналогичный вариант
255.255.255.255
) — в такой сети не может быть подсетей. И это неудивительно, адресов в мире очень мало.Такой лёгкий способ расчёта количества хостов, адреса сети, первый и последний адрес в сети — работает с масками 8, 16, 24, 32 — то есть когда на хосты выделен один октет. Рассмотрим пример сложнее.
Адрес/маска:
84.13.26.213 / 27
Адрес в двоичной системе: 01010100.00001101.00011010.11010101
Маска в двоичной системе: 11111111.11111111.11111111.11100000
5 нулей на последнем октете — это наши доступные хосты. Показываю фокус как легко рассчитать адрес сети.
Берём известный IP и адрес маски. Делаем операцию AND:
01010100.00001101.00011010.11010101
11111111.11111111.11111111.11100000
Результат: 01010100.00001101.00011010.11000000
Переведём результат в десятичную систему.
Получаем адрес:
84.13.26.192
— адрес сети. Вернёмся к двоичному варианту нашей маски и сделаем инверсию (заменим все нули на единицы и наоборот):Маска после инверсии: 00000000.00000000.00000000.00011111
Проведем операцию OR над инверсией маски и адресом сети:
01010100.00001101.00011010.11000000
00000000.00000000.00000000.00011111
Результат: 01010100.00001101.00011010.11011111
Результат этой операции переведём в десятичный вариант и получим широковещательный адрес:
84.13.26.223
. Что мы получили проведя все эти операции? Нам стал известен адрес сети — 84.13.26.192
; широковещательный (broadcast) адрес этой сети — 84.13.26.223
; количество устройств (узлов/хостов) в сети — 223 - 192 = 31 (запомните этот момент), а также можем узнать адреса ближайших подсетей.Для этого от 192 отнимем 1 и получим 191 (
84.13.26.191
) — широковещательный адрес другой подсети. Мы узнали, что 31 — количество хостов в сети с маской 27. Поэтому от 191 отнимем 31 и получим 160 (84.13.26.160
) — адрес подсети.Результат: 84.13.26.160 — 84.13.26.191
Помните про количество устройств в сети? Их было 31, но это не значит что мы сможем разместить 31 устройство. 2 адреса уходит на адрес сети и на широковещательный адрес. То есть по факту доступные адреса будут от
84.13.26.161
- 84.13.26.190
— то есть 29 устройств.Деление сети на подсети в десятичной системе счисления
Разберём метод раздела сети на подсети используя лишь десятичную систему счисления.Адрес/маска:
94.132.65.81 /29
Нам нужно узнать количество хостов, пул доступных адресов, адрес сети и broadcast адрес. В данном способе мы не сможем увидеть сами биты, но нужно в голове понимать где заканчивается сеть и начинаются хосты. Первые 29 битов с левой стороны — это сеть. берём ближайшую наименьшую маску такую, чтобы октет имел 8 битов (8, 16, 24, 32). В нашем случае нужно взять 24.
29 - 24 = 5;
2^5 = 32 — общее количество подсетей
256 / 32 = 8 - каждый 8-й адрес — новая сеть.
Мы подставили 256. Что это? Байт состоит из 8-ми битов. Соответственно 2 в степени 8 = 256. Байт может принимать значение от 0 до 255 — то есть 256 значений.
Результатом этого деления является цифра 8. То есть каждый 8-й адрес подсети является адресом новой сети. Теперь напишем что у нас получилось.
Каждый адрес новой сети будет иметь на последнем бите одну из следующих цифр/чисел: 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88 и так далее до 255. У нас адрес заканчивается на 81, поэтому адресом нашей сети будет
94.132.65.80
, а broadcast адресом будет 94.132.65.87
, так как 88 — это уже адрес следующей сети. Итого: адрес сети и широковещатльный адреса нам известны, количество узлов в сети = 8 - 2 = 6 и диапазон адресов для устройств в сети это — 94.132.65.81
— 94.132.65.86
Вот так выглядят другие подсети:
94.132.65.0 - 94.132.65.7 — первая сеть
94.132.65.8 - 94.132.65.15 — вторая сеть
94.132.65.16 - 94.132.65.23 — третья сеть
И так далее.
Мы разделили сеть на подсети используя маску.
Даже если вы не шарите в этой теме, но вам понравилось — жду ваши комментарии/вопросы на эту тему. Можете придумывать айпи адреса в комментах и сами считать всю эту дичь.
P.S: да, я тот чел, который называет интернет кабель ПАТЧКОРДОМ!
Последнее редактирование: