Saya tahu bahwa jika saya memiliki jaringan 83.23.159.0/24
maka saya memiliki 254 alamat IP host yang dapat digunakan karena:
83.23.159.0 (in binary: host portion all zeros) is the subnet address
83.23.159.1-254 are host addresses
83.23.159.255 (in binary: host portion all ones) is the broadcast address
Saya mengerti penggunaan untuk alamat broadcast, tapi saya tidak mengerti untuk apa alamat subnet itu digunakan. Saya tidak dapat melihat alasan bahwa alamat tujuan paket IP akan ditetapkan ke alamat subnet, jadi mengapa subnet itu sendiri memerlukan alamat jika tidak akan pernah menjadi titik akhir untuk aliran IP AN? Bagi saya sepertinya sia-sia untuk tidak membiarkan alamat ini digunakan sebagai alamat host.
Untuk meringkas, pertanyaan saya adalah:
- Apakah tujuan paket IP pernah ditetapkan ke alamat IP subnet?
- Jika ya, dalam kasus apa dan mengapa?
- Jika tidak, mengapa tidak membebaskan alamat itu untuk digunakan oleh host?
ifconfig
tidak mengeluh ketika Anda menetapkan alamat host 24-net ke 0 atau 255. Coba saja gunakan.Jawaban:
Iya nih. Ini adalah IP yang valid sehingga dapat digunakan.
Ini hanyalah salah satu dari 255 IP yang dapat digunakan dalam / 24
Jika Anda memiliki perangkat keras kuno maka Anda perlu memeriksa apakah ia menggunakan alamat pertama atau terakhir sebagai alamat jaringan. (.0 atau .255 untuk jaringan dengan mask FF.FF.FF.00)
Ini membuatnya menjadi kebiasaan yang baik untuk melewati IP itu. Dan kebiasaan yang dipelajari sejak lama sulit untuk diabaikan.
Dan orang-orang yang tidak tahu latar belakang tidak menggunakannya 'karena orang lain tidak menggunakannya juga, jadi pasti salah menggunakannya' atau karena mereka tidak menyadari bahwa '0' dapat menjadi angka pertama .
[Sunting] Grezzo hanya mengujinya pada Windows XP di mana jaringan windows GUI 'membantu' mencegah pengaturan ini. Windows 7 memiliki perilaku yang sama. Saya kemudian mencobanya pada host non-windows di mana ia bekerja. Jika Anda menggunakan windows maka Anda mungkin harus mengkonfigurasi jaringan Anda secara manual melalui IPconfig untuk mengaturnya ke semua nol.
[Sunting 2]
Semakin lama saya bekerja dengan ini semakin saya bingung.
Rfc4632 - Routing Antar-domain Tanpa Kelas sepertinya tidak melarangnya, tetapi keduanya tidak mengizinkannya secara eksplisit.
Posting ServerFault ini menyebutkan: "Karena alasan historis banyak OS memperlakukan alamat pertama sebagai siaran. Misalnya, melakukan ping xxx0 dari OS X, Linux, dan Solaris di jaringan lokal saya (/ 24) mendapat tanggapan. Windows tidak membiarkan Anda melakukan ping alamat pertama secara default, tetapi Anda mungkin dapat mengaktifkannya menggunakan metode SetIPUseZeroBroadcast WMI. Saya ingin tahu apakah Anda bisa lolos menggunakan .0 sebagai alamat host pada jaringan semua-Windows. " .
Itu adalah pertanyaan yang sama, tetapi bukan jawaban.
Alamat jaringan juga digunakan dalam tabel routing. Tapi saya gagal melihat mengapa itu tidak berhasil karena itu. Notasi yang sama dalam tabel routing akan merutekan ke jaringan yang tepat. Begitu berada di jaringan yang benar, ia akan tiba di PC dengan IP 0.
(Semua ini untuk 192.168.1 / 24.
Jika Anda menggunakan 192.168.0 / 23 maka 192.168.1.0 akan menjadi nilai yang valid dan aman di tengah kisaran)
[Edit 3]
Satu link lebih ke pertanyaan yang sama. Tampaknya agak populer di bursa stack:
/superuser/379451/why-can-a-network-address-not-be-a-valid-host-address
Dan satu berpikir:
Destination_IP mungkin DAN ed dengan tiang jaringan (operasi cepat dalam perangkat keras) sebelum dibandingkan dengan entri dalam tabel routing. Tapi:
(IP semi-acak) 192.168.0.42 DAN 255.255.255.0 akan menghasilkan 192.168.0.0
Tapi 192.168.0.0 DAN 255.255.255.0 juga akan menghasilkan 192.168.0.0
[Sunting 4 - Lama setelah jawaban ini ditulis - Saya mungkin perlu menulis ulang seluruh posting karena informasi baru ini ]
RFC923 menyatakan pada halaman 3 bahwa:
Mengutip @ylearn di situs networkengineering kami
Saya percaya dokumentasi pertama yang berasal dari RFC950 yang merujuk RFC943 (yang usang RFC923 di atas tetapi menggunakan bahasa yang sama untuk alamat khusus):
sumber
Alamat dengan bagian host semua nol mengacu pada jaringan itu sendiri, bukan ke host tertentu.
Secara historis, alamat host nol ini telah berfungsi sebagai alamat broadcast alternatif, dan perangkat masih merespons seperti itu.
Jadi, saya harus tidak setuju dengan beberapa jawaban lain: tidak, nol bukanlah alamat host yang dapat digunakan dengan sempurna. Jika Anda membutuhkan lebih dari 254 alamat, Anda harus membuat subnet yang lebih besar.
Lihat, router Linksys saya, yang alamatnya
.1
menanggapi ping.0
. (Netmasknya adalah255.255.255.0
, jadi oktet terakhir sesuai dengan nomor host.)Jika saya menetapkan
.0
alamat tersebut ke beberapa host, saya tidak akan bisa melakukan ping tanpa router membunyikan responsnya juga. Dan seperti yang Anda lihat, beberapa alat seperti ituping
memperlakukan versi router0
sebagai siaran.Anda dapat membengkokkan aturan, jika Anda bersedia untuk menambal semua tumpukan protokol dan perangkat lunak lain yang dipengaruhi oleh pembengkokan tersebut. Jika tidak, patuhi aturan.
Inti masalah.
Saya bekerja di sebuah perusahaan yang mendesain simpul jaringan yang dibangun pada sasis 14 slot, menjalankan banyak gambar OS independen pada beberapa jenis kartu, semuanya berkomunikasi melalui backplane. Ada pengaturan jaringan di atas backplane dengan konvensi yang
127.X.0.Y
merupakan alamat IP internal node Y di slot X, semua bernomor dari 1.Kami pada dasarnya melakukan subnett ke alamat loopback untuk tujuan kami sendiri. Untuk membuatnya bekerja, kami harus menambal kernel Linux di sana-sini, dan IIRC, sedikit ruang pengguna.
Karena jaringan itu hanya digunakan di dalam kotak, dan sebagian besar program yang membutuhkan loopback menggunakan
127.0.*
jaringan (dan bahkan alamat spesifik127.0.0.1
) yang terus bekerja secara normal, semuanya keren.sumber
sebenarnya itu tergantung pada netmask, misalnya, untuk jaringan 83.23.159.0/23, 83.23.159.0 adalah alamat ip yang dapat digunakan dengan sempurna
sumber
Kedengarannya ada sedikit kebingungan di sini dengan jaringan dasar.
'Perangkat keras kuno' yang dimaksud dalam salah satu respons tidak akan menggunakan IP Subnet Zero - menggunakan alamat ip xxx0 dengan jaringan yang diatur untuk / 24 CIDR atau 255.255.255.0 subnet mask adalah masalah yang sama sekali berbeda.
IP Subnet Zero
Alamat IP host yang dapat digunakan pada subnet
Baik alamat jaringan dan alamat siaran dicadangkan dan tidak dapat (berdasarkan standar jaringan saat ini dan sebelumnya) ditetapkan ke perangkat. Menggunakan xxx0 untuk alamat host pada sistem / 24 salah. Bahkan jika Linux memungkinkan Anda menggunakannya bukan berarti itu benar, itu hanya berarti bahwa Linux berpikir bahwa Anda tahu apa yang Anda lakukan.
Jika sistem Anda membiarkan Anda menetapkan xxx0 sebagai alamat IP4 ke host dan tampaknya berfungsi - kemungkinan host tersebut menerima SEMUA lalu lintas yang ditargetkan ke perangkat APAPUN di jaringan itu sehingga jaringannya mungkin tidak berfungsi secara optimal.
sumber
RFC 1122 ("Persyaratan untuk Host Internet - Lapisan Komunikasi") melarangnya:
sumber
Sebenarnya jawabannya adalah dasar dari subnetting. IP "semua nol" dari subnet Anda dikombinasikan dengan id jaringan digunakan untuk menghitung ke mana paket harus dikirim.
Dalam contoh Anda, Anda memiliki subnet 255.255.255.0. Perangkat apa pun yang mengetahui protokol TCP / IP akan menggunakan netmask yang dikombinasikan dengan alamat IP untuk menghitung apakah paket tersebut ditujukan untuk jaringan lokal (dengan melakukan operasi DAN logis) atau harus dikirim melalui gateway / router.
Jadi saya kira alasan bahwa IP tidak dapat digunakan adalah karena sudah digunakan untuk "mendefinisikan" batas-batas jaringan bersama dengan netmask oleh desain.
sumber
Diminta agar saya mengirim ulang jawaban saya dari NetworkEngineering , jadi saya akan melakukannya dengan beberapa modifikasi untuk situs ini.
Dalam RFC919 , itu membuat referensi penerimaan umum alamat jaringan:
Ini menyediakan konvensi yang harus menjelaskan pemahaman kita jika seseorang menyebut "10.1.2.0" sebagai jaringan dan bukan host di jaringan.
Dari sana, penggunaan "0" di alamat IP didefinisikan dalam RFC923 dan terbawa dalam RFC berturut-turut:
Contoh ini menyediakan host tertentu di jaringan saat ini (0.0.0.37) dengan menggunakan 0 di bagian jaringan dari alamat, tetapi tidak benar-benar mengklarifikasi kasus yang berlawanan (0 di bagian host dari alamat). Namun ketika itu mendefinisikan "0" sebagai "ini."
Di RFC1060 alamat "0.0.0.0" jelas didokumentasikan sebagai "host ini di jaringan ini":
Karena semua nol untuk bagian host dari alamat berarti "host ini," maka secara logis berikut bahwa itu tidak dapat digunakan sebagai alamat host.
Kembali ke langsung menjawab pertanyaan Anda:
Menurut apa yang saya temukan di RFC, ini tidak boleh digunakan. Saya akui itu tidak sejelas yang saya inginkan, tapi itu semua sudah umum dalam banyak standar. Ketika standar agak kurang tegas dalam suatu hal, industri kemudian tampaknya "menetap" ke dalam interpretasi yang diterima secara umum.
Selanjutnya, berdasarkan pada konten perangkat lunak RFC dapat ditulis untuk mengasumsikan bahwa alamat ini digunakan untuk mengatasi jaringan dan bukan tuan rumah tertentu. Atau bahkan lebih secara harfiah sebagai semacam "loopback" (yaitu host ini di jaringan yang ditentukan).
Jadi mengapa beberapa OS dengan jelas mengizinkannya digunakan? Saya akan membayangkan seperti banyak hal yang berkaitan dengan waktu / sumber daya pengembang atau tidak ada yang benar-benar berpikir untuk menambahkan cek validitas. Logikanya harus sedikit lebih terlibat daripada "jika diakhiri dengan 0" karena subnet yang lebih besar (a / 23 atau lebih besar) akan berisi alamat IP yang valid dari .255 dan .0 (yaitu 10.1.2.0/23 berisi kedua IP yang valid alamat 10.1.2.255 dan 10.1.3.0). Meskipun beberapa organisasi juga menghindari penggunaan alamat yang valid di subnet yang lebih besar untuk menghindari masalah aneh dengan perangkat lunak yang tidak mendukung subnetting modern dengan benar.
Mengapa tidak membebaskan satu alamat IP itu, itu hanya turun ke biaya / manfaat. Dibutuhkan banyak waktu dan usaha untuk melakukan perubahan ini untuk mendapatkan kembali satu alamat IP per subnet dan dalam berapa banyak kasus di mana Anda memerlukan alamat IP tambahan, apakah hanya satu alamat saja yang cukup? Jauh lebih mudah untuk menambahkan subnet kedua atau memperbesar subnet saat ini, berpotensi memberi Anda banyak alamat untuk digunakan alih-alih hanya satu sementara tidak membuat perubahan besar pada perangkat lunak / perangkat keras yang ada.
sumber