Як поставити дві підмережі поруч?


10

Я використовую цей калькулятор http://www.subnet-calculator.com/cidr.php , і я намагаюся зрозуміти, як розмістити дві різні підмережі поруч.

Наприклад, я хочу мати підмережу / 27, починаючи з 1.0.0.1, поруч з / 25, тому я вважаю, що ця підмережа / 25 розпочнеться з 1.0.0.32, оскільки така є поза мережею / 27. Однак, коли я намагаюся це зробити, калькулятор каже, що діапазон для / 25 буде 1,0.0,1-1,0,0,127, не починаючи з .32.

Це обмеження калькулятора чи як ви ставите підмережі поруч?

EDIT : Я думаю, моє запитання полягає в тому, які підмережі можуть йти поруч? Що це визначає?


Ви не можете мати / 25, починаючи з 1.0.0.32, якщо це те, що ви просите. Пам'ятайте, що підмережі не є довільними діапазонами, вони є лише способом відрізнити номер хоста від номера мережі.
BatchyX

Я думаю, моє запитання - які підмережі можуть перейти поруч? Чи є документ або довідка, на яку можна поїхати куди?
інстипод

2
Я пропоную вам прочитати про бітові маски, тоді ви зрозумієте, що таке маска підмережі.
BatchyX

Відповіді:


7

Вам потрібно розрізнити початкову адресу підмережі та розмір підмережі . Число за косою рисою - розмір (у 32-х бітах). Таким чином, у вас може бути дві / 27 таких підмереж

10.0.0.1/27  == 10.0.0.1  -> 10.0.0.30
10.0.0.33/27 == 10.0.0.33 -> 10.0.0.62

але а / 27 та a / 25 підмережа таким же чином означатиме запуск / 25 за більш пізньою адресою

10.0.0.1/27   == 10.0.0.1   -> 10.0.0.30
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

оскільки підмережа / 25 "потребує" більше місця. Не можна запускати підмережу / 25 за довільною адресою лише за правильними межами:

10.0.0.1/25   == 10.0.0.1   -> 10.0.0.126
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

але зауважте, що

10.0.0.33/25   == 10.0.0.1   -> 10.0.0.126

тому що 10.0.0.33/25це просто ще один спосіб сказати 10.0.0.1/25або 10.0.0.0/25.

Ви також можете вирішити "заповнити" простір між вами / 27 та вашою / 25 підмережею більше / 27 підмереж:

10.0.0.1/27   == 10.0.0.1   -> 10.0.0.30
10.0.0.33/27  == 10.0.0.33  -> 10.0.0.62
10.0.0.65/27  == 10.0.0.65  -> 10.0.0.94
10.0.0.97/27  == 10.0.0.97  -> 10.0.0.126
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

або з іншим / 27 і a / 26:

10.0.0.1/27   == 10.0.0.1   -> 10.0.0.30
10.0.0.33/27  == 10.0.0.33  -> 10.0.0.62
10.0.0.65/26  == 10.0.0.65  -> 10.0.0.126
10.0.0.129/25 == 10.0.0.129 -> 10.0.0.254

1
Підмережі включають мережеву адресу та адресу широкомовної передачі ... у вас немає невикористаних IP-адрес між суміжними підмережами. І намагання пояснити, чому деякі підмережі можна поєднувати в більш коротку маску без двійкової математики, є абсолютно оманливим.
cpt_fink

4

Префікси / підмережі використовують бінарну логіку. Підмережі визначаються бітами, які фіксуються, і бітами, які можна використовувати для адрес. Кількість фіксованих бітів - це довжина префікса або маска підмережі. Кілька прикладів IPv4:

Prefix:           10.0.0.0/8
Prefix length:    8
Subnet mask:      255.0.0.0
Prefix bits:      00001010 00000000 00000000 00000000 = 10.0.0.0
Subnet mask bits: 11111111 00000000 00000000 00000000 = 255.0.0.0

А 1в бітах маски підмережі вказує, що відповідний біт фіксований, а 0вказує на те, що ви можете використовувати цей біт. Довжина префікса - це кількість бітів, встановлених 1, а маска підмережі - це двійкове число, записане у вигляді адреси IPv4.

Тож у цьому прикладі ви можете використовувати:

First address in the prefix: 00001010 00000000 00000000 00000000 = 10.0.0.0
Last address in the prefix:  00001010 11111111 11111111 11111111 = 10.255.255.255

Ще один приклад з іншою довжиною префікса:

Prefix:           10.0.0.0/10
Prefix length:    10
Subnet mask:      255.192.0.0
Prefix bits:      00001010 00000000 00000000 00000000 = 10.0.0.0
Subnet mask bits: 11111111 11000000 00000000 00000000 = 255.192.0.0

У цьому прикладі ви можете використовувати менше адрес:

First address in the prefix: 00001010 00000000 00000000 00000000 = 10.0.0.0
Last address in the prefix:  00001010 00111111 11111111 11111111 = 10.63.255.255

Як ви бачите, підмережа визначається значенням і кількістю фіксованих бітів. Використовуючи свій приклад, 1.0.0.32/25ви отримуєте:

Prefix:           1.0.0.32/25
Prefix length:    25
Subnet mask:      255.255.255.128
Prefix bits:      00000001 00000000 00000000 00100000 = 10.0.0.32
Subnet mask bits: 11111111 11111111 11111111 10000000 = 255.255.255.128

First address in the prefix: 00000001 00000000 00000000 00000000 = 1.0.0.0
Last address in the prefix:  00000001 00000000 00000000 01111111 = 1.0.0.127

Значення 32 знаходиться в середині гнучких бітів. Переглядаючи /25префікси, ви отримуєте:

Prefix length:      25
Subnet mask bits:   11111111 11111111 11111111 10000000

1st /25 in 1.0.0.0: 00000001 00000000 00000000 00000000 = 1.0.0.0/25
2nd /25 in 1.0.0.0: 00000001 00000000 00000000 10000000 = 1.0.0.128/25
3rd /25 in 1.0.0.0: 00000001 00000000 00000001 00000000 = 1.0.1.0/25
4th /25 in 1.0.0.0: 00000001 00000000 00000001 10000000 = 1.0.1.128/25
5th /25 in 1.0.0.0: 00000001 00000000 00000010 00000000 = 1.0.2.0/25
Etc.

Переглядаючи /27префікси, ви отримуєте:

Prefix length:      27
Subnet mask bits:   11111111 11111111 11111111 11100000

1st /25 in 1.0.0.0: 00000001 00000000 00000000 00000000 = 1.0.0.0/27
2nd /25 in 1.0.0.0: 00000001 00000000 00000000 00100000 = 1.0.0.32/27
3rd /25 in 1.0.0.0: 00000001 00000000 00000000 01000000 = 1.0.0.64/27
4th /25 in 1.0.0.0: 00000001 00000000 00000000 01100000 = 1.0.0.96/27
5th /25 in 1.0.0.0: 00000001 00000000 00000000 10000000 = 1.0.0.128/27
Etc.

У підмережі IPv4 перша адреса (всі гнучкі біти 0) зарезервована і називається мережевою адресою. Остання адреса (всі гнучкі біти 1) - це адреса трансляції підмережі. Ви не можете використовувати їх для мережевих інтерфейсів на пристроях.

Якщо ви хочете поставити кілька підмереж поруч, вам доведеться переконатися, що вони не перетинаються. Якщо у вас не так багато адресного простору, як, наприклад, з IPv4, підключення всіх підмереж може бути дуже складним процесом, а зберігати його керованим при зміні плану адресності ще важче. Ось чому з IPv6 так приємно працювати: велика кількість адресного простору, а підмережа зазвичай - /64це (можна використовувати різні довжини префікса, але це порушує деякі речі, такі як автоматична конфігурація).

Якщо ви зацікавлені в планах щодо адреси IPv6, тоді подивіться документ "Підготовка плану адреси адреси IPv6", який я написав пару років тому для SURFnet (Нідерландської національної дослідницької та освітньої мережі). Спосіб роботи підмережі в IPv6 точно такий же, як і для IPv4, за винятком того, що числа набагато більші і записуються шістнадцятковим (що набагато краще відповідає бітам, ніж десяткові позначення, що використовуються для IPv4!). Довжина префікса з фіксованими та гнучкими бітами все працює точно так само. Короткий приклад:

Prefix:           2001:0db8:0000:0000:0000:0000:0000:0000/64
Prefix length:    64
Subnet mask:      not really used anymore in IPv6, but it would have been:
                  ffff:ffff:ffff:ffff:0000:0000:0000:0000
Prefix bits:      0010 0000 0000 0001 0000 1101 1011 1000 = 2001:0db8
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
Subnet mask bits: 1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff
                  1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000

First address in the prefix:
                  0010 0000 0000 0001 0000 1101 1011 1000 = 2001:0db8
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
Last address in the prefix:
                  0010 0000 0000 0001 0000 1101 1011 1000 = 2001:0db8
                  0000 0000 0000 0000 0000 0000 0000 0000 = 0000:0000
                  1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff
                  1111 1111 1111 1111 1111 1111 1111 1111 = ffff:ffff

So from 2001:0db8:0000:0000:0000:0000:0000:0000
     to 2001:0db8:0000:0000:ffff:ffff:ffff:ffff

PS: Я спеціально не використав тут рекомендовані / канонічні позначення. Зазвичай ви стискаєте нулі в адресі і пишете 2001:0db8:0000:0000:0000:0000:0000:0000як 2001:db8::, 2001:0db8:0000:0000:0000:0000:0000:0001пишеться як 2001:db8::1і т.д.


1
  • Для a / 24 останнім октетом (зазвичай зарезервованим) для мережі є .0 і лише .0. 1 subnet

  • Тоді для / 25 це може бути або .0, або .128. 2 subnets

  • Для а / 26 це може бути або .0, .64, .128, або .192. 4 subnets

  • Для а / 27 він може бути або .0, .32, .64, .96, .128, .160, .192 або .224. 8 subnets

  • для а / 28, .0, .16, .32, .48, .64, .80, .96, .112, .128, .144, .160, .176, .192, .208, .224, або .240. 16 subnets

  • для а / 29, .0, .8, .16, .24, .32, .40, .48, .56, .64, .72, .80, .88, .96, .104, .112, .120, .128, .136, .144, .152, .160, .168, .176, .184, .192, .200, .208, .216, .224, .232, .240, або. 248 32 subnets

  • Префікс / 30 зазвичай знаходиться в інтерфейсах точка-точка. 64 subnets

  • Префікс / 31 зазвичай не зустрічається в дикій природі, оскільки він не має загальних адресних хостів, оскільки він охоплює лише 2 мережеві номери, "мережу" та "трансляцію" без місця для IP хоста. 128 subnets(усі парні числа від 0 до 254)

  • Префікс / 32 використовується для визначення маршруту для одного хоста. Це найбільш специфічний маршрут і, якщо він присутній, повинен мати перевагу в маршрутизації над усіма іншими записами таблиці маршрутів, які також не є / 32s. A / 32 не має "мережі", ані "широкомовної" адреси. 256 subnets (0 та 255 можуть не працювати в деяких реалізаціях)


0

Простий спосіб зрозуміти це:

В IPv4:

Уявіть лінію 256 * 256 * 256 * 256 (або 2 ^ 32) можливих IP-адрес.

[] [] [] [] .................. [] [] []
       256*256*256*256 total IP adresses

Це маска підмережі 0,0.0.0 (або 0000 0000 0000 0000 0000 0000 0000 0000 у двійковій
формі ) Усі біти, які не маскуються, можуть використовуватися для надання адреси IP в цій мережі.

Можливі адреси в цій єдиній мережі:

0000 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK, не маскуючи тут нічого ...)

0000 0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) до
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)

Вся ця мережа починається з IP 0.0.0.0 і триває до IP 255.255.255.255

Кожен біт у масці підмережі розділить рядок на 2 рівні частини.

Перший біт у масці підмережі поділить його на 2 рівні частини, кожна з яких має 128 * 256 * 256 * 256 (або 2 ^ 31) IP-адреси:

[] [] [] .......... [] [] []  |  [] [] ........... [] []
128*256*256*256 IP Adresses       128*256*256*256 IP Adr

Маска підмережі 128.0.0.0 (або 1000 0000 0000 0000 0000 0000 0000 0000 у двійковій формі)
Усі біти, які не маскуються, можуть використовуватися для надання IP-адреси в цій мережі.

Отже, у вас може бути 2 підмережі, а для кожної підмережі - 31 біт доступних IP-адрес.

Для першої підмережі (тієї, де за мережевою маскою є "0")

1000 0000 0000 0000 0000 0000 0000 0000 (<- МЕРЕЖА)

0000 0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) до
0111 1111 1111 1111 1111 1111 1111 1111 (IP 127.255.255.255)

і для 2-ї підмережі (тієї, де за мережевою маскою є "1")

1000 0000 0000 0000 0000 0000 0000 0000 (<- МЕРЕЖА)

1000 0000 0000 0000 0000 0000 0000 0000 (IP 128.0.0.0) до
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)

Наступний додатковий біт у масці підмережі ділить обидві сторони на 2 рівні частини по 2 ^ 30 IP-адреси кожна

І так далі...

Отже, якщо ви спробуєте призначити, наприклад, підмережу / 3, це означає, що ви провели 3 ітерації діленням, закінчившись 2 ^ 3 = 8 підмереж. Кожна підмережа може бути лише одним із 8 підрозділів всієї лінії машин. Вони не можуть перекриватися. Кожен починається після колишнього.

[] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... []
32*256*256*256 or 2^30 IP Adresses each.

Це маска підмережі 0,0.0.0

Отже, для першої підмережі (тієї, де за мережевою маскою є "000")

1110 0000 0000 0000 0000 0000 0000 0000 (<- МЕРЕЖА)

0000 0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) до
0001 1111 1111 1111 1111 1111 1111 1111 (IP 31.255.255.255)

і для 2-ї підмережі (тієї, де за мережевою маскою знаходиться '001')

1110 0000 0000 0000 0000 0000 0000 0000 (МЕРЕЖА)

0010 0000 0000 0000 0000 0000 0000 0000 (IP 32.0.0.0) до
0011 1111 1111 1111 1111 1111 1111 1111 (IP 63.255.255.255)

...

а для 7-ї підмережі (тієї, де за мережевою маскою стоїть "110")

1110 0000 0000 0000 0000 0000 0000 0000 (МЕРЕЖА)

1100 0000 0000 0000 0000 0000 0000 0000 (IP 192.0.0.0) до
1101 1111 1111 1111 1111 1111 1111 1111 (IP 223.255.255.255)

і для 8-ї підмережі (тієї, де за мережевою маскою є "111")

1110 0000 0000 0000 0000 0000 0000 0000 (МЕРЕЖА)

1110 0000 0000 0000 0000 0000 0000 0000 (IP 224.0.0.0) до
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)

Якщо ви продовжуєте додавати біт до маски мережі, ви продовжуєте ділитися: підмережа / 32 виділяє одну машину.

Але пам’ятайте, що ви не можете мати лише машини:

щоб все працювало, частина діапазону підмережі зарезервована:

для кожної підмережі, "0 біт у значенні 1" та "всі біти зі значенням 1" зазвичай зарезервовані для трансляції, тому зазвичай у підмережі доступні лише nb_of_possible_adresses_in_the_subnet-2 IP адреси для фактичних машинних інтерфейсів. І краще бути інтерфейсом шлюзу, який має інший інтерфейс в інших мережах, що дозволяє використовувати його як шлюз для досягнення інших мереж (і все, через шлюзи інших мереж)


важко представити чітко ... І я сподіваюся, що плутанина між "лінією 2 ^ 32 IP адреси" та 32-бітним представленням, що використовується скрізь, не є більш заплутаною, ніж допомогти ...
Олів'є Дулак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.