Відповіді:
Перетворіть пунктирно-десяткове представлення мережевої маски у двійкове. Потім підрахуйте кількість суміжних 1 біт, починаючи з найбільш значущого біта першого октету (тобто лівої частини двійкового числа).
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
-----------------------------------
I counted twenty-one 1s -------> /21
Префікс 128.42.5.4 з мережевою маскою 255.255.248.0 становить / 21.
Мережева адреса є логічним І відповідних бітів у бінарному поданні IP-адреси та маски мережі. Вирівняйте біти за обома адресами та виконайте логічне І на кожній парі відповідних бітів. Потім конвертуйте окремі октети результату назад у десяткові.
Логічна та істинна таблиця:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
----------------------------------- [Logical AND]
10000000 00101010 00000000 00000000 ------> 128.42.0.0
Як бачимо, мережева адреса 128.42.5.4/21 становить 128.42.0.0
Електронна адреса перетворює всі біти хоста в 1s ...
Пам'ятайте, що наша IP-адреса у десятковій формі:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Маска мережі:
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
Це означає, що наші біти хоста є останніми 11 бітами IP-адреси, тому що ми знаходимо маску хоста шляхом перевертання мережевої маски:
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
Щоб обчислити адресу широкомовної програми, ми змушуємо всі біти хоста бути 1s:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
----------------------------------- [Force host bits]
10000000 00101010 00000111 11111111 ----> 128.42.7.255
Ви не надали достатньо інформації для розрахунку підмереж для цієї мережі; як правило, ви будуєте підмережі шляхом перерозподілу деяких бітів хоста як мережевих бітів для кожної підмережі. Багато разів не існує одного правильного способу підмережі блоку ... залежно від ваших обмежень, може існувати кілька дійсних способів підмережі блоку адрес.
Припустимо, ми розділимо 128.42.0.0/21 на 4 підмережі, які повинні містити щонайменше 100 хостів у кожній ...
У цьому прикладі ми знаємо, що вам потрібно щонайменше префікс / 25, щоб містити 100 хостів; Я вибрав / 24, тому що він потрапляє на межу октету. Зауважте, що мережева адреса кожної підмережі позичає хости-біти з батьківського блоку мережі.
Звідки я зрозумів, що мені потрібно принаймні / 25 маскулярності на 100 господарів? Обчисліть префікс, підкріпивши кількість бітів хоста, необхідних для вмісту 100 хостів. Потрібно 7 хостів, щоб містити 100 хостів. Офіційно це обчислюється з:
Біт хоста = Журнал 2 (Кількість хостів) = Журнал 2 (100) = 6.643
Оскільки адреси IPv4 мають ширину 32 біти, а ми використовуємо біти хоста (тобто найменш значущі біти), просто відніміть 7 з 32, щоб обчислити мінімальний префікс підмережі для кожної підмережі ... 32 - 7 = 25.
Оскільки нам потрібно лише чотири підмережі з цілого блоку 128.42.0.0/21, ми могли б використовувати / 23 підмережі. Я вибрав / 23, тому що нам потрібні 4 підмережі ... тобто додаткові два біти додані до маски мережі.
Це однаково справедлива відповідь на обмеження, використовуючи / 23 підмережі 128.42.0.0/21 ...
Це те, що ми вже зробили вище ... просто повторно використовуйте маску хоста з роботи, яку ми зробили, коли ми обчислили адресу широкомовної передачі 128.42.5.4/21 ... Цього разу я використаю замість 1s h
, тому що нам потрібно знову виконати логічне І на мережевій адресі.
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000111 11111111
----------------------------------- [Logical AND]
00000000 00000000 00000101 00000100 -----> 0.0.5.4
Щоб знайти максимальну кількість хостів, перегляньте кількість бінарних бітів у номері хосту вище. Найпростіший спосіб зробити це - відняти довжину мережевої маски від 32 (кількість бітів в IPv4-адресі). Це дає вам кількість бітів хоста в адресі. У цей момент ...
Максимальна кількість хостів = 2 ** (32 - довжина мережі_маска) - 2
Причина, яку ми віднімаємо вище 2, полягає в тому, що всі хости і всі нулі хостів зарезервовані. Загальний нуль хоста - це номер мережі; загальний номер хоста - це адреса широкомовної програми.
Використовуючи приклад підмережі 128.42.0.0/21 вище, кількість хостів становить ...
Максимальна кількість господарів = 2 ** (32 - 21) - 2 = 2048 - 2 = 2046
Припустимо, хтось надасть нам дві IP-адреси і очікує, що ми знайдемо найдовшу мережеву маску, яка містить їх обох; наприклад, що робити:
Найпростіше зробити це перетворити як у двійковий, так і шукати найдовший рядок мережевих бітів з лівої сторони адреси.
128.42.5.17 in binary: 10000000 00101010 00000101 00010001
128.42.5.67 in binary: 10000000 00101010 00000101 01000011
^ ^ ^
| | |
+--------- Network ---------+Host-+
(All bits are the same) Bits
У цьому випадку максимальна маска мережі (мінімальна хост-маска) буде / 25
ПРИМІТКА. Якщо ви спробуєте почати з правого боку, не хитрість лише тому, що ви знайдете один відповідний стовпчик бітів; можуть бути неперевершені біти за межами цих збіжних бітів. Чесно кажучи, найбезпечніше, що потрібно зробити - це почати з лівого боку.
Відповідь вище вдало вражає ніготь на голові. Однак, коли я вперше розпочав свою роботу, мені знадобилося кілька різних прикладів з кількох джерел, щоб вона справді потрапила додому. Тому, якщо вас цікавлять інші приклади, я написав кілька публікацій у блозі на цю тему - http://www.oznetnerd.com/category/subnetting/
Адміністратори, якщо ця публікація вважається спамом, сміливо видаляйте її.
Редагувати: Згідно з пропозицією YLearn, я спробую захопити відповідні частини з частини 1 моєї серії, не вставляючи тут весь запис.
Давайте використаємо 195.70.16.159/30 як приклад.
Оскільки це / / 30, ми знаємо, що частина хоста буде в четвертому октеті. Перетворимо це у бінарне:
128 64 32 16 8 4 2 1
SN SN SN SN SN SN H H
1 0 0 1 1 1 1 1
Тепер, щоб дізнатись мережеву адресу, що ми все робимо, це разом додати біти SN, які мають під собою 1. (128 + 16 + 8 + 4 = 156).
Коли ви додасте цю 156 до перших трьох октетів адреси, нам залишається мережева адреса 195.70.16.156.
Тепер, як ми знаємо, що першою корисною адресою завжди є мережева адреса плюс одна, все, що нам потрібно зробити, - це виконати наступний розрахунок: (156 + 1 = 157).
Це дає нам першу корисну адресу 195.70.16.157.
Тепер давайте на хвилину пропустимо останню корисну адресу і знайдемо адресу широкомовної передачі. Щоб дізнатися, що це таке, все, що нам потрібно зробити, - це додати всі Н-біти разом (незалежно від того, вони є 1 або 0), а потім додати це число до мережевої адреси. (2 + 1 + 156 = 159).
Це дає нам ефірну адресу 195.70.16.159.
І нарешті, давайте розробимо останню корисну адресу. Цей процес схожий на пошук Першої корисної адреси, однак, замість того, щоб додати її до мережевої адреси, ми фактично віднімаємо її з широкомовної адреси. (159 - 1 = 158).
Це дає нам останню корисну адресу 195.70.16.158.
І там ми його маємо! Наш temaplte завершений. Для легкої довідки, ось знову:
Як ярлик ви можете також використовувати цю формулу. Він працює в підмережах будь-якого розміру:
Я не хочу нічого відволікати від чудової відповіді Майка Пеннінгтона , яку я невблаганно пропагував, але я продовжую бачити питання, на які не відповідає безпосередньо його відповідь, і я створив щось, що спочатку ґрунтувалося на відповіді Майка, але я маю більше інформації для вирішення питань, що з’явилися з часом. На жаль, вона занадто велика, і мені довелося розбити її на дві відповіді.
Враховуючи IPv4 адресу та маску мережі IPv4 (мережеву маску можна також отримати від довжини мережевої маски або маски хоста), ви можете визначити багато інформації про мережу IPv4: мережева адреса, мережева широкомовна адреса, загальні адреси хостів, загальна корисна кількість Адреса хоста, перша корисна адреса хоста та остання корисна адреса хоста.
Я не можу наголосити на тому, що ви повинні займатися математикою IPv4 у двійковій формі. Я думаю, що кожен мережевий інженер (або потенційний мережевий інженер) спробував знайти спосіб зробити все це у десятковій мірі, як я впевнений, що вам буде *. Проблема полягає в тому, що 10 (десяткова) не є потужністю 2 (двійкові), тому десятковий і двійковий не природно перетворюють між собою так, як шістнадцятковий (основа 16) природним чином перетворюється на бінарний і з нього, тому що 16 - це сила 2 .
Здається, що використання крапкових десяткових позначень для IPv4 було ранньою помилкою, яку тепер неможливо виправити, але IPv6 прийняв використання шістнадцяткових з самого початку, і це легко перетворити між шістнадцятковим і двійковим.
Якщо у вас немає калькулятора IP (ймовірно, це не дозволено на іспитах з класу мережевого навчання або сертифікаційних тестах), корисно скласти діаграму значень бітів в октеті. Оскільки це двійкове значення, кожне бітове значення в 2 рази більше того ж значення цифри у наступній менш значущій цифрі. Кожна цифра є числом базисних разів, однаковим значенням цифри у наступній менш значущій цифрі. Це справедливо і для будь-якої іншої бази чисел, включаючи десяткову (базу 10), де кожне розрядне значення в 10 разів перевищує значення однієї і тієї ж цифри в наступній менш значущій позиції числа. Для двійкових цифр (біт):
---------------------------------------------------------
| Bit # | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---------------------------------------------------------
| Value | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---------------------------------------------------------
Якщо десяткове значення - це значення потужності 10, двійкове значення - це повноваження 2. Зауважте, що для кожного бітового числа у таблиці вище відповідне значення дорівнює 2 потужності бітового числа.
For our example IPv4 dotted-decimal address of 198.51.100.223:
1st octet: 198 = 128 + 64 + 0 + 0 + 0 + 4 + 2 + 0 = 11000110
2nd octet: 51 = 0 + 0 + 32 + 16 + 0 + 0 + 2 + 1 = 00110011
3rd octet: 100 = 0 + 64 + 32 + 0 + 0 + 4 + 0 + 0 = 01100100
4th octet: 223 = 128 + 64 + 0 + 16 + 8 + 4 + 2 + 1 = 11011111
For our example IPv4 binary address of 11000110001100110110010011011111:
1st octet: 11000110 = 128 + 64 + 0 + 0 + 0 + 4 + 2 + 0 = 198
2nd octet: 00110011 = 0 + 0 + 32 + 16 + 0 + 0 + 2 + 1 = 51
3rd octet: 01100100 = 0 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 100
4th octet: 11011111 = 128 + 64 + 0 + 16 + 8 + 4 + 2 + 1 = 223
Вам також потрібно запам’ятати свої таблиці правди зі школи (у двійковій математиці 0 - помилково, а 1 - правда):
-----------------------------------------
| False AND False = False | 0 AND 0 = 0 |
-----------------------------------------
| False AND True = False | 0 AND 1 = 0 |
-----------------------------------------
| True AND False = False | 1 AND 0 = 0 |
-----------------------------------------
| True AND True = True | 1 AND 1 = 1 |
-----------------------------------------
-----------------------------------------
| False OR False = False | 0 OR 0 = 0 |
-----------------------------------------
| False OR True = True | 0 OR 1 = 1 |
-----------------------------------------
| True OR False = True | 1 OR 0 = 1 |
-----------------------------------------
| True OR True = True | 1 OR 1 = 1 |
-----------------------------------------
* Якщо ви виконуєте математику IPv4 протягом багатьох років, ви можете дістатись до того, що ви можете виконувати бінарні / десяткові перетворення в голові, а потім, можливо, ви зможете робити математику IPv4 у десятковій формі. Незважаючи на те, що я можу це зробити в своїй голові, я завжди двічі перевіряю за допомогою калькулятора IP або перетворюю на двійкові, виконую математику та перетворюю назад у десяткові, перш ніж вносити зміни у виробничу мережу.
IPv4 пунктирно-десяткові позначення, наприклад 198.51.100.223
, просто спрощують людину читати IPv4 адресу. Чотири окремі розділи, звані октетами, справді не мають значення для IPv4. Не робіть поширеної помилки мислення, що октети мають особливе значення. Адреса IPv4 - це дійсно 32-бітове двійкове число, і саме таким чином мережеві пристрої бачать та використовують IPv4-адресу.
Наш приклад IPv4-адреса 198.51.100.223
насправді 11000110001100110110010011011111
є пристроєм у мережі, тому ви можете бачити, що крапкове десяткове подання дійсно полегшує людину. Кожен октет - це вісім біт 32-бітної адреси (звідси загальновживаний термін "октет"), тому є чотири октети ( 32 address bits / 8 bits per octet = 4 octets
). У нашому прикладі 32-розрядна двійкова адреса розділена на чотири октети, потім кожен двійковий октет перетворюється на десяткове число *:
Binary address: 11000110001100110110010011011111
---------------------------------------------
Binary octets: | 11000110 | 00110011 | 01100100 | 11011111 |
Decimal octets: | 198 | 51 | 100 | 223 |
---------------------------------------------
Dotted-decimal: 198.51.100.223
Оскільки кожен октет має вісім біт у довжину, кожен октет матиме значення між 0
та 255
(будь-які значення, що перевищують 255
недійсні). Причина полягає в тому, що 2^8 = 256
: 2
(база двійкових чисел) потужність 8
(вісім біт на октет) дорівнює 256
кількості різних значень, які можуть бути виражені восьмибітовим октетом. Пам'ятайте, що перше значення є 0
, тому 256
значення th буде на один менший від загальної кількості значень, яке можна виразити ( 256 – 1 = 255
).
Щоб правильно виконати математику IPv4, потрібно робити це у двійковій формі, інакше ви будете робити помилки, які спричинить вам проблеми та фрустрацію. Це означає, що ви повинні перетворити пунктирне десяткове позначення у двійкове перед тим, як спробувати маніпулювати ним:
Dotted-decimal: 198.51.100.223
---------------------------------------------
Decimal octets: | 198 | 51 | 100 | 223 |
Binary octets: | 11000110 | 00110011 | 01100100 | 11011111 |
---------------------------------------------
Binary address: 11000110001100110110010011011111
* Провідні нулі в точково-десятковій IPv4-адресі можуть бути інтерпретовані деякими програмами та мовами програмування як вісімковий (основа 8), а не десятковий (основа 10), що спричиняє помилки, і слід уникати провідних нулів для крапкового десяткового представлення IPv4, але провідні нулі необхідні для двійкових октетів IPv4 адреси, оскільки вони представляють бітові позиції в повній адресі, а вихід бітової позиції скоротить адресу і змінить бінарне значення.
Мережева маска IPv4 використовується для поділу адреси IPv4 на дві частини: мережеву частину та хост-частину. Ділення може бути на будь-яке бітове число, тому воно може потрапити в межах октету, а не на октетну межу, як багато людей неправильно припускають, що це завжди робиться. Мережа мережі IPv4 має той самий розмір, що і IPv4-адреса (32 біти), і вона виражається у крапково-десятковій нотації так само, як ви б виразили IPv4-адресу у крапково-десятковій нотації (чотири восьми бітні октети, розділені знаком a період). Наприклад, 255.255.248.0
.
Мережа IPv4 мережі складається з декількох послідовних 1
бітів (що представляють мережеву частину адреси), а потім число 0
бітів (що представляє частину хосту адреси). Загальна кількість 1
бітів і загальна кількість 0
бітів складає 32
, кількість бітів в IPv4-адресі або мережевій масці. Для нашого прикладу мережевої маски:
Dotted-decimal: 255.255.248.0
------------------------------------------------
Decimal octets: | 255 | 255 | 248 | 0 |
Binary octets: | 11111111 | 11111111 | 11111 | 000 | 00000000 |
------------------------------------------------
| 21 Network bits | 11 Host bits |
------------------------------------------------
Як бачимо, поділ між мережевою та хост-частиною адреси IPv4 за допомогою цієї конкретної маски потрапляє в межах октету, а не на октетну межу.
Мережа мережі IPv4 часто представлена кількістю послідовних 1
бітів у масці. Це по-різному називається довжиною мережевої маски або довжиною префікса, і вона представлена як /
наступна кількість послідовних 1
бітів у масці мережі. Для нашого прикладу підрахунок кількості послідовних 1
бітів отримує 21
, які можна представити як /21
.
Враховуючи довжину маски, ви можете обчислити пунктирно-десяткове представлення маски. Просто занесіть кількість 1
біт на довжину маски і додайте достатню кількість 0
бітів на кінці до загальних 32
бітів. Перетворіть отримане двійкове число в крапкове десяткове подання:
Mask length: /21
------------------------------------------------
| 21 Network bits | 11 Host bits |
------------------------------------------------
Binary octets: | 11111111 | 11111111 | 11111 | 000 | 00000000 |
Decimal octets: | 255 | 255 | 248 | 0 |
------------------------------------------------
Dotted-decimal: 255.255.248.0
Приклад може бути представлений традиційно як 198.51.100.223
мережева маска 255.255.248.0
, або він може бути представлений як більш сучасний CIDR (безкласовий маршрутизація між доменами) 198.51.100.223/21
.
Мережева адреса IPv4 - це адреса IPv4 з усіма встановленими бітами хоста 0
. Мережева адреса IPv4 може бути обчислена порозрядним AND
чином відповідних бітів у двійковому поданні адреси IPv4 та маски мережі IPv4. Вирівняйте біти за обома адресами та виконайте побіжно AND
на кожній парі відповідних бітів, а потім перетворіть окремі октети результату назад у десяткові.
Для нашого прикладу IPv4-адреса 198.51.100.223
та маска мережі 255.255.248.0
:
Decimal address: 198.51.100.223/21
Binary address octets: 11000110 00110011 01100100 11011111
Binary mask octets: 11111111 11111111 11111000 00000000 AND
-----------------------------------
Binary network octets: 11000110 00110011 01100000 00000000
Decimal network octets: 198 51 96 0
Dotted-decimal network: 198.51.96.0
Як бачите, мережевою адресою 198.51.100.223/21
є 198.51.96.0
. Зауважте, що ви не можете залежати від октетів, щоб повідомити, яка частина адреси - це мережа, а яка - адреса для хостів.
Ви можете скористатися цим методом, щоб визначити, чи є дві адреси в одній і тій же мережі чи в різних *. Якщо, наприклад, ви хочете побачити, чи знаходиться ваша 198.51.100.223/21
адреса в одній мережі IPv4 з хостом, призначеним 198.51.102.57
адресою, визначте свою мережу IPv4-адресу (як вище). Далі визначте мережеву адресу IPv4 відповідного хоста, використовуючи вашу мережну маску IPv4 (хости в одній мережі використовують ту саму мережеву маску, а у вас може бути не лише маска, а лише адреса призначення хоста):
Decimal address: 198.51.102.57/21
Binary address octets: 11000110 00110011 01100110 00111001
Binary mask octets: 11111111 11111111 11111000 00000000 AND
-----------------------------------
Binary network octets: 11000110 00110011 01100000 00000000
Decimal network octets: 198 51 96 0
Dotted-decimal network: 198.51.96.0
Порівняйте отриману мережеву адресу IPv4 з вихідною мережевою адресою IPv4 і зауважте, що мережеві адреси рівні, тому адреси хостів знаходяться в одній мережі.
Тепер давайте подивимось, чи перебуваєте ви в тій самій мережі, що і 74.125.69.100
адреса Google:
Decimal address: 74.125.69.100/21
Binary address octets: 01001010 01111101 01000101 01100100
Binary mask octets: 11111111 11111111 11111000 00000000 AND
-----------------------------------
Binary network octets: 01001010 01111101 01000000 00000000
Decimal network octets: 74 125 64 0
Dotted-decimal network: 74.125.64.0
Порівняйте отриману мережеву адресу IPv4 з вихідною мережевою адресою IPv4 і зауважте, що мережеві адреси різні, тому адреси хостів є в різних мережах.
* Це метод, який використовує хост джерела, щоб визначити, чи є він хостом призначення в тій же мережі, що і вихідний хост.
Одне корисне, часто недооцінене значення, яке корисне при IPv4-адресації, - маска хоста IPv4. Маска хоста IPv4 - це просто обернена маска мережі IPv4. Ви можете створити бінарну маску хоста з маски двійкової мережі або маску двійкової мережі з маски бінарного хоста, просто перевернувши 1
s і 0
s стартової маски:
Dotted-decimal network mask: 255.255.248.0
Decimal network mask octets: 255 255 248 0
Binary network mask octets: 11111111 11111111 11111000 00000000 invert
-----------------------------------
Binary host mask octets: 00000000 00000000 00000111 11111111
Decimal host mask octets: 0 0 7 255
Dotted-decimal host mask: 0.0.7.255
Математично створити маску хоста з мережевої маски або мережну маску з маски хоста, віднісши початкову маску від найдовшої маски ( /32
або маски "всі").
Це можна зробити у двійковій формі:
Binary all-ones mask octets: 11111111 11111111 11111111 11111111
Binary network mask octets: 11111111 11111111 11111000 00000000 -
-----------------------------------
Binary host mask octets: 00000000 00000000 00000111 11111111
Decimal host mask octets: 0 0 7 255
Dotted-decimal host mask: 0.0.7.255
Це також можна зробити в десятковій формі (октет "всі" 255
), але не забудьте перетворити його у двійкове, перш ніж насправді намагатися використовувати його для маніпуляції адресою:
Decimal all-ones mask octets: 255 255 255 255
Decimal network mask octets: 255 255 248 0 -
---------------
Decimal host mask octets: 0 0 7 255
Dotted-decimal host mask: 0.0.7.255
Мережева адреса IPv4 мережі - це мережева адреса IPv4 з усіма встановленими бітами хоста 1
. Існує кілька способів обчислити адресу широкомовної мережі IPv4.
Для нашого прикладу IPv4-адреса 198.51.100.223
та маска мережі 255.255.248.0
.
Ви можете виконувати побіжно OR
з IPv4 адресою або мережевою адресою за допомогою маски хоста:
Decimal address octets: 198 51 100 223
Binary address octets: 11000110 00110011 01100100 11011111
Binary host mask octets: 00000000 00000000 00000111 11111111 OR
-----------------------------------
Binary broadcast octets: 11000110 00110011 01100111 11111111
Decimal broadcast octets: 198 51 103 255
Dotted-decimal broadcast: 198.51.103.255
Ви можете просто додати значення хости IPv4 до значення мережевої адреси IPv4:
Binary network octets: 11000110 00110011 01100000 00000000
Binary host mask octets: 00000000 00000000 00000111 11111111 +
-----------------------------------
Binary broadcast octets: 11000110 00110011 01100111 11111111
Decimal broadcast octets: 198 51 103 255
Dotted-decimal broadcast: 198.51.103.255
Це також можна зробити в десятковій кількості:
Decimal network octets: 198 51 96 0
Decimal host mask octets: 0 0 7 255 +
---------------
Decimal broadcast octets: 198 51 103 255
Dotted-decimal broadcast: 198.51.103.255
Загальна кількість хостів IPv4 для мережі 2
відповідає потужності кількості бітів хоста, що становить 32
мінус кількість мережевих бітів. У нашому прикладі /21
мережі (маска 255.255.248.0
мережі) є 11
біти хоста ( 32 address bits – 21 network bits = 11 host bits
). Це означає, що 2048
в /21
мережі IPv4 ( 2^11 = 2048
) є загальні адреси хостів ( ).
За винятком /31
мереж (маска мережі 255.255.255.254
) та /32
(мережева маска 255.255.255.255
), кількість корисних адрес хостів у мережі IPv4 - це загальна кількість мережевих адрес хост мінус 2
(оскільки IPv4 мережі та широкомовні адреси непридатні для адрес хостів у мережі, повинен відняти їх від кількості корисних адрес хоста). У нашому прикладі мережі /21
( 255.255.248.0
) є 2046
корисні адреси хоста ( 2^11 - 2 = 2046
).
За винятком /31
мереж (маска мережі 255.255.255.254
) та /32
(мережева маска 255.255.255.255
), першою корисною адресою хоста мережі IPv4 є мережева адреса IPv4 плюс 1
(адреса мережі IPv4 не використовується для адреси мережевого хоста). У нашому прикладі мережі 198.51.96.0/21
, першою корисною адресою мережі є 198.51.96.1
( 198.51.96.0 + 1 = 198.51.96.1
). Просто встановіть біт низького порядку двійкової мережевої адреси IPv4 на 1
:
Decimal network octets: 198 51 96 0
Binary network octets: 11000110 00110011 01100000 00000000
-----------------------------------
Binary address octets: 11000110 00110011 01100000 00000001
Decimal address octets: 198 51 96 1
Dotted-decimal address: 198.51.96.1
За винятком /31
мереж (маска мережі 255.255.255.254
) та /32
(маска мережі 255.255.255.255
), останньою корисною адресою хоста мережі IPv4 є адреса широкомовної мережі IPv4 мінус 1
(адреса широкомовної мережі IPv4 не використовується для адреси мережевого хоста). У нашому прикладі мережі 198.61.96.0/21
, останньою корисною мережевою адресою є 198.51.103.254
( 198.51.103.255 - 1 = 198.51.103.254
). Просто встановіть біт низького порядку бінарної IPv4 мережевої адреси на 0
:
Decimal broadcast octets: 198 51 103 255
Binary broadcast octets: 11000110 00110011 01100111 11111111
-----------------------------------
Binary address octets: 11000110 00110011 01100111 11111110
Decimal address octets: 198 51 103 254
Dotted-decimal address: 198.51.103.254
Для нашого прикладу мережевої адреси IPv4 198.51.100.223
та маски 255.255.248.0
(або 198.51.100.223/21
) ми можемо обчислити велику кількість мережевої інформації:
Host address: 198.51.100.223
Network mask: 255.255.248.0
Network mask length: 21
Host mask: 0.0.7.255
Host mask length: 11
*Network address: 198.51.96.0
*First usable network host address: 198.51.100.1
*Last usable network host address: 198.51.103.254
*Network Broadcast address: 198.51.103.255
Total network host addresses: 2048
Usable network host addresses: 2046
* Екзамени мережевих класів освіти та сертифікаційні тести попросять вас швидко обчислити їх для мережі IPv4 з урахуванням адреси хоста та маски (або довжини маски). Ви можете використовувати підказки, наведені нижче, для швидкої перевірки відповідей:
Наведені підказки не стосуються /31
(мережева маска 255.255.255.254
) або /32
(мережева маска 255.255.255.255
).
З огляду на достатню кількість часу на іспиті та проблему, яка має декілька методів для отримання відповіді, вам слід скористатися кількома методами, щоб двічі перевірити відповідь.
Продовження в наступній відповіді ...
Продовження з попередньої відповіді ...
Шлюз - це хост у мережі, який вміє пересилати пакети до інших мереж, і йому може бути призначена будь-яка корисна адреса хоста мережі. Деякі люди лише випадковим чином присвоюють адреси шлюзу будь-якій застосованій мережевій адресі, деякі люди завжди присвоюють першу корисну адресу мережевого хосту шлюзу, а деякі люди завжди присвоюють останню корисну адресу хоста мережі для шлюзу. Насправді не має значення, яку корисну мережу адресу хоста ви призначите шлюзу, але ви повинні намагатися бути послідовною.
/31
(мережева маска 255.255.255.254
) МережіСпочатку /31
мережі (маска мережі 255.255.255.254
) були непридатними, оскільки існує лише один біт хоста, що дає вам дві загальні адреси мережевих хостів, але кількість корисних адрес мережевого хоста - це загальна кількість мережевих адрес мінус 2
( 2 total host addresses - 2 = 0 usable host addresses
).
Посилання "точка-точка" потребують лише двох адрес хоста (по одному для кожного кінця посилання). Традиційний спосіб призначення мереж IPv4 вимагав використання мереж /30
(маска мережі 255.255.255.252
) для посилань "точка-точка", але це витрачає половину адрес мережевого хоста, оскільки в /30
мережі є чотири загальні адреси мережевих хостів, але лише дві корисні адреси мережевих хостів ( 2^2 – 2 = 2
).
Із критичним дефіцитом адреси IPv4 було створено стандарт, що дозволяє використовувати /31
мережі для посилання "точка-точка". Це має сенс, оскільки немає необхідності в трансляції в таких мережах: будь-які пакети, надіслані хостом у мережі, призначені для єдиного іншого хоста в мережі, який ефективно транслює. У /31
мережі мережева адреса - це перша корисна адреса хоста, а широкомовна адреса - остання корисна адреса хоста.
На жаль, не всі постачальники (зокрема Microsoft) підтримують стандарт використання /31
мереж на посиланнях "точка-точка", і ви найчастіше бачите посилання "точка-точка" за допомогою /30
мереж.
/32
(мережева маска 255.255.255.255
) Мережі/32
(Мережева маска 255.255.255.255
) мережу як мережу, без адрес вузлів, а також адреса хоста, сам по собі. У мережі є лише одна адреса, і це адреса мережі. Оскільки в мережі немає інших хостів, трафік повинен бути спрямований на мережеву адресу та з неї.
Ці адреси часто використовуються у віртуальних мережевих інтерфейсах, визначених всередині пристрою, які можуть маршрутизувати пакети між його віртуальним та фізичним інтерфейсами. Прикладом цього є створення віртуального інтерфейсу в мережевому пристрої, який буде використовуватися як джерело або пункт призначення самого пристрою. Віртуальний інтерфейс не може випадати через фізичну проблему, наприклад, відключений кабель, і якщо пристрій має кілька шляхів до нього, інші пристрої все ще можуть спілкуватися з пристроєм, використовуючи адресу віртуального інтерфейсу, коли фізичний інтерфейс пристрою з якихось причин не працює .
Підмережа мережі - це створення декількох довших мереж із мережевої адреси та маски. Основна ідея полягає в тому, що ви позичаєте біти високого замовлення з хост-частини вихідної мережі. Припустимо, ви хочете створити 14 підмереж однакового розміру з нашої вихідної 198.51.96.0/21
мережі. Оскільки ви позичаєте біти високого порядку з хост-частини вихідної мережі, ви отримаєте число, яке є потужністю 2
, але 14
не є потужністю 2
, тому ви повинні отримати наступну більш високу потужність 2
, яка, як буває 16
( 16 = 2^4
). Потужність 2
у цьому випадку 4
- кількість хотів бітів високого порядку, необхідних для запозичення для кількості створених підмереж. Ви також можете використовувати математичну формулу, щоб визначити кількість потрібних бітів:Log2(X subnets) = Y borrowed bits
, округлене до наступного цілого значення:
Log2(14 subnets) = 3.807354922, rounded up = 4 borrowed bits
Для нашого прикладу необхідності 14 підмереж однакового розміру вихідної 198.51.96.0/21
мережі, починаючи з усіх 0
s * для першої підмережі, додайте 1
до частини підмережі, щоб отримати наступну підмережу:
----------------------------------------------
Original: | 21 network bits | 11 host bits |
----------------------------------------------
Network: | 110001100011001101100 | 0000 | 0000000 | = 198.51.96.0/21
Subnet 1: | 110001100011001101100 | 0000 | 0000000 | = 198.51.96.0/25
Subnet 2: | 110001100011001101100 | 0001 | 0000000 | = 198.51.96.128/25
Subnet 3: | 110001100011001101100 | 0010 | 0000000 | = 198.51.97.0/25
Subnet 4: | 110001100011001101100 | 0011 | 0000000 | = 198.51.97.128/25
Subnet 5: | 110001100011001101100 | 0100 | 0000000 | = 198.51.97.128/25
Subnet 6: | 110001100011001101100 | 0101 | 0000000 | = 198.51.98.128/25
Subnet 7: | 110001100011001101100 | 0110 | 0000000 | = 198.51.99.0/25
Subnet 8: | 110001100011001101100 | 0111 | 0000000 | = 198.51.99.128/25
Subnet 9: | 110001100011001101100 | 1000 | 0000000 | = 198.51.100.0/25
Subnet 10: | 110001100011001101100 | 1001 | 0000000 | = 198.51.100.128/25
Subnet 11: | 110001100011001101100 | 1010 | 0000000 | = 198.51.101.0/25
Subnet 12: | 110001100011001101100 | 1011 | 0000000 | = 198.51.101.128/25
Subnet 13: | 110001100011001101100 | 1100 | 0000000 | = 198.51.102.0/25
Subnet 14: | 110001100011001101100 | 1101 | 0000000 | = 198.51.102.128/25
----------------------------------------------
Subnetted: | 25 network bits | 7 host bits |
----------------------------------------------
----------------------------------------------
Unused: | 110001100011001101100 | 111 | 00000000 | = 198.51.103.0/24
----------------------------------------------
* Існує стійкий міф про те, що для підмереж, як і для адрес хостів, всі нулі та всі підмережі не можна використовувати, однак цей міф був явно розповсюджений багато років тому стандартом. На жаль, цей міф поширюється на деякі класи мережевої освіти, і правильною відповіддю для тих (неправильних) класів було б використання другої під 15мережі.
Можна підмережу підмережі на різні підмережі (кожна мережа IPv4 - це підмережа 0.0.0.0/0
мережевої адреси), як у нашому прикладі вище, де невикористана підмережа є /24
підмережею, але це вимагає ретельного планування, щоб отримані підмережі починалися з правильний біт.
Наприклад, скажімо, що нам потрібна і а, /26
і /27
підмережа з нашої 198.51.96.0/21
мережі. Для цього є два способи: почати з /26
підмережі або почати з /27
підмережі.
Починаючи з /26
підмережі:
Original: | 110001100011001101100 | 00000000000 | /21
Subnet 1: | 110001100011001101100 | 00000 | 000000 | /26
Додайте 1
до частини підмережі, щоб отримати вихідне положення наступної підмережі:
Subnet 2: | 110001100011001101100 | 00001 | 000000 | /26
Потім розгорніть другу підмережу до /27
:
Subnet 2: | 110001100011001101100 | 000010 | 00000 | /27
Зауважте, що ми фактично підмережу /26
підмережі в /27
підмережу, і це працює добре, тому що 27
більша за 26
.
Починаючи з /27
підмережі:
Original: | 110001100011001101100 | 00000000000 | /21
Subnet 1: | 110001100011001101100 | 000000 | 00000 | /27
Додайте 1
до частини підмережі, щоб отримати вихідне положення наступної підмережі:
Subnet 2: | 110001100011001101100 | 000001 | 00000 | /27
Зауважте, що у хост-частині (п'ять хостів-хостів) залишилось недостатньо бітів для підтримки /26
мережі, для чого потрібно шість хотів-хостів ( 32 address bits – 26 network bits = 6 host bits
). Якщо ми будемо використовувати це як вихідне положення для /26
підмережі, ми фактично перекриємо попередню та наступну /26
мережі. Нам потрібно залишити розрив розміром /27
мережі для вихідного положення /26
мережі:
Original: | 110001100011001101100 | 00000000000 | /21
Subnet 1: | 110001100011001101100 | 000000 | 00000 | /27
Unused: | 110001100011001101100 | 000001 | 00000 | /27
Subnet 2: | 110001100011001101100 | 00001 | 000000 | /26
/26
Підмережі завжди повинна починатися на /26
кордоні: кожна друга /27
межа підмережі, кожна четверта /28
межа, кожна восьма /29
межа, і т.д. Це правило для будь-якого розміру підмережі: підмережа повинна починатися на кордоні більше підмережі , яка дорівнює 2
силі більшого розміру підмережі мінус розмір підмережі. Наприклад, /23
підмережа повинна запускатися в кожній 4-й /25
мережі ( 2^(25 - 23) = 2^2 = 4
).
Спроба налаштувати пристрій з мережевою адресою, яка починається з невірної межі бітів, або призведе до дивних, важких для усунення проблем, або пристрій призведе до помилки щодо перекриття мереж. Деякі люди намагаються це зробити за допомогою пунктирних десятків, і це може призвести до помилок. Наприклад, 198.51.96.0/27
адреси мережевого хоста проходять 198.51.96.0
через 198.51.96.31
. Якщо ви це знаєте та намагаєтесь використовувати 198.51.96.32/26
мережу, у вас виникнуть проблеми, оскільки ця мережа починається з неправильної бітової межі та перекриває /27
мережу (перевірити, скориставшись побіжно AND
з адресами та мережевими масками). Воно очевидно в двійковій, але не настільки очевидно в крапковому-десятковому. Ви можете дізнатися, що /26
мережі повинні запускатися з кратного десяткового числа64
кордон, але бачачи його у двійковому, можна точно сказати вам, чи ви помилилися чи ні.
Загальні екзаменаційні запитання дадуть вам мережу та запропонують вам створити кілька підмереж різного розміру на основі кількості хостів для кожної підмережі. Якщо ви можете, вам потрібно уточнити, чи кількість хостів заснована на загальній кількості адрес хостів у мережі чи чи вона базується на кількості використовуваних хостів у мережі. (Наприклад, якщо питання запитує підмережу з 256
або 255
хостами, /24
мережа надасть вам 256
загальні адреси хостів, але лише 254
корисні адреси хоста. Таке запитання може бути хитрому питанням, і правильна відповідь залежатиме від того, чи ні Питання означає загальну адресу хоста або корисні адреси хосту.)
Зразок питання:
Given the 198.51.96.0/21 network, subnet it for the following departments:
Department 1: 500 hosts
Department 2: 100 hosts
Department 3: 200 hosts
Department 4: 1000 hosts
Як ми побачили в розділі «Підмережа IPv4 Networks», найпростіший спосіб зробити це - спершу сортувати відділи за найбільшою та найменшою кількістю хостів, оскільки нам не потрібно буде мати справу з пробілами в мережі:
Department 4: 1000 hosts
Department 1: 500 hosts
Department 3: 200 hosts
Department 2: 100 hosts
Ви можете округлити кожен до наступної великої потужності 2, щоб отримати кількість необхідних загальних адрес хостів для кожної підмережі, а потім отримати кількість необхідних бітів хоста від показника потужності 2
:
Department 4: 1024 total host addresses = 2^10 = 10 host bits
Department 1: 512 total host addresses = 2^9 = 9 host bits
Department 3: 256 total host addresses = 2^8 = 8 host bits
Department 2: 128 total host addresses = 2^7 = 7 host bits
Ви також можете змінити попередню формулу для знаходження кількості бітів, необхідних для певної кількості підмереж однакового розміру, щоб визначити кількість бітів хоста, необхідних для кожної підмережі:, Log2(X hosts) = Y host bits
округлені до наступного цілого значення:
Department 4: Log2(1000 hosts) = 9.96578428466209, rounded up = 10 host bits
Department 1: Log2( 500 hosts) = 8.96578428466209, rounded up = 9 host bits
Department 3: Log2( 200 hosts) = 7.64385618977472, rounded up = 8 host bits
Department 2: Log2( 100 hosts) = 6.64385618977473, rounded up = 7 host bits
Коли у вас є кількість хостів бітів, необхідних для кожної підмережі, виконайте двійкову математику, щоб отримати конкретну підмережу для кожного відділу. Не забудьте додати 1
до підмережі, щоб отримати початкову адресу наступної підмережі:
Original: | 110001100011001101100 | 00000000000 | = 198.51.96.0/21
Department 4: | 110001100011001101100 | 0 | 0000000000 | = 198.51.96.0/22
Department 1: | 110001100011001101100 | 10 | 000000000 | = 198.51.100.0/23
Department 3: | 110001100011001101100 | 110 | 00000000 | = 198.51.102.0/24
Department 2: | 110001100011001101100 | 1110 | 0000000 | = 198.51.103.0/25
Unused: | 110001100011001101100 | 1111 | 0000000 | = 198.51.103.128/25
Вас можуть попросити надати мережеву інформацію для певної підмережі певної мережі. Наприклад, вас можуть попросити надати мережеву інформацію для 23-ї /26
підмережі 198.51.96.0/21
мережі. Оскільки вам потрібна 23-а підмережа, ви можете конвертувати 22
(пам’ятайте, 0
це перша підмережа, тому 23-та підмережа була б 22
*) у двійковий: Decimal 22
= Binary 10110
. Використовуйте перетворене двійкове число в частині підмережі адреси:
Original: | 110001100011001101100 | 00000000000 | = 198.51.96.0/21
Subnet 23: | 110001100011001101100 | 10110 | 000000 | = 198.51.101.128/26
Визначивши 23-ю мережеву адресу, 198.51.101.128/26
ви можете обчислити іншу мережеву інформацію (як описано в попередніх розділах):
Network address: 198.51.101.128
Network mask length: 26
Network mask: 255.255.255.192
Host mask length: 6
Host mask: 0.0.0.63
First usable network host address: 198.51.101.1
Last usable network host address: 198.51.101.62
Broadcast address: 198.51.101.63
Total network host addresses: 64
Usable network host addresses: 62
* Існує стійкий міф про те, що для підмереж, як і для адрес хостів, всі нулі та всі підмережі не можна використовувати, однак цей міф був явно розповсюджений багато років тому стандартом. На жаль, цей міф поширюється на деякі класи мережевої освіти, і правильною відповіддю для цих (неправильних) класів було б використання 24-ї ( 23
десяткової, 10111
двійкової) підмережі в нашому прикладі рівних підмереж, а не власне 23-ї ( 22
десяткової, 10110
двійкова) підмережа.
Можливо, вас попросять знайти адресу хоста для певного хоста даної мережі. Наприклад, вас можуть попросити вказати адресу хоста для 923-го хоста 198.51.96.0/21
мережі. Оскільки вам потрібен 923-й хост, ви можете перетворитись 923
у двійковий: Decimal 923
= Binary 1110011011
. Додайте перетворений двійковий номер до мережевої адреси:
Binary network: | 110001100011001101100 | 00000000000 |
Binary 923: | 000000000000000000000 | 01110011011 | +
-----------------------------------
Host address: | 110001100011001101100 | 01110011011 | = 198.51.99.155
Можливо, вам нададуть два (або більше) різних хост-адрес і попросять створити найбільшу мережу (найменшу кількість хостів), яка містить обидві адреси хосту. Наприклад, знайдіть найбільшу загальну мережу 198.51.100.223
і 198.51.101.76
.
Спочатку перетворіть пунктирні десяткові адреси у двійкові:
198.51.100.223 = 11000110001100110110010011011111
198.51.101.76 = 11000110001100110110010101001100
Далі, починаючи з біта найвищого порядку (лівий край), порівнюйте двійкові адреси в кожній позиції бітів, поки біти в одній позиції не збігаються:
198.51.100.223 = | 11000110001100110110010 | 011011111 |
198.51.101.76 = | 11000110001100110110010 | 101001100 |
Порахуйте кількість збіжних бітів 23
у цьому випадку, щоб отримати довжину маски. Потім ви можете взяти будь-яку адресу та виконувати побіжно AND
мережеву маску, щоб отримати загальну мережу. Якщо це зробити на обох адресах, це повинно призвести до однієї мережі, а якщо цього немає, то ви або зробили помилку, або ви пропустили незрівняне бітове положення.
198.51.100.223 = 11000110001100110110010011011111
/23 mask length = 11111111111111111111111000000000 AND
--------------------------------
Binary network: 11000110001100110110010000000000 = 198.51.100.0/23
198.51.101.76 = 11000110001100110110010111011111
/23 mask length = 11111111111111111111111000000000 AND
--------------------------------
Binary network: 11000110001100110110010000000000 = 198.51.100.0/23
Зауважте, що дві мережеві адреси збігаються. Це означає, що найбільшою загальною мережею для двох адрес хосту є 198.51.100.0/23
(позначення CIDR) або (традиційна) 198.51.100.0
з маскою 255.255.254.0
.
* Ви можете побачити це як найменша загальна мережа (або якийсь варіант, наприклад мінімальна мережа або маска). Найменша мережа є насправді 0.0.0.0/0
( 0
мережеві біти), і це спільна мережа для всіх IPv4-адрес, тому це найменша спільна мережа між будь-якими адресами IPv4. Плутанина виникає через те, що багато людей дивляться на головну частину адреси і бачать її розмір як розмір мережі, а не розмір мережевої частини адреси.
Сам по собі IPv4 не має поняття і не розмежовує публічну та приватну адреси. Приватна адресація IPv4 була обрана довільно, і Інтернет-провайдери за домовленістю не пересилатимуть пакети в загальнодоступному Інтернеті за допомогою адрес у приватному адресному просторі, але мережеві пристрої та хости не мають уявлення, чи адреса є загальнодоступною чи приватною.
Існує три діапазони адрес, визначені приватною адресацією IPv4:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Спочатку адреси IPv4 поділялися на мережеві класи. Класна адресація була знятої десятиліттями тому, а сучасні мережі базуються на CIDR (Classless Inter-Domain Routing), але, на жаль, багато мережевих класів навчальних програм та іспитів на сертифікацію наполягають на тестуванні ваших знань щодо вмілої адреси. Будь ласка, вивчіть і будьте зручні з усією попередньою математикою IPv4 в цьому документі, перш ніж ви дізнаєтесь про класне адресивання.
Класи адрес IPv4 базуються на перших бітах адреси:
Class Address Starts With Address Range Default Size*
A First one bit = 0 0.0.0.0 to 127.255.255.255 /8
B First two bits = 10 128.0.0.0 to 191.255.255.255 /16
C First three bits = 110 192.0.0.0 to 223.255.255.255 /24
D First four bits = 1110 224.0.0.0 to 239.255.255.255 N/A
E First four bits = 1111 240.0.0.0 to 255.255.255.255 N/A
255.0.0.0
( /8
) та маску хоста за замовчуванням 0.255.255.255
, що дає вам 16,777,216
загальні адреси хостів у мережі.255.255.0.0
( /16
) та маску хоста за замовчуванням 0.0.255.255
, що дає вам 65,536
загальні адреси хостів у мережі.255.255.255.0
( /24
) та маску хоста за замовчуванням 0.0.0.255
, що дає вам 256
загальні адреси хостів у мережі.255.255.255.255
, яка є індивідуальною адресою, яку кожен хост у мережі вважатиме власною. Це означає, що все, що надсилається 255.255.255.255
, отримуватиме та оброблятиме кожен хост у мережі.Оскільки кожен клас має розмір мережі за замовчуванням, деякі питання передбачають маску за замовчуванням для вказаної адреси, тому будь-які обчислення потрібно робити на основі маски мережі за замовчуванням. Для нашої приклади адреси 198.51.100.223
:
Binary: 11000110 00110011 01100100 11011111
Зауважте, що перші три біти адреси - це 110
означає, що це адреса класу C, а відсутність будь-якої маски чи довжини маски, мережева маска вважається такою 255.255.255.0
( /24
), що робить мережеву адресу 198.51.100.0
.
* Не робіть поширеної помилки, думаючи, що мережева маска диктує мережевий клас, це навпаки. Наприклад, багато людей вважають будь-яку /24
мережу мережею класу C, але це навіть не є віддаленою правдою. Враховуючи, наприклад, 10.11.12.0/24
мережу, багато людей неправильно називають мережу класу C через мережеву маску, навіть незважаючи на те, що перший біт адреси - 0
це мережа класу A, хоча і з довшою мережевою маскою, ніж за замовчуванням Маска мережі класу A, тобто це підмережа мережі класу A, а не мережа класу C.
(Намагаючись утримати всі відповіді на масках в одному місці, після інших відмінних відповідей я додав цю про візуальний метод.)
Розміри підмережі залежно від кількості хостів
Це для поширеного питання "Як я розрізаю заданий розмір мережі на n частин, дозволяючи x 1 хостів у мережі 1, x 2 хостів у мережі 2 тощо"? можна абсолютно вирішити, опрацювавши методи, описані в інших відмінних відповідях.
Деяким людям, можливо, сподобається більш наочний метод та деякі загальні поради.
Візуальний метод «склоріза»
Те, як я часто навчаю візуального розуміння цього, полягає в наступному методі:
Спочатку уявіть собі паперову гільйотину так:
( Зображення з Вікіпедії від Nathan CC BY-SA 3.0)
Властивості цього різака полягають у тому, що він ріже лише прямі лінії, він завжди ріже весь папір і прорізається перпендикулярно стороні. Наша особлива гільйотина суєтна: вона розріже папір навпіл, і ми не зможемо зробити виріз ближче 1 см від краю.
Ось ілюстрація цього процесу. Ви бачите, що на зрізі 1 та нарізку 2 можливий лише один вид розрізу, але при зрізі 3 ми робимо вибір: вирізаємо маленький шматочок (червоний) або великий шматок (синій), даючи дві різні можливості.
Це те, що часто називають проблемою гільйотини , яку я зрозумів як проблему «склоріза», так як листове скло справді потрібно розрізати на всьому протязі, і цю специфіку можна назвати «двійковим склорізом», оскільки це завжди розрізання на половинки.
Коли я справді роблю це в реальному житті, я подумки роблю халви, дивлячись на таку сітку. Я пам'ятаю, що / 26 має починатися з 0, .64, 128 або .192; Я можу знати, що сьомий орендований рядок потребує сьомий / 30 у верхній чверті, але я не пам’ятаю, що це .216.
Сітка, очевидно, може бути використана і для представлення третього октету, і кожен квадрат являє собою / 24. Тепер сказано, що a / 18 починається з .0, .64, .128 або .192.
Загальні поради щодо техніки
Загальна процедура:
Приклад:
IP: 128.42.5.4
У двійковій формі: 10000000 00101010 00000101 00000100
Підмережа: 255.255.248.0
Як ви могли визначити префікс, мережу, підмережу та номери хостів?
32768 16384 8192 4096 2048 1024 512 256 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/17 /18 /19 /20 /21 /22 /23 /24 ----> CIDR
32766 16382 8190 3094 2046 1022 510 254 ----> Host
128 64 32 16 8 4 2 1 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/25 /26 /27 /28 /29 /30 /31 /32 ----> CIDR
126 62 30 14 6 2 * - ----> Host
128 64 32 16 8 4 2 1
10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001
Example
Network=192.168.1.0 /24;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.0
Ip address range 192.168.1.0----192.168.1.255
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.254;
Broadcast address = 192.168.1.255;
254 Host
Network=192.168.1.0 /25;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.128
Ip address range 192.168.1.0----192.168.1.128
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.126;
Broadcast address = 192.168.1.127;
126 Hosts
When the CIDR increased ex. /24. /25. the network will divided by the
binary number.
/25 increase network 0-128| 128- 256 | you will have 2 Networks
/26 increase network 0-64 | 64 - 128 | 128-192 | 192-256 you will have 4 Networks
.
.
.
/32......