Mengapa alamat jaringan tidak bisa menjadi alamat host yang valid?

18

Jadi ... Saya telah belajar untuk CCNA dan semacamnya dan telah bekerja dengan jaringan IP setidaknya selama 8 tahun terakhir. Saya selalu melihat dan diberi tahu bahwa alamat jaringan untuk subnet bukan alamat host yang valid. Sekarang pertama saya akan mulai dengan mengatakan saya tahu ini benar. Pertanyaan saya lebih lanjut ... apakah ada alasan teknis tidak dapat digunakan atau hanya disetujui secara sewenang-wenang ketika spesifikasi dirancang? Saya mengerti mengapa alamat broadcast tidak dapat digunakan (karena ini SEBENARNYA digunakan). Masalahnya adalah ketika saya melihat alamat jaringan yang digunakan biasanya hanya dalam routing yang secara khusus menggunakan alamat NETWORK. Karena itu, (alamat jaringan hanya digunakan ketika Anda mengharapkan alamat jaringan) adakah alasan teknis mengapa mereka tidak dapat membuat alamat jaringan itu menjadi alamat host yang sebenarnya valid?

Goblinlord
sumber

Jawaban:

16

Sejauh yang saya mengerti, "alamat jaringan" sebagai alamat khusus adalah artefak dari jaringan IP classful dari masa lalu. Hari ini, kami menggunakan Routing Antar-domain Tanpa Kelas ( CIDR ) di Internet, yang tidak memiliki konsep alamat jaringan (jika Anda melihat RFC 4632 yang ditautkan di atas, Anda akan melihat bahwa itu mencantumkan 256 kemungkinan alamat IP per warisan Blok "C", mis. Tidak ada alamat yang dicadangkan untuk alamat jaringan atau siaran (meskipun siaran didefinisikan sebagai penting dalam RFC lain).

Karena itu, Anda tetap tidak boleh menetapkan alamat jaringan ke host tertentu di jaringan: Alamat jaringan sangat penting untuk perutean. Konsep ini digunakan secara luas dalam RFC ( RFC 1812 ). Lihat saja tabel routing ( routeperintah), Anda akan melihat bagaimana alamat jaringan lokal Anda digunakan untuk memisahkan lalu lintas jaringan lokal Anda dari apa yang harus melalui router. Bagaimana jika alamat jaringan lokal itu diberikan kepada beberapa host?

Lebih buruk lagi: lebih baik untuk tidak menetapkan alamat IP yang berakhir dengan nol bahkan jika alamat ini bukan alamat jaringan. Misalnya, jika jaringan Anda adalah 10.10.0.0/255.255.0.0, alamat IP 10.10.5.0 bukan alamat jaringan Anda, tetapi Anda sebaiknya tidak menetapkan IP tersebut meskipun benar-benar valid bahkan pada jaringan IP berkelas. Beberapa perangkat lunak warisan / tumpukan IP mungkin memiliki masalah dengannya.

PEMBARUAN: oleh goblinlord

Menurut RFC 1812 (Bagian 5.3.5.2) apa yang kita sebut alamat jaringan pada awalnya digunakan untuk "siaran langsung" yang akan mengirim paket siaran ke jaringan yang diinginkan. Fungsi ini dibuat usang karena serangan SMURF. Fungsi secara resmi diubah di RFC 2644 . Selanjutnya, implementasi lebih lanjut harus diam - diam menjatuhkan paket dengan alamat sumber seperti yang dijelaskan (alamat jaringan). Sementara ini yang harus terjadi, saya ingin tahu berapa banyak implementasi yang benar-benar melakukannya.

Ini selanjutnya ditambahkan ke dalam RFC 3021 ketika / 31 subnetting ditangani.

haim
sumber
5
@ kegembiraan: Tidak selalu. Hanya di jaringan yang lebih besar dari / 31. Misalnya P2P dapat memiliki dua alamat dan tidak ada alamat broadcast.
haimg
3
Hmmm ... saya suka bagian pertama dari jawaban ... bahwa itu adalah artefak dari jaringan IP classful. Masalah saya lagi dengan bagian kedua adalah tabel routing yang digunakan khusus untuk merutekan ke jaringan. Seperti yang saya pahami, tabel routing hanya dilihat untuk merutekan ke jaringan di mana receiver tidak aktif (dest IP bukan bagian dari subnet / net Anda). Ini yang terjadi ... ketika melihat tabel routing, jelas alamat di dalamnya adalah alamat jaringan dan bukan alamat host karena itu memisahkan ini dari paket host dest IP. Dalam lalu lintas aktual, IP tujuan dari alamat net tidak pernah digunakan.
Goblinlord
1
Jadi ... apakah ada alasan untuk secara khusus memesannya jika 2 instance ini sudah terpisah (alamat jaringan dalam tabel routing dan dest IP ketika menentukan apakah Anda perlu melihat tabel routing).
Goblinlord
1
@ Goblinlord: Tidak ada alasan resmi yang dapat saya temukan (RFC terbaru, dll.). Namun, begitu banyak perangkat lunak yang dibangun dengan asumsi bahwa alamat jaringan "khusus", sehingga dalam praktiknya Anda sebaiknya tidak menggunakannya sebagai alamat IP host.
haimg
1
Ada entri konfigurasi cisco yang memungkinkan alamat jaringan juga menjadi tuan rumah, yang telah ada selama setidaknya 10 tahun ... Saya tidak pernah menggunakannya, atau bahkan mengujinya, dan karena kemungkinan masalah tumpukan seperti yang disebutkan, khususnya tidak dapat mengizinkan host untuk mengakhiri .0 atau .255 pada jaringan yang menjadi tanggung jawab saya, meskipun saya tidak menemukan jaringan lain atau menyiarkan alamat yang digunakan untuk yang lebih kecil dari / 24s, di @Home, dan sementara CoreOS ingin mengeluarkan tengah .0 dan .255 sebagai host di sanbrunocable's / 23's dan / 21s, saya secara manual memesannya.
Nevin Williams
5

Jadi jawaban praktisnya adalah: Itu sangat tergantung. Tergantung pada:

  • Alamat yang tepat, dan artinya dalam banyak RFC
  • Versi dan revisi sistem operasi Anda
  • ... Dan router Anda, dan setiap router hulu lainnya
  • ... Dan kecerdasan dan kecanggihan semua admin jaringan dari router-router itu ...

Saya belum menemukan masalah dalam mengakses situs apa pun dalam pengujian ini; tampaknya pada akhirnya itu semua diserahkan kepada keinginan administrator jaringan. Biasanya tidak ada cara bagi perangkat hulu untuk mengetahui apakah alamat merupakan bagian dari jaringan atau alamat siaran, atau tidak, karena itu hanya alamat dalam blok yang lebih besar untuk mereka ... Jadi tidak ada ISP yang akan memblokir Anda dari penetapan dan menggunakan alamat jaringan Anda, kecuali jika mereka menetapkannya untuk Anda dan administrator jaringan mereka secara eksplisit memblokirnya.

Saya yakin ada analis keamanan dan peretas di luar sana yang memiliki statistik terperinci gila-gilaan tentang berapa banyak varian implementasi tumpukan TCP-IP di luar sana dan apa yang dilakukan dan tidak diakomodasikan atau diizinkan dan bagaimana serta di mana mereka kehilangan tanda mereka .

Sebenarnya, saya sedang menjelajah dan memposting ini dari alamat jaringan saya.

Jangan panggil saya netizen yang jahat kecuali Anda memiliki solusi yang lebih baik untuk memperbaiki rumah kartu ini: kenyataannya adalah jika itu mungkin, itu akan terjadi. Kenyataannya adalah bahwa tidak ada seorang pun yang cukup pintar duduk dan memikirkan semua ini melalui semua kemungkinan iterasi untuk menghasilkan desain yang benar-benar bodoh, sebelum orang mulai menggunakannya - seperti kebanyakan hal dalam hidup. Hasil? Standar di mana banyak hal tidak bertambah dan / atau hilang dalam terjemahan.

Selamat Datang di dunia nyata. Jangan biarkan hal itu menghalangi Anda untuk mengejar cita-cita optimal yang selalu sulit dipahami ... Hanya saja, jangan mengharapkan dukungan dari saluran atau forum "resmi" kecuali Anda bersedia mengotori tangan Anda dan mendedikasikan waktu dan hidup Anda untuk itu, membangun konsensus yang diperlukan, dan menavigasi politik di sekitar itu.

Jadi, saya pikir apa yang ingin dikatakan oleh poster-poster lain: Jika Anda ingin membuat kebijakan resmi ini dan menggunakannya dalam produksi, Anda melakukannya sendiri. (Tapi apakah Anda tidak?) Mungkin kita akan beruntung dan memiliki kecerdasan komputer mendesain IPv8 yang kompatibel dengan IPv4 dan IPv6 dan semua implementasinya yang rusak.

Dagelf
sumber
Tentu saja - ketika Anda menggunakan alamat jaringan Anda, perangkat yang ditugaskan kepadanya dapat menerima semua jenis lalu lintas siaran karena beberapa tumpukan jaringan memperlakukannya sebagai siaran. Namun ini, umumnya tidak mengganggu karena mereka hanya diam-diam dijatuhkan. Saya ingin tahu berapa banyak eksploitasi jaringan bergantung pada keanehan di sekitar ini ...
Dagelf
2

Saya baru mengenal jaringan tetapi saya akan memberikan 2 sen juga.

Jika saya memiliki subnetwork / 28 dari xxx0 - xxx15 Menurut aturan yang telah ditentukan kita akan memiliki 14 host yang dapat digunakan dan 2 sisanya. sisanya untuk jaringan dan siaran.

Mari, alih-alih mengikuti aturan di atas, sebenarnya menggunakan semua 16 host. Maka dalam hal ini semua akan beres, tidak ada masalah. Tetapi jika komunikasi diperlukan di luar jaringan maka itu tidak akan mungkin karena kurangnya sumber daya untuk mengirim atau menerima informasi.

Saya tidak hebat dalam menjelaskan tetapi dengan kata lain.

Jika saya tinggal di sebuah rumah di jalan dan di jalan itu terdapat 14 rumah. Jalan masuk dan keluar untuk akses ke jalan utama.

Alamat surat saya akan berkisar dari 1-14 Personal Street, Off Network Road.

Itu tidak masalah bagi tukang pos. Sekarang mari kita asumsikan para pengembang menjadi serakah dan menambahkan 2 rumah lagi dan menyingkirkan jalur.

Kemudian alamat surat baru saya akan berkisar dari 1-16 Jalan Pribadi

Dalam hal ini tukang pos akan mendapat masalah.

Ini dugaan, beri tahu saya jika saya berbicara banteng.

William
sumber
0

Alamat jaringan memungkinkan Anda membuat tabel rute dengan kolom tujuan ukuran tetap (4-byte IPv4) dan operasi biner ukuran tetap sehingga perutean host dan perutean jaringan sebenarnya adalah hal yang sama.

Bayangkan tabel routing seperti ini: (PC ini memiliki koneksi paralel dengan PC lain dan kartu jaringan)

Dest           Mask    Dev
192.168.0.123  /32     plip0   # This is a single host
192.168.0.0    /24     eth0    # This is a network

AND antara alamat IP dan netmask memberi Anda apa yang Anda butuhkan, angka 4 byte yang dapat dibandingkan dengan setiap baris tanpa perhitungan lebih lanjut.

Jadi nomor host nol khusus dalam arti bahwa setelah operasi DAN, alamatnya secara alami mewakili seluruh jaringan.

Jika Anda memutuskan untuk menggunakan nomor jaringan sebagai nomor host, itu akan menghasilkan tabel seperti ini:

Dest           Mask    Dev
192.168.0.0    /32     eth0    # This is the host (it's a redundant line)
192.168.0.0    /24     eth0    # This is the network

Ini tampaknya sah, jadi saya kira konsep alamat jaringan digunakan untuk alasan perutean dan karenanya diputuskan secara sewenang-wenang untuk menandainya sebagai alamat khusus dan melarang penggunaannya sebagai alamat host.

Yah ... sebenarnya itu tidak sesederhana itu. Saya memutuskan untuk mencobanya (!!!):

# route add -net 192.168.0.0/32 eth0
# ping 192.168.0.0
Do you want to ping broadcast? Then -b
# telnet 192.168.0.0
Trying 192.168.0.0...
telnet: connect to address 192.168.0.0: Network is unreachable

Saat ini, program jaringan tidak mengizinkan saya menggunakan nomor jaringan sebagai alamat normal.

David Costa
sumber
Mempertimbangkan contoh tabel routing pertama Anda, saya pikir itu adalah cara yang sangat buruk untuk melakukan hal-hal ... jika Anda memiliki host lain pada subnet .0.0 Anda, bagaimana mereka berkomunikasi dengan baik satu sama lain serta host .0.123 tanpa statis mengatur rute pada setiap host? Tampaknya itu bukan cara yang tepat untuk melakukan sesuatu.
Goblinlord
Ini hanya contoh fiksi, saya tidak akan pernah mengatur tabel seperti itu :-) Tuan rumah .123 terhubung dengan koneksi point to point sedangkan sisanya adalah jaringan ethernet yang biasa. Jika Anda ingin mesin lain mengakses host .123 Anda perlu melakukan pekerjaan tambahan, tetapi itu bukan tidak mungkin.
David Costa
0

Sementara mencari jawaban untuk pertanyaan ini saya menemukan artikel ini dari Cisco. Kutipan berikut dari artikel itu merangkumnya dengan baik menurut saya.

[...] pertimbangkan alamat IP 172.16.1.10. Jika Anda menghitung alamat subnet yang sesuai dengan alamat IP ini, jawaban yang Anda terima adalah subnet 172.16.0.0 (subnet nol). Perhatikan bahwa alamat subnet ini identik dengan alamat jaringan 172.16.0.0, yang pada awalnya subnetted, jadi setiap kali Anda melakukan subnetting, Anda mendapatkan jaringan dan subnet (subnet nol) dengan alamat yang tidak bisa dibedakan. Ini dulunya sumber kebingungan besar .

Menghindari kebingungan adalah alasan yang cukup baik bagi saya.

Samuel Harmer
sumber
Saya tahu pertanyaan ini sudah lama diajukan tetapi saya baru saja mengulas hal ini. Artikel yang Anda kutip berbicara tentang "subnet zero" atau subnet pertama dalam alamat jaringan. Ini adalah sesuatu yang sangat berbeda dan dalam jaringan modern apa pun saya telah bekerja pada setiap saklar memiliki fitur "ip subnet-zero" diaktifkan. Ini juga menyebutkan bahwa hari ini diaktifkan secara default pada semua switch mereka (pada versi 12 yang dirilis sekitar 2003).
Goblinlord
0

RFC 1122 ("Persyaratan untuk Host Internet - Lapisan Komunikasi") melarangnya:

Alamat IP tidak diizinkan memiliki nilai 0 atau -1 untuk bidang <Host-number>, <Network-number>, atau <Subnet- number> apa pun

Bryan
sumber
0

Alamat jaringan tidak dianggap sebagai alamat host tetapi hanya nomor. Dalam mengatasi area terbatas seperti jaringan point-to-point, mask / 30 sering digunakan, namun masih menggunakan alamat host. Praktek yang lebih rendah, tetapi mencapai prinsip yang sama adalah dengan menggunakan mask / 31 dan menggunakan satu ujung sebagai alamat jaringan dan yang lainnya sebagai siaran.

Ex.

Router(config)#int gi0/0
Router(config-if)#ip add 10.0.0.0 255.255.255.254
Router(config-if)#no shut


Router2(config)#int gi0/0
Router2(config-if)#ip add 10.0.0.1 255.255.255.254
Router2(config-if)#no shut


        .0        .1
[Router]-----------[Router2]
   network      broadcast
cmd
sumber