Dlaczego nie mogę użyć pierwszego lub ostatniego adresu w podsieci?

37

Mam sieć o zakresie 10.0.0.0/24. Oznacza to, że mam od 10.0.0.0 do 10.0.0.255, jednak nie mogę używać 10.0.0.0 lub 10.0.0.255, ale mogę używać wszystkiego między nimi.

Dlaczego to? Maska 255.255.255.0 oznacza, że ​​ostatnia cyfra to adres hosta, więc dlaczego nie mogę użyć 0 lub 255?

TheBro21
źródło
7
Pamiętaj, że jest to tylko IPv4. IPv6 ma różne reguły dotyczące pierwszego i ostatniego adresu w podsieci.
Michael Hampton,
1
W systemie Linux nie będziesz mieć problemu z użyciem pierwszego adresu. Niektóre stare systemy uważają, że .0 jest adresem rozgłoszeniowym i uniemożliwia korzystanie z niego, ale to źle :)
Navin

Odpowiedzi:

70

W sieci / 24 nie można używać, 0ponieważ jest to identyfikacja sieci (urządzenia używają jej do rozpoznawania różnych sieci, do których są podłączone).

Na komputerze z systemem Windows otwórz wiersz polecenia i wpisz netstat -r. Otrzymasz tabelę routingu używaną przez komputer, każda sieć jest wymieniona przy użyciu identyfikacji sieci (pierwszy adres).

wprowadź opis zdjęcia tutaj

Ostatni adres, 255w przypadku sieci a / 24, to adres rozgłoszeniowy. Urządzenia podłączone do sieci używają go do wysyłania transmisji, wiadomości przeznaczonej dla wszystkich urządzeń w sieci.

W ogóle Pierwszy adres jest identyfikacja sieci, a ostatni z nich jest nadawanie , nie mogą być używane jako zwykłe adresów.

jcbermu
źródło
9
W przypadku / 31 istnieje jednak wyjątek: zakłada się, że są to łącza typu punkt-punkt pośrednio, ponieważ mają tylko dwa adresy.
Simon Richter,
10
Opublikowanie publicznego adresu IP i nazwy użytkownika dla tego systemu daje mi heebie-jeebies.
mikeazo,
8
@mikeazo Dlaczego? Masz przyzwoite hasła i fail2ban, prawda? Poza tym atakowany jest każdy adres IPv4 w Internecie.
Michael Hampton,
4
@MichaelHampton, ponieważ teraz Internet zna swoją nazwę użytkownika, jego adres IP i że nie (z powodzeniem) używa kluczy SSH, ale hasła. To już poprawia przestrzeń wyszukiwania. Ale masz rację: dla profesjonalisty nie powinno to stanowić problemu. Nauczanie świata nie jest jednak dobrą praktyką.
Konerak,
29
@mikeazo To zrzut ekranu, w którym znalazłem googlowanie netstat -r. To nie jest mój system.
jcbermu
8

Pamiętaj, że nie możesz użyć pierwszego i ostatniego adresu z tego zakresu, jeśli jest on używany do numerowania urządzeń w domenie rozgłoszeniowej (np. Sieć fizyczna lub vlan itp.). Jak wynika z drugiej odpowiedzi, pierwszy i ostatni są używane odpowiednio jako adres sieciowy i rozgłoszeniowy w tym scenariuszu. Ponadto w niektórych scenariuszach pierwszy adres jest również interpretowany jako nadawany.

Istnieją jednak inne scenariusze użytkowania, w których można użyć pierwszego i ostatniego adresu. Np. Jeśli jesteś administratorem zapory i administrator sieci ma zakres 10.0.0.0-10.0.0.255 , możesz użyć wszystkich 256 adresów jako adresów NAT w zaporze. Przyznaję, że nie widziałem tego zbyt często, a kiedy to nastąpi, może powodować pewne zamieszanie - ponieważ większość ludzi reaguje na to, że jest niedozwolone - i to zamieszanie może być powodem do odradzania tego.

Jeśli robisz dupki, to dobrze, mówiąc wprost, 10.0.0.0-10.0.0.255 w tym scenariuszu nie jest siecią / 24 , to jest zasięg lub blok adresów, ale uważam, że powszechną praktyką jest nadal nazywać to „podsieć 10.0.0.0/24” w takim scenariuszu.

hertitu
źródło
7
„Przyznaję, że nie widziałem tego zbyt często, a kiedy to nastąpi, może powodować pewne zamieszanie - ponieważ pierwszą reakcją większości ludzi jest myślenie, że jest to niedozwolone - i to zamieszanie może być powodem do odradzania tego”. - Jeśli dobrze pamiętam, niektórzy z tych „zdezorientowanych ludzi” są projektantami stosu sieciowego Windows NT (przynajmniej oryginalnego do Visty), więc chyba, że ​​chcesz poradzić sobie z użytkownikami systemu Windows narzekającymi, że ich komputer działa w każdym sieci z wyjątkiem twojej i wyjaśnij im, że to wina Microsoftu, a nie twoja. Zaleca się po prostu…
Jörg W Mittag
9
pozostaw te dwa adresy nieużywane.
Jörg W Mittag
1
@ JörgWMittag, czekaj, czy mówisz, że biorąc pod uwagę sieć 10.0.0.0/22 ​​(tj. 10.0.0.0-10.0.3.255), system Windows w wersjach wcześniejszych niż 7 nie może używać wersji 10.0.1.0 lub 10.0.2.255? (Chociaż nie sądzę, że to ma już duże znaczenie, ponieważ stare wersje nie są już obsługiwane)
ilkkachu
2
@ilkkachu: Nie jestem pewien, jak wymyśliłeś te liczby. Adres sieciowy dla 10.0.0.0/22 ​​to 10.0.0.0, a adres rozgłoszeniowy to 10.0.3.255. Jeśli dobrze pamiętam, istnieją pewne problemy z używaniem (przynajmniej jednego) tych dwóch adresów w sieci z komputerami z systemem Windows ze starym stosem TCP / IP (wcześniejszym niż Vista). Nie pamiętam dokładnie, jakie były te problemy i czy problemy te występują tylko wtedy, gdy próbujesz przypisać jeden z tych adresów IP do komputera z systemem Windows lub jeśli występują również problemy z komunikacją między komputerem z systemem Windows a tymi adresami IP. Nie pamiętam też, czy to sieć…
Jörg W Mittag,
2
@ JörgWMittag ilkkachu Nawet dzisiaj, ze zmiennymi podsieciami, kilka systemów operacyjnych (nie tylko Windows) i wiele innych programów ma problemy z użyciem dowolnego adresu kończącego się na 0 lub 255. Nawet jeśli jest prawidłowy jako adres wewnętrzny zakresu> 256 . Jest to pozostałość po adresowaniu klasy A / B / C i programista zakładający, że dowolny komputer znajduje się w podsieci klasy C, a zatem 0 i 255 są z definicji niepoprawne. Nawet jeśli Twój system operacyjny i oprogramowanie działają prawidłowo, nadal możesz połączyć się z innym komputerem, który ma z tym problemy. Najlepiej unikać .0 i .255 łącznie, nawet jeśli są one prawidłowe w twojej konfiguracji.
Tonny
4

Lektura Internetowej Standardowej Procedury Podsieci , W kierunku Internetowego Standardowego Schematu Podsieci, a konkretnie NADAWANIE BAZ DANYCH INTERNETOWYCH W OBECNOŚCI PODSIECI sekcja 7 opisuje uzasadnienie dokonanych wyborów.

Twoja hipoteza jest poprawna dla podsieci CIDR z kontrastowymi maskami bitowymi.

Łatwiej jest traktować adres transmisji jako Bcast = Host | ~Mask. To wyraźnie ignoruje wybór bitów w podsieci. Odpowiednio jest to adres sieciowy Net = Bcast & ~Mask.

Ściśle rzecz biorąc, można użyć adresu wszystkich zer (0,0 dla CIDR / 24), ale może mylić niektóre oprogramowanie, podczas gdy wszystkie z nich (.255) są zarezerwowane jako dobrze znany adres rozgłoszeniowy.

Niektóre wczesne wydania BSD Unix 4.2 przed RFC 919 zostały wysłane przy użyciu Netadresu jako transmisji. Spowodowało to pewne zamieszanie w mieszanych środowiskach aż do wydania 4.3.

Pekka
źródło
1

Adres sieciowy

Sieć dla sieci lokalnej (LAN) lub sieci rozległej (WAN) ma adres oparty na ich pojemności. Terminale podłączone do sieci używają tych adresów do komunikowania się ze sobą. System domyślnie rezerwuje adres dla komunikacji administratora. Zwykle adresy „255” są używane do rozgłaszania wiadomości w systemach Linux lub Fedora. Administrator używa tego adresu do rozgłaszania lub adresowania wszystkich użytkowników sieci. W przypadku awaryjnego wyłączenia administrator może wysłać wiadomość do użytkowników, aby zapisać swoje działania. Niektóre systemy operacyjne umożliwiają przypisanie adresu „0”.

Dowiedz się więcej o podstawach pracy w sieci: Adresowanie sieciowe przez Microsoft

Zobacz także Co to jest tłumaczenie adresu sieciowego?

Bellatechie30
źródło