Чому я не можу використовувати першу або останню адресу в підмережі?


37

У мене мережа з діапазоном 10.0.0.0/24. Це означає, що у мене від 10.0.0.0 до 10.0.0.255, проте я не можу використовувати 10.0.0.0 або 10.0.0.255, але я можу використовувати що-небудь між цим.

Чому це? Маска 255.255.255.0 означає, що остання цифра - це адреса хоста, тож чому я не можу використовувати 0 або 255?


7
Зауважте, що це лише IPv4. IPv6 має різні правила щодо першої та останньої адреси в підмережі.
Майкл Хемптон

1
У Linux не виникне проблем із використанням першої адреси. Деякі старі системи вважають, що .0 - це трансляційна адреса і заважає вам використовувати її, але це неправильно :)
Navin

Відповіді:


70

У мережі / 24 ви не можете використовувати, 0оскільки це ідентифікація мережі (пристрої використовують її для розпізнавання різних мереж, до яких вони підключені).

На ПК з Windows відкрийте командний рядок і введіть netstat -r. Ви отримаєте таблицю маршрутизації, яку використовує ПК, кожна мережа вказана за допомогою ідентифікації мережі (перша адреса).

введіть тут опис зображення

Остання адреса, 255у випадку мережі / 24, - це адреса широкомовної передачі. Пристрої, підключені до мережі, використовують його для надсилання трансляції - повідомлення, призначене для всіх пристроїв у мережі.

Загалом випадку перша адреса є ідентифікація мережі і остання є широкомовною , то вони не можуть бути використані як звичайні адреси.


9
Для / 31 є спеціальний виняток, однак: вони вважаються неявними посиланнями, оскільки вони мають лише дві адреси.
Саймон Ріхтер

10
Розміщення вашої загальнодоступної IP-адреси та ім’я користувача для вказаної системи надає мені heebie-jeebies.
mikeazo

8
@mikeazo Чому? У вас пристойні паролі і fail2ban, правда? Крім того, кожна IPv4-адреса в Інтернеті атакується.
Майкл Хемптон

4
@MichaelHampton тому, що зараз Інтернет знає своє ім'я користувача, його IP-адресу і що він не (вдало) використовує SSH-ключі, а паролі. Це вже вдосконалює простір пошуку. Але ви праві: для професіонала це не повинно бути проблемою. Це не дуже добра практика вчити світ.
Конерак

29
@mikeazo Це скріншот, який я знайшов googling netstat -r. Це не моя система.
jcbermu

8

Зауважте, що ви не можете використовувати першу та останню адресу в діапазоні, якщо вона використовується для нумерації пристроїв у широкомовному домені (тобто фізичної мережі або vlan тощо). Як свідчить інша відповідь, справді перші та останні використовуються як мережеві та широкомовні адреси відповідно до цього сценарію. Крім того, у деяких сценаріях перша адреса також трактується як трансляція.

Однак є й інші сценарії використання, де ви можете використовувати першу та останню адреси. Наприклад, якщо ви адміністратор брандмауера і вам наданий діапазон 10.0.0.0-10.0.0.255 вашим мережевим адміністратором, тоді ви можете використовувати всі 256 адреси як NAT-адреси вашого брандмауера. Я визнаю, що я не бачив цього дуже часто, і коли це робиться, це може спричинити певну плутанину - так як перша реакція більшості людей вважає, що це не дозволено - і ця плутанина може бути приводом радити проти цього.

Якщо ви нитропотіте, то гаразд, строго кажучи, що 10.0.0.0-10.0.0.255 у цьому сценарії не є мережею / 24 , це діапазон або блок адрес, але я вважаю, що загальною практикою все ще називати це як "підмережа 10.0.0.0/24" у такому сценарії.


7
"Я визнаю, що я не бачив цього дуже часто, і коли це робиться, це може викликати певну плутанину - так як перша реакція більшості людей вважає, що це не дозволено - і ця плутанина може бути приводом радити проти цього". - Якщо я правильно пам’ятаю, деякі з цих «заплутаних людей» є конструкторами мережевого стека Windows NT (принаймні, оригінального до Vista), тому, якщо ви не бажаєте мати справу з користувачами Windows, які скаржаться, що їхній комп'ютер працює у кожному мережу, окрім вашої, і поясніть їм, що це вина Microsoft, а не ваша, ви б радили просто…
Jörg W Mittag

9
залиште ці дві адреси невикористаними.
Йорг W Міттаг

1
@ JörgWMittag, зачекайте, ви кажете, що з огляду на мережу 10.0.0.0/22 ​​(тобто 10.0.0.0-10.0.3.255), Windows 7 до 7 не може використовувати 10.0.1.0 або 10.0.2.255? (Хоча я не думаю, що це вже мало значення, оскільки старі версії вже не підтримуються)
ilkkachu

2
@ilkkachu: Я не впевнений, як ви придумали ці цифри. Мережева адреса для 10.0.0.0/22 ​​становить 10.0.0.0, а адреса широкомовної передачі - 10.0.3.255. Якщо я правильно пам'ятаю, є певні проблеми з використанням (принаймні однієї) цих двох адрес у мережі з комп'ютерами Windows зі старим (до Vista) TCP / IP стеком. Я точно не пам’ятаю, які були ці проблеми, і якщо ці проблеми існують лише тоді, коли ви намагаєтеся призначити одне з цих IP-адрес ПК з Windows або якщо також є проблеми з комунікацією між ПК з Windows та тими IP-адресами. Я також не пам'ятаю, чи це мережа…
Jörg W Mittag

2
@ JörgWMittag ilkkachu Навіть сьогодні, зі змінними підмережами, кілька ОС (не лише Windows) та багато іншого програмного забезпечення мають проблеми, використовуючи будь-яку адресу, що закінчується на 0 або 255. Навіть якщо вона дійсна як внутрішня адреса діапазону> 256 . Це залишок адресації класу A / B / C і програміст, припускаючи, що будь-який комп'ютер знаходиться в підмережі класу C, і тому 0 і 255 за визначенням недійсні. Навіть якщо ваша ОС і програмне забезпечення справляють це правильно, все одно можливо підключитися до іншого комп'ютера, який має проблеми з цим. Найкраще уникати .0 і .255 взагалі, навіть якщо вони дійсні у вашому налаштуванні.
Тонні

4

Читання Інтернет Стандарт структури підмережі процедури , по напрямку до стандартною схемою Інтернету для Subnetting і , в зокрема BROADCASTING дейтаграми В НАЯВНОСТІ підмереж розділу 7 описує обґрунтування вибору ви уявляєте.

Ваша гіпотеза правильна для підмереж CIDR з нескінченними бітовими масками.

Простіше вважати адресу трансляції як Bcast = Host | ~Mask. Це явно ігнорує вибір бітів у підмережі. Відповідно мережева адреса Net = Bcast & ~Mask.

Суворо, всі нулі (.0 для CIDR / 24) можуть використовуватися, але можуть переплутати деяке програмне забезпечення, тоді як усі (.255) зарезервовані як добре відома широкомовна адреса.

Деякі ранні випуски BSD Unix 4.2 перед RFC 919 були відправлені, використовуючи Netадресу в якості трансляції. Це викликало певну плутанину в змішаних середовищах до випуску 4.3.


1

Мережева адреса

Мережі для локальної мережі (LAN) або широкосмугової мережі (WAN) надається адреса на основі їх потужності. Термінали, приєднані до мережі, використовують ці адреси для спілкування один з одним. Система за замовчуванням залишає деяку адресу для зв'язку з адміністратором. Зазвичай "255" адреси використовуються для трансляції повідомлень у системах Linux або Fedora. Адміністратор використовує цю адресу для трансляції або адреси всіх користувачів мережі. У разі аварійного відключення адміністратор може транслювати повідомлення своїм користувачам, щоб зберегти свої дії. Деякі операційні системи надають можливість присвоювати адресу "0".

Дізнайтеся більше про основи мереж: мережева адресація від Microsoft

Також подивіться, що таке переклад мережевих адрес?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.