Apakah subnet selalu bersebelahan 1s? [duplikat]

23

Pertanyaan ini sudah ada jawabannya di sini:

Saya mengerti premis dasar di balik topeng subnet, seperti 255.255.255.0. Tapi semua contoh subnet yang saya lihat adalah (dari kiri ke kanan) berdekatan 1 (HI bit) Contohnya, 255.255.0.0 ( /16 ) diterjemahkan ke oktet berikut:

11111111 . 11111111 . 00000000 . 00000000

saya percaya bahwa bit ini harus bersebelahan, karena seluruh titik subnetting adalah untuk mendapatkan ID host dan rentang ID perangkat yang tersedia. Tapi itu membuat saya bertanya-tanya, mungkin Anda pernah memiliki subnet mask, katakanlah, 255.17.255.0, atau:

11111111 . 00010001 . 11111111 . 00000000
  • Akankah ini terjadi? Atau apakah tidak mungkin subnet ada tanpa 1s yang berdekatan? Jika demikian, mengapa?
  • Kalau tidak, jika mungkin untuk melakukan ini, mengapa Anda (beberapa contoh nyata)?
DirtyMikeAndTheBoys
sumber
@MSalters Asal tahu saja, komentar otomatis kini telah diubah untuk mengatakan "Kemungkinan duplikat ..." jadi Anda tidak perlu lagi memasukkan komentar secara manual. ;-)
Chris Jester-Young
Jawaban singkat: ya, Anda benar.
Octopus

Jawaban:

17

Bagian 3.1 dalam RFC memperlihatkan topeng yang diizinkan dalam perutean antar-domain tanpa kelas. Bit harus berdekatan agar routing berfungsi dengan benar.

Juga ketika berpikir secara logis tidak masuk akal untuk memiliki topeng jaringan acak yang aneh.

Sami Kuhmonen
sumber
26

Ya, cara mudah untuk memikirkannya adalah bahwa subnet mask selalu 1s di awal. Jika subnet-size-indicator tidak memiliki 1s di awal representasi biner, maka saya akan mengatakan bahwa subnet-size-indicator bukan "subnet mask" yang tepat, menggunakan standar modern.

RFC 1219 menyatakan bahwa RFC 950 sebelumnya memungkinkan bit yang tidak berdekatan. Faktanya, RFC 950 halaman 15 (bagian 3) jelas memiliki contoh yang “menggambarkan bit-bit subnet yang tidak bersebelahan”. Namun, tidak ada cara untuk mengubah subnet tersebut menjadi notasi CIDR. Notasi gaya CIDR adalah yang digunakan IPv6 (setidaknya sejak RFC 1884 halaman 7 , kalimat pertama bagian 2.4), sehingga bit yang tidak berdekatan tidak pernah didukung secara luas untuk jaringan IPv6. RFC 1219 Metode ini menetapkan bahwa “bit subnet (mask = 1) ditugaskan dari bit yang paling signifikan yang bekerja paling tidak". (The RFC 4632 bagian 3.1 , disebutkan oleh jawaban Sami, menunjuk ke standar resmi yang membahas notasi CIDR.)

RFC 1878 halaman 2 menunjukkan notasi "subnet mask" standar untuk semua subnet IPv4 kecuali untuk /0.

Namun, saya akan menguraikan sedikit tentang jawaban Sami, melihat ke "mengapa" (dengan contoh konkret, seperti yang ditanyakan oleh pertanyaan itu) ...

Beberapa peralatan Cisco kelas profesional mendukung sesuatu yang disebut "wildcard mask," yang membalik bit. Jadi subnet yang normal dapat diwakili oleh sesuatu yang disebut 00000000.00000000.00000000.11111111.

Dengan masker wildcard Cisco, tidak ada aturan bahwa semua nol harus diutamakan. Jadi bisa digunakan 00000000.00000000.00000000.11111110.

Itu akhirnya akan membuat grup yang berisi semua alamat IP genap.

Ini sebenarnya penting untuk diketahui, karena pelatihan Cisco membahasnya, sehingga proses pemeriksaan untuk sertifikasi profesional Cisco mungkin bertanya tentang hal seperti itu.

Namun, saya pikir itu sebagian besar tidak berguna. Alih-alih membagi jaringan menjadi setengah dengan menggunakan alamat bernomor genap atau alamat bernomor ganjil, Anda bisa membagi jaringan menjadi setengah menggunakan alamat bernomor rendah dan alamat bernomor tinggi, dengan membuat subnet normal yang setengah besarnya.

Topeng wildcard dengan bit non-berdekatan tidak terlalu berguna, dan bisa lebih menantang untuk dikerjakan. Maksud dari bit subnet mask yang diatur ke 1 adalah untuk mengatakan bahwa bit membantu mengidentifikasi subnet mana perangkat berada. Tidak ada alasan kuat untuk memiliki bit-bit tersebut tersebar di seluruh alamat, bukan hanya dengan baik mengelompokkan mereka di awal alamat . Hasilnya adalah bahwa mendukung jenis topeng ini adalah kompleksitas tambahan tanpa banyak manfaat besar.

Saya kira Cisco akhirnya setuju bahwa tidak ada gunanya topeng subnet non-tradisional seperti itu, karena mereka akhirnya menjatuhkan dukungan untuk "topeng kartu". Firewall Pix yang lebih lama mendukung "topeng kartu," tetapi unit ASA yang lebih baru menggunakan "topeng subjaringan" standar sebagai gantinya. .

Saya bahkan tidak akan mencoba membuat jaringan dengan "subnet bits" yang tidak berdekatan di dalam topeng, karena banyak perangkat lunak akan mengikuti tren / standar baru, dan menolak desain jaringan seperti itu. Bahkan jika saya menggunakan perangkat lunak yang lebih lama, saya mungkin ingin jaringan saya dapat dengan mudah dimodifikasi untuk dapat menggunakan perangkat lunak yang lebih baru tanpa perlu mendesain ulang jaringan. Jadi, “subnet bits” yang berdekatan adalah satu-satunya cara untuk melakukannya.

Jika Anda ditanya pertanyaan saat ujian, saya akan merasa yakin untuk mengatakan bahwa semua angka 1 harus ada di awal alamat. Itulah yang setiap penguji waras ingin agar sebagian besar siswa belajar di zaman sekarang ini.

TOOGAM
sumber
+1 - Satu-satunya saat saya melihat topeng wildcard yang digunakan tanpa semua 1 di akhirnya adalah topeng yang dimasukkan secara salah.
Mark Henderson
2

RFC 950 mengatakan dalam bab 2.2:

 To support subnets, it is necessary to store one more 32-bit
  quantity, called my_ip_mask.  This is a bit-mask with bits set in
  the fields corresponding to the IP network number, and additional
  bits set corresponding to the subnet number field.

 The code then becomes:

   IF bitwise_and(dg.ip_dest, my_ip_mask)
                               = bitwise_and(my_ip_addr, my_ip_mask)
         THEN
             send_dg_locally(dg, dg.ip_dest)
         ELSE
             send_dg_locally(dg,
                    gateway_to(bitwise_and(dg.ip_dest, my_ip_mask)))

jadi proposal adalah tentang operasi bit sederhana yang tidak peduli bit yang berdekatan

Pada tahun 1985, CPU dan memori jauh lebih terbatas, sehingga operasi yang lebih kompleks tidak akan sesuai dengan waktu.

Itu menjadi lebih eksplisit dalam bab 3:

dan pada jaringan bidang subnet 3-bit         sedang digunakan (01011000), yaitu, topeng alamat adalah 255.255.255.88.

Namun, RFC tersebut tampaknya sudah ketinggalan zaman. Pada Windows 7 SP1 misalnya, tidak mungkin untuk mengatur subnet mask seperti itu:

Contiguous subnet mask required on Windows 7

Bahkan pada Windows XP SP2, ini tidak mungkin lagi:

Subnet mask Windows XP SP2

Namun, Windows 98 clone ReactOS, memungkinkan pengaturan netmask "aneh":

ReactOS subnet mask

Thomas Weller
sumber
1

Saya setuju dengan jawaban @Sami Kuhmonen:

Bagian 3.1 dalam RFC menunjukkan topeng yang diizinkan dalam perutean antar-domain tanpa kelas. Bit harus berdekatan agar routing berfungsi dengan benar.   Juga ketika berpikir secara logis tidak masuk akal untuk memiliki topeng jaringan acak yang aneh.

Namun, bahkan jika itu tidak diinginkan atau diizinkan, masih dimungkinkan untuk menentukan subnet mask dari 1 yang tidak berurutan. Alasan di balik ini:
ID jaringan dan ID host dihitung dari alamat IP dan subnet mask menggunakan operasi biner AND dan XOR. Segala sesuatu yang lain tidak relevan.

Saya telah menguji itu tahun lalu di Win 2000, itu berhasil. Kedua komputer memiliki topeng 255.160.0.0. Mereka berada di LAN tanpa router, jadi saya tidak bisa tahu tentang perilaku router (biasanya Anda dapat mengatur topeng router hanya di antarmuka web itu, yang akan menolaknya).
Anda juga tidak dapat memasukkan subnet mask 'tidak valid' ke dalam bidang yang sesuai dari pengaturan jaringan; GUI menolak untuk menerimanya. Tapi Anda bisa menipu dengan mengubahnya di registri secara langsung. Setelah itu reboot atau nonaktifkan + aktifkan NIC agar perubahan menjadi aktif.
Tujuan dari itu semua: uhm, mungkin tidak ada.

Tobias Knauss
sumber
Terima kasih telah berbagi, tetapi ini tidak memenuhi syarat sebagai jawaban mandiri. Itu harus menjadi komentar atas jawaban Sami Kuhmonen.
agtoever
2
Terlalu lama untuk komentar ... Juga saya tidak berharap itu ditandai sebagai jawabannya.
Tobias Knauss
@agtoever: Setelah mengedit dan menambahkan lebih banyak detail, saya pikir itu memenuhi syarat sebagai jawaban mandiri sekarang, karena memiliki banyak info yang bukan bagian dari jawaban lain.
Tobias Knauss
"Bekerja pada satu implementasi" bukan a baik jawab saja. Dan itu bukan hanya "bekerja pada satu OS", tidak, Anda ternyata menguji satu PC tertentu dengan (penting) satu jaringan. Itu berarti Anda belum memverifikasi apakah kode perutean subnet di Windows 2000 benar-benar berfungsi, dan di situlah ID jaringan diperlukan. Bisakah Anda rute antara dua yang tidak berdekatan 255.160.0.0 jaringan?
MSalters
@Malters Bekerja pada satu implementasi masih berarti berhasil. Saya tidak mengklaim untuk berbicara untuk semua kemungkinan konfigurasi OS. Juga, bagaimana menurut Anda bagaimana paket-paket tersebut berpindah dari satu PC ke PC lainnya? Komputer harus mengetahui rutenya. Karena itu ia harus menghitung apakah komputer target berada di subnet yang sama (mengirim paket secara langsung) atau jauh (meminta gateway yang dikonfigurasi untuk rute). // Tidak, kurasa aku tidak bisa melakukan perutean seperti itu, karena topeng subnet ini tidak dimaksudkan untuk digunakan. Saya menunjukkan sebuah kasus apakah itu berhasil, tetapi tanpa subnet yang berbeda. Mungkin itu berhasil juga, siapa yang tahu ...
Tobias Knauss