Pertanyaan Bagaimana cara kerja Subnetting IPv4?


Ini adalah sebuah Pertanyaan Kanonis tentang Subnet IPv4.

Terkait:

Bagaimana cara kerja Subnetting, dan Bagaimana Anda melakukannya dengan tangan atau di kepala kamu?  Dapatkah seseorang menjelaskan secara konseptual dan dengan beberapa contoh? Kesalahan Server mendapat banyak pertanyaan subnetting pekerjaan rumah, jadi kita bisa menggunakan jawaban untuk mengarahkan mereka ke Server Fault itu sendiri.

  • Jika saya memiliki jaringan, bagaimana saya mengetahuinya bagaimana cara memisahkannya?
  • Jika saya diberi netmask, bagaimana saya tahu apa rentang jaringan untuk saya t?
  • Terkadang ada garis miring yang diikuti dengan angka, berapa angka itu?
  • Kadang-kadang ada topeng subnet, tetapi juga topeng wildcard, mereka tampak seperti hal yang sama tetapi mereka berbeda?
  • Seseorang menyebutkan sesuatu tentang mengetahui biner untuk ini?

422
2017-08-04 15:51






Jawaban:


Subnet IP ada untuk memungkinkan router memilih tujuan yang tepat untuk paket. Anda dapat menggunakan subnet IP untuk memecah jaringan yang lebih besar untuk alasan logis (firewall, dll), atau kebutuhan fisik (domain broadcast yang lebih kecil, dll).

Sederhananya, meskipun, IP router menggunakan subnet IP Anda untuk membuat keputusan routing. Pahami cara kerja keputusan tersebut, dan Anda dapat memahami cara merencanakan subnet IP.

Menghitung hingga 1

Jika Anda sudah fasih dalam biner (basis 2) notasi Anda dapat melewati bagian ini.

Bagi Anda yang tersisa: Malu pada Anda karena tidak lancar dalam notasi biner!

Ya-- itu mungkin sedikit kasar. Benar-benar, sangat mudah untuk belajar menghitung dalam biner, dan belajar cara pintas untuk mengkonversi biner ke desimal dan kembali. Anda benar-benar harus tahu cara melakukannya.

Menghitung dalam biner sangat sederhana karena Anda hanya perlu tahu cara menghitung hingga 1!

Pikirkan "odometer" mobil, kecuali bahwa tidak seperti odometer tradisional, setiap digit hanya dapat menghitung hingga 1 dari 0. Ketika mobil baru dari pabrik, odometer bertuliskan "00000000".

Ketika Anda telah menggerakkan mil pertama Anda, odometer bertuliskan "00000001". Sejauh ini baik.

Ketika Anda telah mendorong mil kedua Anda, angka pertama odometer kembali ke "0" (karena nilai maksimumnya adalah "1") dan digit kedua odometer berguling ke "1", membuat odometer terbaca " 00000010 ". Ini terlihat seperti angka 10 dalam notasi desimal, tetapi sebenarnya 2 (jumlah mil yang telah Anda kendarai sejauh ini) dalam notasi biner.

Ketika Anda telah menggerakkan mil ketiga odometer itu berbunyi "00000011", sejak digit pertama odometer berputar kembali. Angka "11", dalam notasi biner, sama dengan angka desimal 3.

Akhirnya, ketika Anda telah menggerakkan mil keempat Anda baik digit (yang membaca "1" pada akhir mil ketiga) memutar kembali ke posisi nol, dan digit ke-3 menggulung ke posisi "1", memberi kami " 00000100 ". Itulah representasi biner dari angka desimal 4.

Anda dapat menghafal semua itu jika Anda mau, tetapi Anda benar-benar hanya perlu memahami bagaimana sedikit odometer "berguling" karena angka itu menghitung semakin besar. Ini persis sama dengan operasi odometer desimal tradisional, kecuali bahwa setiap digit hanya bisa "0" atau "1" pada "odometer biner" fiksi kami.

Untuk mengubah angka desimal menjadi biner Anda dapat menggulirkan odometer ke depan, centang dengan centang, hitung dengan keras sampai Anda menggulungnya beberapa kali sama dengan angka desimal yang ingin Anda ubah menjadi biner. Apa pun yang ditampilkan di odometer setelah semua couting dan rolling akan menjadi representasi biner dari angka desimal yang Anda hitung.

Karena Anda memahami bagaimana odometer berguling ke depan, Anda juga akan memahami bagaimana hal itu berguling ke belakang juga. Untuk mengonversi bilangan biner yang ditampilkan di odometer kembali ke desimal, Anda dapat menggulung odometer kembali satu titik pada satu waktu, menghitung dengan keras sampai odometer berbunyi "00000000". Ketika semua penghitungan dan penggulungan itu dilakukan, angka terakhir yang Anda ucapkan dengan keras akan menjadi representasi desimal dari angka biner yang dimulai oleh odometer.

Mengubah nilai antara biner dan desimal dengan cara ini sangat membosankan. Anda bisa melakukannya, tetapi itu tidak akan sangat efisien. Lebih mudah mempelajari sedikit algoritme untuk melakukannya lebih cepat.

Sebentar lagi: Setiap digit dalam bilangan biner dikenal sebagai "bit". Itu "b" dari "binary" dan "it" dari "digit". Sedikit adalah angka biner.

Mengonversi bilangan biner seperti, katakan, "1101011" menjadi desimal adalah proses sederhana dengan algoritme kecil yang praktis.

Mulailah dengan menghitung jumlah bit dalam bilangan biner. Dalam hal ini, ada 7. Buat 7 divisi pada selembar kertas (di pikiran Anda, dalam file teks, dll) dan mulai mengisinya dari kanan ke kiri. Di slot paling kanan, masukkan angka "1", karena kami akan selalu memulai dengan "1". Di slot sebelah kiri, masukkan dua kali nilai di slot ke kanan (jadi, "2" di slot berikutnya, "4" di yang berikutnya) dan lanjutkan sampai semua slot penuh. (Anda akan berakhir menghafal angka-angka ini, yang merupakan kekuatan 2, karena Anda melakukan ini lebih banyak dan lebih. Saya baik-baik saja hingga 131.072 di kepala saya tetapi saya biasanya membutuhkan kalkulator atau kertas setelah itu).

Jadi, Anda harus memiliki hal-hal berikut di kertas Anda di slot kecil Anda.

 64    |    32    |    16    |    8    |    4    |    2    |    1    |

Transkripsikan bit dari bilangan biner di bawah slot, seperti:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
  1          1          0         1         0         1         1

Sekarang, tambahkan beberapa simbol dan hitung jawaban untuk masalah:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
       +          +          +         +         +         +         =

Melakukan semua matematika, Anda harus datang dengan:

 64    |    32    |    16    |    8    |    4    |    2    |    1    |
x 1        x 1        x 0       x 1       x 0       x 1       x 1
---        ---        ---       ---       ---       ---       ---
 64    +    32    +     0    +    8    +    0    +    2    +    1    =   107

Itu mengerti. "1101011" dalam desimal adalah 107. Ini hanya langkah sederhana dan matematika yang mudah.

Mengubah desimal menjadi biner sama mudahnya dan merupakan algoritme dasar yang sama, dijalankan secara terbalik.

Katakan bahwa kita ingin mengubah angka 218 menjadi biner. Mulai di sebelah kanan selembar kertas, tulis nomor "1". Ke kiri, gandakan nilai itu (jadi, "2") dan terus bergerak ke arah kiri kertas menggandakan nilai terakhir. Jika nomor yang akan Anda tulis lebih besar dari angka yang diubah berhenti menulis. jika tidak, lanjutkan menggandakan jumlah dan tulisan sebelumnya. (Mengkonversi sejumlah besar, seperti 34.157.216.092, ke biner menggunakan algoritme ini bisa menjadi sedikit membosankan, tetapi itu pasti mungkin.)

Jadi, Anda harus menulis di kertas Anda:

 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |

Anda berhenti menulis angka pada 128 karena menggandakan 128, yang akan memberi Anda 256, akan lebih besar daripada jumlah yang dikonversi (218).

Mulai dari angka paling kiri, tulis "218" di atasnya (128) dan tanyakan pada diri sendiri: "Apakah 218 lebih besar dari atau sama dengan 128?" Jika jawabannya ya, gores "1" di bawah "128". Di atas "64", tulis hasil 218 dikurangi 128 (90).

Melihat "64", tanyakan pada diri sendiri: "Apakah 90 lebih besar dari atau sama dengan 64?" Yaitu, jadi Anda menulis "1" di bawah "64", lalu kurangi 64 dari 90 dan tuliskan di atas "32" (26).

Ketika Anda mencapai "32", Anda menemukan bahwa 32 tidak lebih besar dari atau sama dengan 26. Dalam hal ini, tulis "0" di bawah "32", salin nomor (26) dari atas 32 "ke atas" 16 "dan kemudian terus bertanya pada diri sendiri pertanyaan yang sama dengan sisa angka.

Ketika Anda sudah selesai, Anda harus memiliki:

 218         90         26         26        10         2         2         0
 128    |    64    |    32    |    16    |    8    |    4    |    2    |    1    |
   1          1          0          1         1         0         1         0

Angka-angka di atas hanyalah catatan yang digunakan dalam perhitungan dan tidak berarti banyak bagi kita. Di bagian bawah, Anda melihat angka biner "11011010". Benar saja, 218, dikonversi ke biner, adalah "11011010".

Mengikuti prosedur yang sangat sederhana ini Anda dapat mengkonversi biner ke desimal dan kembali lagi tanpa kalkulator. Perhitungannya sangat sederhana dan aturannya dapat dihafalkan hanya dengan sedikit latihan.

Memisahkan Alamat

Pikirkan routing IP seperti pengiriman pizza.

Ketika Anda diminta untuk mengantarkan pizza ke "123 Main Street", sangat jelas bagi Anda, sebagai manusia, bahwa Anda ingin pergi ke gedung bernomor "123" di jalan bernama "Main Street". Sangat mudah untuk mengetahui bahwa Anda harus pergi ke 100-blok Main Street karena jumlah bangunan adalah antara 100 dan 199 dan sebagian besar blok kota berjumlah ratusan. Anda "hanya tahu" cara membagi alamat.

Router mengirimkan paket, bukan pizza. Pekerjaan mereka sama dengan sopir pizza: Untuk mendapatkan kargo (paket) sedekat mungkin dengan tujuan. Router terhubung ke dua atau lebih subnet IP (agar berguna). Sebuah router harus memeriksa alamat IP tujuan paket dan memecah alamat tujuan tersebut menjadi komponen "nama jalan" dan "nomor bangunan" mereka, seperti halnya pengemudi pizza, untuk membuat keputusan tentang pengiriman.

Setiap komputer (atau "host") pada jaringan IP dikonfigurasi dengan alamat IP dan subnet mask yang unik. Alamat IP tersebut dapat dibagi menjadi komponen "nomor bangunan" (seperti "123" dalam contoh di atas) yang disebut "ID host" dan komponen "nama jalan" (seperti "Jalan Utama" dalam contoh di atas) yang disebut "ID jaringan". Untuk mata manusia kami, sangat mudah untuk melihat di mana nomor bangunan dan nama jalan berada di "123 Main Street", tetapi lebih sulit untuk melihat pembagian itu di "10.13.216.41 dengan subnet mask 255.255.192.0".

IP router "hanya tahu" bagaimana membagi alamat IP ke bagian-bagian komponen ini untuk membuat keputusan routing. Karena memahami bagaimana paket-paket IP dirutekan bergantung pada pemahaman proses ini kita perlu tahu bagaimana memecah alamat IP juga. Untungnya, mengekstrak ID host dan ID jaringan dari alamat IP dan subnet mask sebenarnya cukup mudah.

Mulailah dengan menuliskan alamat IP dalam biner (gunakan kalkulator jika Anda belum belajar melakukannya di kepala Anda dulu, tetapi buat catatan belajar cara melakukannya - itu benar-benar mudah dan mengesankan lawan jenis di pesta):

      10.      13.     216.      41
00001010.00001101.11011000.00101001

Tulis subnet mask dalam biner, juga:

     255.     255.     192.       0
11111111.11111111.11000000.00000000

Ditulis berdampingan, Anda dapat melihat bahwa titik di subnet mask di mana "1" berhenti "berbaris" ke titik di alamat IP. Itulah intinya bahwa ID jaringan dan ID host terpecah. Jadi, dalam hal ini:

      10.      13.     216.      41
00001010.00001101.11011000.00101001 - IP address
11111111.11111111.11000000.00000000 - subnet mask
00001010.00001101.11000000.00000000 - Portion of IP address covered by 1's in subnet mask, remaining bits set to 0
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

Router menggunakan subnet mask untuk "mask out" bit yang tercakup oleh 1 di alamat IP (mengganti bit yang tidak "masked out" dengan 0's) untuk mengekstrak ID jaringan:

      10.      13.     192.       0
00001010.00001101.11000000.00000000 - Network ID

Demikian juga, dengan menggunakan subnet mask untuk "menutupi" bit-bit yang tercakup oleh 0 di alamat IP (mengganti bit-bit yang tidak "ditutup-tutupi" dengan 0 lagi) router dapat mengekstrak ID host:

       0.       0.      24.      41
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0

Ini tidak semudah mata manusia kita untuk melihat "istirahat" antara ID jaringan dan ID host seperti di antara "nomor bangunan" dan "nama jalan" di alamat fisik selama pengiriman pizza, tetapi efek utamanya adalah sama.

Sekarang Anda dapat memisahkan alamat IP dan subnet mask ke ID host dan ID jaringan Anda dapat mengarahkan IP seperti halnya router.

Lebih banyak Terminologi

Anda akan melihat subnet mask yang ditulis di seluruh Internet dan di seluruh sisa jawaban ini sebagai (IP / angka). Notasi ini dikenal sebagai notasi "Classless Inter-Domain Routing" (CIDR). "255.255.255.0" terdiri dari 24 bit 1 di awal, dan lebih cepat untuk menulis itu sebagai "/ 24" daripada sebagai "255.255.255.0". Untuk mengkonversi nomor CIDR (seperti "/ 16") ke subnet mask bertitik titik desimal, tulis saja angka 1 itu, bagi menjadi 8 bit, dan ubah menjadi desimal. (A "/ 16" adalah "255.255.0.0", misalnya.)

Kembali di "masa lalu", subnet mask tidak ditentukan, melainkan diturunkan dengan melihat bit tertentu dari alamat IP. Alamat IP yang dimulai dengan 0 - 127, misalnya, memiliki subnet mask tersirat dari 255.0.0.0 (disebut alamat IP "kelas A").

Subnet mask tersirat ini tidak digunakan hari ini dan saya tidak menyarankan untuk mempelajarinya lagi kecuali Anda memiliki kesialan berurusan dengan peralatan yang sangat lama atau protokol lama (seperti RIPv1) yang tidak mendukung pengalamatan IP tanpa kelas. Saya tidak akan menyebutkan "kelas" alamat ini lebih lanjut karena itu tidak berlaku hari ini dan dapat membingungkan.

Beberapa perangkat menggunakan notasi yang disebut "wildcard masks". "Wildcard mask" tidak lebih dari subnet mask dengan semua 0 di mana akan ada 1, dan 1 di mana akan ada 0. "Wildcard mask" dari / 26 adalah:

 11111111.11111111.11111111.11000000 - /26 subnet mask
 00000000.00000000.00000000.00111111 - /26 "wildcard mask"

Biasanya Anda melihat "wildcard masks" yang digunakan untuk mencocokkan ID host di daftar kontrol akses atau aturan firewall. Kami tidak akan mendiskusikannya lebih jauh di sini.

Cara Kerja Router

Seperti yang saya katakan sebelumnya, router IP memiliki pekerjaan yang serupa dengan pengantar pengiriman pizza karena mereka perlu membawa kargo (paket) ke tujuannya. Ketika disajikan dengan paket yang diikat untuk alamat 192.168.10.2, sebuah router IP perlu menentukan interface jaringan mana yang paling baik untuk mendapatkan paket tersebut lebih dekat ke tujuannya.

Katakanlah Anda adalah router IP, dan Anda memiliki antarmuka yang terhubung dengan Anda yang diberi nomor:

  • Ethernet0 - 192.168.20.1, subnet mask / 24
  • Ethernet1 - 192.168.10.1, subnet mask / 24

Jika Anda menerima paket untuk mengirim dengan alamat tujuan "192.168.10.2", cukup mudah untuk mengatakan (dengan mata manusia Anda) bahwa paket harus dikirim keluar antarmuka Ethernet1, karena alamat antarmuka Ethernet1 sesuai dengan tujuan paket alamat. Semua komputer yang terhubung ke antarmuka Ethernet1 akan memiliki alamat IP yang dimulai dengan "192.168.10.", Karena ID jaringan dari alamat IP yang ditetapkan ke antarmuka Ethernet1 Anda adalah "192.168.10.0".

Untuk router, proses pemilihan rute ini dilakukan dengan membangun tabel routing dan konsultasi meja setiap kali paket akan dikirimkan. Sebuah tabel routing berisi ID jaringan dan nama antarmuka tujuan. Anda sudah tahu cara mendapatkan ID jaringan dari alamat IP dan subnet mask, jadi Anda berada di jalan untuk membuat tabel routing. Berikut tabel routing kami untuk router ini:

  • ID Jaringan: 192.168.20.0 (11000000.10101000.00010100.00000000) - Subnet mask 24 bit - Antarmuka Ethernet0
  • ID Jaringan: 192.168.10.0 (11000000.10101000.00001010.00000000) - Subnet mask 24 bit - Antarmuka Ethernet1

Untuk paket masuk kita terikat untuk "192.168.10.2", kita hanya perlu mengubah alamat paket itu menjadi biner (sebagai manusia - router mendapatkannya sebagai biner dari kabel untuk memulai) dan mencoba untuk mencocokkannya ke setiap alamat dalam perutean kami tabel (hingga jumlah bit dalam subnet mask) sampai kami mencocokkan entri.

  • Tujuan paket yang akan datang: 11000000.10101000.00001010.00000010

Membandingkannya dengan entri di tabel routing kami:

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00010100.00000000 - Interface Ethernet0
!!!!!!!!.!!!!!!!!.!!!????!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00001010.00000000 - Interface Ethernet1, 24 bit subnet mask
!!!!!!!!.!!!!!!!!.!!!!!!!!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)

Entri untuk Ethernet0 cocok dengan 19 bit pertama, tetapi kemudian berhenti cocok. Itu berarti itu bukan antarmuka tujuan yang tepat. Anda dapat melihat bahwa antarmuka Ethernet1 mencocokkan 24 bit dari alamat tujuan. Ah, ha! Paket ini terikat untuk antarmuka Ethernet1.

Dalam router kehidupan nyata, tabel routing diurutkan sedemikian rupa sehingga masker subnet terpanjang diperiksa untuk pertandingan pertama (yaitu rute yang paling spesifik), dan secara numerik sehingga segera setelah kecocokan ditemukan paket dapat dialihkan dan tidak ada upaya pencocokan lebih lanjut diperlukan (yang berarti bahwa 192.168.10.0 akan terdaftar pertama dan 192.168.20.0 tidak akan pernah diperiksa). Di sini, kami menyederhanakannya sedikit. Struktur data dan algoritme yang mewah membuat router IP lebih cepat, tetapi algoritma sederhana akan menghasilkan hasil yang sama.

Rute Statis

Hingga saat ini, kami telah membicarakan tentang router hipotetis kami karena memiliki jaringan yang terhubung langsung dengannya. Itu tidak, tentu saja, bagaimana dunia benar-benar bekerja. Dalam analogi mengemudi pizza, terkadang pengemudi tidak diperbolehkan masuk lebih jauh ke dalam gedung daripada meja depan, dan harus menyerahkan pizza itu kepada orang lain untuk dikirimkan ke penerima akhir (menangguhkan rasa tidak percaya Anda dan bersabar dengan saya sementara Saya memperluas analogi saya, silakan).

Mari kita mulai dengan memanggil router kami dari contoh sebelumnya "Router A". Anda sudah tahu tabel routing RouterA sebagai:

  • ID Jaringan: 192.168.20.0 (11000000.10101000.00010100.00000000) - subnet mask / 24 - Antarmuka RouterA-Ethernet0
  • ID Jaringan: 192.168.10.0 (11000000.10101000.00001010.00000000) - subnet mask / 24 - Antarmuka RouterA-Ethernet1

Misalkan ada router lain, "Router B", dengan alamat IP 192.168.10.254/24 dan 192.168.30.1/24 yang ditugaskan ke antarmuka Ethernet0 dan Ethernet1-nya. Ini memiliki tabel routing berikut:

  • ID Jaringan: 192.168.10.0 (11000000.10101000.00001010.00000000) - subnet mask / 24 - Antarmuka RouterB-Ethernet0
  • ID Jaringan: 192.168.30.0 (11000000.10101000.00011110.00000000) - subnet mask / 24 - Antarmuka RouterB-Ethernet1

Dalam seni ASCII yang cantik, jaringannya terlihat seperti ini:

               Interface                      Interface
               Ethernet1                      Ethernet1
               192.168.10.1/24                192.168.30.254/24
     __________  V                  __________  V
    |          | V                 |          | V
----| ROUTER A |------- /// -------| ROUTER B |----
  ^ |__________|                 ^ |__________|
  ^                              ^
Interface                      Interface
Ethernet0                      Ethernet0
192.168.20.1/24                192.168.10.254/24

Anda dapat melihat bahwa Router B tahu bagaimana "mendapatkan ke" jaringan, 192.168.30.0/24, bahwa Router A tidak tahu apa-apa tentang itu.

Misalkan PC dengan alamat IP 192.168.20.13 yang terhubung ke jaringan yang terhubung ke antarmuka Ethernet0 router A mengirimkan paket ke Router A untuk pengiriman. Paket hipotetis kami ditujukan untuk alamat IP 192.168.30.46, yang merupakan perangkat yang terhubung ke jaringan yang terhubung ke antarmuka Ethernet1 dari Router B.

Dengan tabel routing yang ditunjukkan di atas, tidak ada entri di tabel routing Router A yang sesuai dengan tujuan 192.168.30.46, jadi Router A akan mengembalikan paket ke PC pengirim dengan pesan "Jaringan tujuan tidak dapat dijangkau".

Untuk membuat Router A "sadar" akan keberadaan jaringan 192.168.30.0/24, kami menambahkan entri berikut ke tabel routing pada Router A:

  • ID Jaringan: 192.168.30.0 (11000000.10101000.00011110.00000000) - subnet mask / 24 - Dapat diakses melalui 192.168.10.254

Dengan cara ini, Router A memiliki entri tabel routing yang cocok dengan tujuan 192.168.30.46 dari paket contoh kami. Entri tabel routing ini secara efektif mengatakan "Jika Anda mendapatkan paket yang terikat untuk 192.168.30.0/24, kirimkan ke 192.168.10.254 karena dia tahu cara mengatasinya." Ini adalah tindakan "hand-off the pizza on the desk" yang serupa yang saya sebutkan sebelumnya - mengirimkan paket ke orang lain yang tahu bagaimana membuatnya lebih dekat ke tujuannya.

Menambahkan entri ke tabel routing "dengan tangan" dikenal sebagai menambahkan "rute statis".

Jika Router B ingin mengirim paket ke jaringan subnet mask 192.168.20.0 255.255.255.0, ia juga memerlukan entri di tabel routingnya:

  • ID Jaringan: 192.168.20.0 (11000000.10101000.00010100.00000000) - subnet mask / 24 - Dapat diakses melalui: 192.168.10.1 (Alamat IP Router A di jaringan 192.168.10.0)

Ini akan menciptakan jalur untuk pengiriman antara jaringan 192.168.30.0/24 dan jaringan 192.168.20.0/24 di seluruh jaringan 192.168.10.0/24 antara router-router ini.

Anda selalu ingin memastikan bahwa router di kedua sisi seperti "jaringan interstisial" memiliki entri tabel routing untuk jaringan "ujung". Jika router B dalam contoh kita tidak memiliki entri tabel routing untuk "far end" network 192.168.20.0/24 yang terhubung ke router A paket hipotetis kita dari PC pada 192.168.20.13 akan dapatkan perangkat tujuan di 192.168.30.46, tetapi balasan apa pun yang 192.168.30.46 coba dikirim kembali akan dikembalikan oleh router B sebagai "Jaringan tujuan tidak dapat dijangkau". Komunikasi satu arah umumnya tidak diinginkan. Selalu pastikan Anda memikirkan lalu lintas yang mengalir masuk kedua arah ketika Anda berpikir tentang komunikasi di jaringan komputer.

Anda bisa mendapatkan banyak jarak tempuh dari rute statis. Protokol routing dinamis seperti EIGRP, RIP, dll, benar-benar tidak lebih dari sebuah cara bagi router untuk bertukar informasi routing antara satu sama lain yang sebenarnya dapat dikonfigurasi dengan rute statis. Satu keuntungan besar untuk menggunakan protokol routing dinamis melalui rute statis, adalah bahwa protokol routing dinamis bisa secara dinamis mengubah tabel routing berdasarkan kondisi jaringan (penggunaan bandwidth, antarmuka "turun", dll) dan, dengan demikian, menggunakan protokol routing dinamis dapat menghasilkan konfigurasi yang "berkeliling" kegagalan atau kemacetan dalam infrastruktur jaringan. (Protokol routing dinamis adalah CARA di luar lingkup jawaban ini.

Anda Tidak Bisa Mendatang Dari Sini

Dalam kasus contoh Router A kami, apa yang terjadi ketika sebuah paket yang terikat untuk "172.16.31.92" masuk?

Melihat tabel routing Router A, baik antarmuka tujuan maupun rute statis cocok dengan 24 bit pertama 172.18.31.92 (yaitu 10101100.00010000.00011111.01011100, BTW).

Seperti yang sudah kita ketahui, Router A akan mengembalikan paket ke pengirim melalui pesan "Destination network unreachable".

Katakanlah ada router lain (Router C) yang ada di alamat "192.168.20.254". Router C memiliki koneksi ke Internet!

                              Interface                      Interface                      Interface
                              Ethernet1                      Ethernet1                      Ethernet1
                              192.168.20.254/24              192.168.10.1/24                192.168.30.254/24
                    __________  V                  __________  V                  __________  V
((  heap o  ))     |          | V                 |          | V                 |          | V
(( internet )) ----| ROUTER C |------- /// -------| ROUTER A |------- /// -------| ROUTER B |----
((   w00t!  ))   ^ |__________|                 ^ |__________|                 ^ |__________|
                 ^                              ^                              ^
               Interface                      Interface                      Interface
               Ethernet0                      Ethernet0                      Ethernet0
               10.35.1.1/30                   192.168.20.1/24                192.168.10.254/24

Akan lebih baik jika Router A dapat merutekan paket yang tidak cocok dengan antarmuka lokal apa pun hingga Router C sehingga Router C dapat mengirimnya ke Internet. Masukkan rute "gateway default".

Tambahkan entri di akhir tabel routing kami seperti ini:

  • ID Jaringan: 0.0.0.0 (00000000.00000000.00000000.00000000) - subnet mask / 0 - Router tujuan: 192.168.20.254

Ketika kami mencoba untuk mencocokkan "172.16.31.92" untuk setiap entri dalam tabel routing, kami akhirnya memukul entri baru ini. Ini sedikit membingungkan, pada awalnya. Kami mencari untuk mencocokkan nol bit dari alamat tujuan dengan ... tunggu ... apa? Mencocokkan nol bit? Jadi, kami tidak mencari kecocokan sama sekali. Ini entri tabel routing mengatakan, pada dasarnya, "Jika Anda sampai di sini, daripada menyerah pada pengiriman, kirim paket ke router di 192.168.20.254 dan biarkan dia menanganinya".

192.168.20.254 adalah tujuan kita MELAKUKAN tahu cara mengirim paket ke. Ketika dihadapkan dengan paket yang terikat untuk tujuan yang kami tidak memiliki entri tabel routing tertentu, entri "gateway default" ini akan selalu cocok (karena cocok dengan nol bit dari alamat tujuan) dan memberi kita tempat "terakhir" yang dapat kita kirim paket untuk pengiriman. Terkadang Anda akan mendengar gerbang default yang disebut "gateway of last resort."

Agar rute gateway default untuk menjadi efektif itu harus merujuk ke router yang dapat dijangkau menggunakan entri lain dalam tabel routing. Jika Anda mencoba menentukan gateway default 192.168.50.254 di Router A, misalnya, pengiriman ke gateway default seperti itu akan gagal. 192.168.50.254 bukanlah alamat yang Router A tahu cara mengirim paket untuk menggunakan salah satu dari rute lain dalam tabel rutenya, sehingga alamat tersebut tidak akan efektif sebagai gerbang default. Ini dapat dinyatakan secara ringkas: Gateway default harus diatur ke alamat yang sudah dapat dijangkau dengan menggunakan rute lain dalam tabel routing.

Router nyata biasanya menyimpan gateway default sebagai rute terakhir dalam tabel routing mereka sedemikian rupa sehingga cocok dengan paket-paket setelah mereka gagal mencocokkan semua entri lain dalam tabel.

Perencanaan Kota dan Routing IP

Memutus subnet IP menjadi subnet IP yang lebih kecil adalah perencanaan kota. Dalam perencanaan perkotaan, zonasi digunakan untuk beradaptasi dengan fitur alam lanskap (sungai, danau, dll), untuk mempengaruhi arus lalu lintas antara berbagai bagian kota, dan untuk memisahkan berbagai jenis penggunaan lahan (industri, perumahan, dll) . Subnetting IP benar-benar sama.

Ada tiga alasan utama mengapa Anda akan melakukan subnet jaringan:

  • Anda mungkin ingin berkomunikasi di berbagai media komunikasi yang berbeda. Jika Anda memiliki koneksi WAN T1 antara dua gedung, router IP dapat ditempatkan di ujung sambungan ini untuk memfasilitasi komunikasi di seluruh T1. Jaringan di setiap ujung (dan mungkin jaringan "interstisial" pada T1 itu sendiri) akan ditetapkan ke subnet IP yang unik sehingga router dapat membuat keputusan tentang lalu lintas mana yang harus dikirim melintasi garis T1.

  • Di jaringan Ethernet, Anda mungkin menggunakan subnetting untuk membatasi jumlah trafik broadcast di suatu bagian jaringan tertentu. Protokol layer-aplikasi menggunakan kapabilitas broadcast dari Ethernet untuk tujuan yang sangat berguna. Karena Anda semakin banyak host yang dikemas ke dalam jaringan Ethernet yang sama, meskipun, persentase lalu lintas siaran pada kawat (atau udara, dalam Ethernet nirkabel) dapat meningkat ke titik seperti itu untuk menciptakan masalah bagi pengiriman lalu lintas non-siaran. (Pada masa lalu, trafik broadcast dapat membanjiri CPU host dengan memaksa mereka untuk memeriksa setiap paket siaran. Itu kurang mungkin hari ini.) Trafik yang berlebihan pada Ethernet yang diaktifkan juga bisa datang dalam bentuk "banjir frame ke tujuan yang tidak diketahui". Kondisi ini disebabkan oleh switch Ethernet tidak dapat melacak setiap tujuan di jaringan dan merupakan alasan mengapa jaringan Ethernet yang diaktifkan tidak dapat menskalakan ke jumlah host yang tak terbatas. Efek membanjiri frame ke tujuan yang tidak dikenal mirip dengan efek dari kelebihan lalu lintas siaran, untuk keperluan subnetting.

  • Anda mungkin ingin "mengatur" jenis lalu lintas yang mengalir di antara kelompok-kelompok host yang berbeda. Mungkin Anda memiliki perangkat server cetak dan Anda hanya ingin komputer server antrian cetak resmi mengirim pekerjaan kepada mereka. Dengan membatasi lalu lintas yang diizinkan mengalir ke perangkat print server, pengguna subnet tidak dapat mengkonfigurasi PC mereka untuk berbicara langsung dengan perangkat server cetak untuk melewati pencetakan akuntansi. Anda mungkin menempatkan perangkat server cetak ke dalam subnet semuanya untuk diri mereka sendiri dan membuat aturan di router atau firewall yang melekat pada subnet itu untuk mengontrol daftar host yang diizinkan untuk mengirim lalu lintas ke perangkat server cetak. (Baik router dan firewall biasanya dapat membuat keputusan tentang bagaimana atau apakah mengirim paket berdasarkan alamat sumber dan tujuan paket. Firewall biasanya merupakan sub-spesies router dengan kepribadian yang obsesif. Mereka dapat sangat, sangat peduli tentang muatan paket, sedangkan router biasanya mengabaikan muatan dan hanya mengirimkan paket.)

Dalam merencanakan suatu kota, Anda dapat merencanakan bagaimana jalan-jalan saling bersinggungan satu sama lain, dan dapat menggunakan jalan putar saja, satu arah, dan buntu untuk memengaruhi arus lalu lintas. Anda mungkin ingin Main Street menjadi 30 blok panjang, dengan masing-masing blok memiliki hingga 99 bangunan masing-masing. Sangat mudah untuk merencanakan penomoran jalan Anda sedemikian rupa sehingga setiap blok di Main Street memiliki rentang jumlah jalan yang meningkat sebesar 100 untuk setiap blok. Sangat mudah untuk mengetahui apa yang "nomor awal" di setiap blok berikutnya seharusnya.

Dalam merencanakan subnet IP, Anda khawatir dengan membangun jumlah subnet yang tepat (jalan) dengan jumlah ID host yang tepat (nomor bangunan), dan menggunakan router untuk menghubungkan subnet satu sama lain (persimpangan). Aturan tentang sumber yang diizinkan dan alamat tujuan yang ditentukan dalam router dapat lebih mengontrol aliran lalu lintas. Firewall dapat bertindak seperti polisi lalu lintas yang obsesif.

Untuk tujuan jawaban ini, membangun subnet kami adalah satu-satunya perhatian utama kami. Alih-alih bekerja dalam desimal, seperti yang Anda lakukan dengan perencanaan kota, Anda bekerja dalam biner untuk menggambarkan batas-batas setiap subnet.

Bersambung ke: Bagaimana cara kerja Subnetting IPv4?

(Ya ... kami mencapai ukuran maksimum jawaban (30000 karakter).)


631
2017-08-04 15:58



@Joseph: Ini adalah ceramah yang telah saya sampaikan terlalu banyak untuk kebaikan saya sendiri. > Tersenyum <Saya akan melihat bagian biner Anda. Saya benci mengajar tentang matematika (yang benar-benar memahami binari - menghitung dalam basis 2) karena saya tidak pandai dalam hal itu. - Evan Anderson
Satu-satunya masalah saya dengan memecah jawabannya adalah bahwa seseorang perlu memahami mengapa subnetting ada (IP routing) sebelum seseorang dapat memahami cara efektif memecah jaringan IP menjadi subnet. Saya belum pernah menemukan cara yang baik untuk mendiskusikan satu topik dalam isolasi yang lain. (Benar-benar, merancang jaringan IP dengan VLSM datang secara alami dan "masuk akal" setelah Anda memahami routing IP ...) - Evan Anderson
Jangan putus. - Joseph Kern
+1 untuk pos paling komprehensif yang pernah dilihat di serverfault - Scott Lundberg
Upvoted jika hanya untuk metafora Odometer. Sekarang saya tahu bagaimana menjelaskan cara kerja biner bagi orang. - phuzion


Lanjutan dari: Bagaimana cara kerja Subnetting IPv4?

ISP Anda memberi Anda jangkauan ID jaringan 192.168.40.0/24 (11000000.10101000.00101000.00000000). Anda tahu bahwa Anda ingin menggunakan perangkat firewall / router untuk membatasi komunikasi antara berbagai bagian jaringan Anda (server, komputer klien, peralatan jaringan) dan, dengan demikian, Anda ingin memecah berbagai bagian jaringan Anda ini ke dalam subnet IP (yang bisa digunakan oleh perangkat firewall / router).

Kamu punya:

  • 12 komputer server, tetapi Anda mungkin mendapatkan hingga 50% lebih banyak
  • 9 switch
  • 97 komputer klien, tetapi Anda mungkin mendapatkan lebih banyak

Apa cara yang baik untuk memecah 192.168.40.0/24 menjadi bagian-bagian ini?

Berpikir dalam kekuatan dua, dan bekerja dengan jumlah perangkat kemungkinan yang lebih besar, Anda dapat memunculkan:

  • 18 komputer server - kekuatan terbesar berikutnya dari dua adalah 32
  • 9 switch - Kekuatan terbesar berikutnya dari dua adalah 16
  • 97 komputer klien - kekuatan terbesar berikutnya dari dua adalah 128

Dalam subnet IP tertentu, ada dua alamat yang dicadangkan yang tidak dapat digunakan sebagai alamat IP perangkat yang valid - alamat dengan semua nol di bagian ID host dan alamat dengan semua yang ada di bagian ID host. Dengan demikian, untuk setiap subnet IP, jumlah alamat host yang tersedia adalah dua dengan kekuatan kuantitas 32 dikurangi jumlah bit dalam subnet mask, minus 2. Jadi, dalam kasus 192.168.40.0/24 kami dapat melihat bahwa subnet mask memiliki 24 bit. Yang menyisakan 8 bit tersedia untuk ID host. Kita tahu bahwa 2 hingga kekuatan 8 adalah 256-- yang berarti 256 kemungkinan kombinasi bit masuk ke dalam slot lebar 8 bit. Karena kombinasi "11111111" dan "00000000" dari 8 bit tersebut tidak diizinkan untuk ID host, yang membuat kita memiliki 254 host yang mungkin yang dapat ditetapkan dalam jaringan 192.168.40.0/24.

Dari 254 host itu, sepertinya kita dapat menyesuaikan komputer klien, switch, dan komputer server ke dalam ruang itu, bukan? Mari mencoba.

Anda memiliki 8 bit subnet mask untuk "bermain dengan" (sisa 8 bit dari alamat IP 192.168.40.0/24 tidak dicakup oleh subnet mask yang disediakan oleh ISP Anda). Kami harus mencari cara untuk menggunakan 8 bit tersebut untuk membuat sejumlah ID jaringan unik yang dapat mengakomodasi perangkat di atas.

Mulai dengan jaringan terbesar - komputer klien. Anda tahu bahwa kekuatan dua lebih besar berikutnya dari jumlah perangkat yang mungkin adalah 128. Angka 128, dalam biner, adalah "10000000". Untungnya bagi kami, yang cocok dengan slot 8 bit yang kami miliki gratis (jika tidak, itu akan menjadi indikasi bahwa subnet awal kami terlalu kecil untuk menampung semua perangkat kami).

Mari kita mengambil ID jaringan kami, seperti yang disediakan oleh ISP kami, dan menambahkan satu bit subnet mask ke dalamnya, memecahnya menjadi dua jaringan:

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.00000000 - Old subnet mask (/24)

11000000.10101000.00101000.00000000 - 192.168.40.0 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - New subnet mask (/25)

Lihatlah itu sampai masuk akal. Kami meningkatkan subnet mask dengan satu bit panjangnya, menyebabkan ID jaringan untuk menutupi satu bit yang seharusnya digunakan untuk ID host. Karena satu bit tersebut dapat berupa nol atau satu, kami telah secara efektif membagi jaringan 192.168.40.0 kami menjadi dua jaringan. Alamat IP pertama yang valid di jaringan 192.168.40.0/25 akan menjadi ID host pertama dengan "1" di bit paling kanan:

11000000.10101000.00101000.00000001 - 192.168.40.1 - First valid host in the 192.168.40.0/25 network

Host pertama yang valid dalam jaringan 192.168.40.128 akan, juga, menjadi ID host pertama dengan "1 'di bit paling kanan:

11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/25 network

Host terakhir yang valid di setiap jaringan akan menjadi ID host dengan setiap bit kecuali bit paling kanan disetel ke "1":

11000000.10101000.00101000.01111110 - 192.168.40.126 - Last valid host in the 192.168.40.0/25 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.128/25 network

Jadi, dengan cara ini, kami telah membuat jaringan yang cukup besar untuk menampung komputer klien kami, dan jaringan kedua yang kemudian dapat menerapkan prinsip yang sama untuk memecah jaringan yang lebih kecil. Mari buat catatan:

  • Komputer klien - 192.168.40.0/25 - IP yang valid: 192.168.40.1 - 192.168.40.126

Sekarang, untuk memecah jaringan kedua untuk server dan switch kami, kami melakukan hal yang sama.

Kami memiliki 12 komputer server, tetapi kami dapat membeli hingga 6 lagi. Mari kita berencana pada 18, yang meninggalkan kita kekuatan tertinggi berikutnya dari 2 sebagai 32. Dalam biner, 32 adalah "100000", yang panjangnya 6 bit. Kami memiliki 7 bit subnet mask yang tersisa di 192.168.40.128/25, jadi kami memiliki cukup bit untuk melanjutkan "bermain". Menambahkan satu lagi bit subnet mask memberi kita dua jaringan lagi:

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.10000000 - Old subnet mask (/25)

11000000.10101000.00101000.10000000 - 192.168.40.128 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.10000001 - 192.168.40.129 - First valid host in the 192.168.40.128/26 network
11000000.10101000.00101000.10111110 - 192.168.40.190 - Last valid host in the 192.168.40.128/26 network

11000000.10101000.00101000.11000000 - 192.168.40.192 network ID
11111111.11111111.11111111.11000000 - New subnet mask (/26)
11000000.10101000.00101000.11000001 - 192.168.40.193 - First valid host in the 192.168.40.192/26 network
11000000.10101000.00101000.11111110 - 192.168.40.254 - Last valid host in the 192.168.40.192/26 network

Jadi, sekarang kita telah membongkar 192.168.40.128/25 menjadi dua jaringan lagi, masing-masing memiliki 26 bit subnet mask, atau total 62 host ID yang mungkin - 2 ^ (32-26) - 2.

Itu berarti bahwa kedua jaringan tersebut memiliki cukup alamat untuk server dan switch kami! Mari buat catatan:

  • Server - 192.168.40.128/26 - IP yang Valid: 192.168.40.129 - 192.168.40.190
  • Switch - 192.168.40.192/26 - IP Valid: 192.168.40.193 - 192.168.40.254

Teknik ini disebut variabel-panjang subnet masking (VLSM) dan, jika diterapkan dengan benar, menyebabkan "router inti" memiliki tabel routing yang lebih kecil (melalui proses yang disebut "rute summarization"). Dalam kasus ISP kami dalam contoh ini, mereka sama sekali tidak menyadari bagaimana kami telah melakukan subnet 192.168.40.0/24. Jika router mereka memiliki paket yang terikat untuk 192.168.40.206 (salah satu switch kami), mereka hanya perlu tahu untuk meneruskannya ke router kami (sejak 192.168.40.206 cocok dengan id jaringan dan subnet mask 192.168.40.0/24 di tabel routing router mereka ) dan router kami akan membawanya ke tujuan. Ini membuat rute subnet kami keluar dari tabel routing mereka. (Saya menyederhanakan di sini, tetapi Anda mendapatkan ide.)

Anda dapat merencanakan jaringan yang sangat besar secara geografis dengan cara yang sama. Selama Anda melakukan "perencanaan kota" yang tepat di depan (mengantisipasi jumlah host di setiap sub-jaringan dengan beberapa ketepatan dan pandangan ke masa depan), Anda dapat membuat hierarki routing besar yang, di router inti, "meringkas "ke sejumlah kecil rute. Seperti yang kita lihat di atas, semakin banyak rute yang berada dalam tabel routing router semakin lambat ia melakukan tugasnya. Merancang jaringan IP dengan VLSM dan menjaga tabel routing kecil adalah Good Thing (tm).

Unrealism of Examples

Dunia fiktif dalam jawaban ini jelas adalah fiktif. Biasanya Anda dapat membuat subnet pada Ethernet switched modern dengan host lebih dari 254 (tergantung profil traffic). Seperti yang telah ditunjukkan dalam komentar, menggunakan / 24 jaringan antara router tidak konsisten dengan Real Life (tm). Itu membuat contoh-contoh lucu, tetapi membuang-buang ruang alamat. Biasanya, a / 30 atau a / 31 (lihat http://www.faqs.org/rfcs/rfc3021.html untuk detail tentang cara kerja / 31 kerja - mereka berada di luar cakupan jawaban ini pasti) jaringan digunakan pada tautan yang secara ketat menunjuk-ke-titik di antara dua router.


137
2017-08-04 15:53



Kesalahan kecil: Kode tepat setelah "Tuan rumah terakhir yang valid ..." beralih kembali untuk menyebutnya "host pertama yang valid." Saya berasumsi bahwa seharusnya masih mengatakan "terakhir." - JoeCool1986
@ JoeCool1986 - Tangkapan yang bagus. - Evan Anderson
Saya akan memberi jawaban atas jawaban ini untuk memastikan bahwa dua jawaban disimpan dengan benar. - l46kok
Pada bagian di mana Anda membuat dua subnet dari 192.168.40.128 dan membuat ID jaringan 192.168.40.192, dari mana datangnya 192? - user6607
@ user6607 Subnet dihitung mundur (tanpa celah). Misalnya subnet pertama 0 diwakili sebagai 00000000. Subnet kedua adalah 128 begitu 10000000 dan subnet ketiga 192 diwakili sebagai 11000000, dll. Terus menghitung mundur untuk menemukan subnet baru. - Joseph Kern


Sub-jaring

Sub-jaring tidak sulit tetapi bisa mengintimidasi. Jadi mari kita mulai dengan langkah paling sederhana yang mungkin. Belajar berhitung dalam biner.

Biner

Biner adalah sistem penghitungan basis 2. Terdiri dari hanya dua angka (1 dan 0). Menghitung hasil dengan cara ini.

1 = 001 ( 0 + 0 + 1 = 1)
2 = 010 ( 0 + 2 + 0 = 2)
3 = 011 ( 0 + 2 + 1 = 3)
4 = 100 ( 4 + 0 + 0 = 4)
5 = 101 ( 4 + 0 + 1 = 5)

Jadi jika Anda hanya membayangkan bahwa setiap 1 adalah pemegang tempat untuk suatu nilai (semua nilai biner adalah kekuatan dari dua)

1     1     1     1     1 = 31
16  + 8  +  4  +  2  +  1 = 31

Jadi ... 100000 = 32. Dan 10000000 = 128. DAN 11111111 = 255.

Ketika saya mengatakan, "Saya memiliki subnet mask 255.255.255.0", maksud saya, "Saya memiliki subnet mask 11111111.11111111.11111111.00000000." Kami menggunakan subnet sebagai tangan pendek.

Periode dalam alamat, pisahkan setiap 8 digit biner (satu oktet). Inilah sebabnya mengapa IPv4 dikenal sebagai ruang alamat 32-bit (8 * 4).

Mengapa Subnet?

Alamat IPv4 (192.168.1.1) tidak banyak tersedia. Sub-netting memberi kita cara untuk meningkatkan jumlah jaringan yang tersedia (atau host). Ini untuk alasan administratif dan alasan teknis.

Setiap alamat IP dibagi menjadi dua bagian terpisah, jaringan dan host. Secara default alamat Kelas C (192.168.1.1) menggunakan 3 oktet pertama (192.168.1) untuk bagian jaringan dari alamat. dan oktet ke-4 (.1) sebagai bagian host.

Secara default alamat ip dan subnet mask untuk alamat Kelas C terlihat seperti ini

IP     192.168.1.1 
Subnet 255.255.255.0

Dalam biner seperti ini

IP     11000000.10101000.00000001.00000001
Subnet 11111111.11111111.11111111.00000000

Lihatlah contoh biner lagi. Perhatikan bagaimana saya mengatakan tiga oktet pertama digunakan untuk jaringan? Perhatikan bagaimana bagian jaringan semuanya? Itu semua adalah sub-jaring. Mari berkembang.

Mengingat bahwa saya memiliki satu oktet untuk bagian host saya (pada contoh di atas). Saya HANYA dapat memiliki 256 host (256 adalah nilai maksimal dari satu oktet, dihitung dari 0). Tapi ada trik kecil lainnya: Anda perlu mengurangi 2 alamat host dari yang tersedia (saat ini 256). Alamat pertama dalam jangkauan adalah untuk jaringan (192.168.1.0) dan alamat terakhir dalam jangkauan adalah siaran (192.168.1.255). Jadi, Anda benar-benar memiliki 254 alamat yang tersedia untuk host dalam satu jaringan.

Studi kasus

Katakanlah saya memberi Anda selembar kertas berikut.

Create 4 networks with 192.168.1.0/24.

Mari kita lihat ini. The / 24 disebut notasi CIDR. Daripada mereferensikan 255.255.255.0, kami hanya mereferensikan bit yang diperlukan untuk jaringan. Dalam hal ini kita perlu 24 bit (3 * 8) dari alamat 32-bit. Menulis ini dalam bentuk biner

11111111.11111111.11111111.00000000 = 255.255.255.0
8bits   + 8bits  + 8bits  + 0bits   = 24bits

Selanjutnya kita tahu kita perlu mencari tahu berapa banyak subnet yang kita butuhkan. Sepertinya 4. Karena kita perlu membuat lebih banyak jaringan (saat ini kita hanya memiliki satu) mari kita membalik beberapa bit

11111111.11111111.11111111.00000000 = 255.255.255.0   = 1 Network OR /24
11111111.11111111.11111111.10000000 = 255.255.255.128 = 2 Networks OR /25
11111111.11111111.11111111.11000000 = 255.255.255.192 = 4 Networks (remember powers of 2!) OR /26

Sekarang kita telah memutuskan untuk mulai mengalokasikan host. Sedikit matematika sederhana:

32(bits) - 26(bits) = 6(bits) for host addresses.

Kami memiliki 6 bit untuk dialokasikan di setiap jaringan untuk host. Ingat bahwa kita perlu mengurangi 2 untuk setiap jaringan.

h = host bits    
2^h - 2 = hosts available

2^6 - 2 = 62 hosts 

Finally we have 62 hosts in 4 networks, 192.168.1.0/26

Sekarang kita perlu mencari tahu di mana tuan rumah pergi. Kembali ke biner!

11111111.11111111.11111111.00,000000 [the comma is the new network/hosts division]

Begin to calculate:

11000000.10101000.00000001.00,000000 = 192.168.1.0 [First IP = Network Adress]
11000000.10101000.00000001.00,000001 = 192.168.1.1 [First Host IP]
11000000.10101000.00000001.00,000010 = 192.168.1.2 [Second Host IP]
11000000.10101000.00000001.00,000011 = 192.168.1.3 [Third Host IP]

And so on ... until ...

11000000.10101000.00000001.00,111110 = 192.168.1.62 [Sixty Second Host IP]
11000000.10101000.00000001.00,111111 = 192.168.1.63 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.01,000000 = 192.168.1.64 [First IP = Network Address]
11000000.10101000.00000001.01,000001 = 192.168.1.65 [First Host IP]
11000000.10101000.00000001.01,000010 = 192.168.1.66 [Second Host IP]

And so on ... until ...

11000000.10101000.00000001.01,111110 = 192.168.1.126 [Sixty Second Host IP]
11000000.10101000.00000001.01,111111 = 192.168.1.127 [Last IP = Broadcast Address]

So ... On to the NEXT network ....

11000000.10101000.00000001.10,000000 = 192.168.1.128 [First IP = Network Address]
11000000.10101000.00000001.10,000001 = 192.168.1.129 [First Host IP]

Etc ...

Dengan cara ini Anda dapat menghitung seluruh subnet.

Kartu Liar Masker wild card adalah subnet mask yang terbalik.

11111111.11111111.11111111.11000000 = 255.255.255.192 [Subnet]
00000000.00000000.00000000.00111111 = 0.0.0.63 [Wild Card]

Lebih lanjut

Google untuk istilah 'super-netting', dan 'VLSM (variable length subnet mask)', untuk topik yang lebih canggih.

Saya dapat melihat sekarang bahwa saya terlalu lama dalam menanggapi ... mendesah


73
2017-08-04 15:12



"Mengingat bahwa saya memiliki satu oktet untuk bagian host saya (dalam contoh di atas). Saya HANYA dapat memiliki 255 host (255 adalah nilai maksimal dari satu oktet). Tetapi ada trik kecil lainnya: Anda perlu mengurangi 2 alamat host dari yang tersedia (saat ini 255) .Alamat pertama di kisaran akan untuk jaringan (192.168.1.0) dan alamat terakhir dalam jangkauan akan menjadi siaran (192.168.1.255). Jadi, Anda benar-benar memiliki 253 alamat yang tersedia untuk host dalam satu jaringan. "... Ini tidak benar. - joeqwerty
Ada 256 kemungkinan nilai untuk oktet: 0 hingga 255, dengan total 256. 256 -2 (alamat jaringan dan siaran) = 254 kemungkinan alamat host. - joeqwerty
Ups. Terima kasih! :-) Off oleh satu, saya tidak tahu bagaimana saya mengatur prestasi itu. - Joseph Kern
-1 Maaf, tetapi belum ada "Kelas" sejak RFC 1519 pada tahun 1993, tidak ada yang harus berbicara tentang mereka di luar konteks historis. Mereka membingungkan dan menyebabkan banyak kesalahpahaman. - Chris S
Chris Anda mungkin benar, tetapi kelas masih diajarkan hingga awal 2000-an di CCNA dan sebagian besar program tingkat sarjana. - Joseph Kern


Pelajaran sejarah singkat: awalnya, alamat IPv4 unicast dibagi menjadi 3 kelas, masing-masing dengan panjang topeng 'default' terkait (disebut topeng subnet yang berkelas)

  • Kelas A: Apa pun dalam rentang 1.0.0.0 -> 127.255.255.255. Subnet mask berkelas 255.0.0.0 (/ 8 dalam notasi CIDR)
  • Kelas B: Apa pun dalam rentang 128.0.0.0 -> 191.255.255.255. Subnet mask berkelas 255.255.0.0 (/ 16 dalam notasi CIDR)
  • Kelas C: Apa pun dalam rentang 192.0.0.0 -> 223.255.255.255. Subnet mask berkelas 255.255.255.0 (/ 24 dalam notasi CIDR)

Idenya adalah bahwa organisasi berukuran berbeda dapat dialokasikan kelas yang berbeda dari alamat IP, untuk membuat penggunaan ruang alamat IP efisien.

Namun, ketika jaringan IP tumbuh, menjadi jelas bahwa pendekatan ini memiliki masalah. Untuk nama tetapi tiga:

Di dunia yang berkelas, semua subnet punya untuk memiliki topeng / 8, / 16, atau / 24. Ini berarti bahwa subnet terkecil yang dapat dikonfigurasi adalah / 24, yang memungkinkan untuk 254 alamat host (.0 dan .255 dicadangkan sebagai jaringan dan alamat broadcast, masing-masing). Ini sangat boros, terutama pada tautan point-to-point dengan hanya dua router yang melekat padanya.

Bahkan setelah pembatasan ini menjadi rileks, protokol perutean sebelumnya (mis. RIPv1) tidak mengiklankan panjang topeng yang terkait dengan awalan IP. Dengan tidak adanya topeng khusus, itu akan menggunakan masker antarmuka yang terhubung langsung di jaringan classful yang sama, atau jatuh kembali menggunakan topeng berkelas. Misalnya, jika Anda ingin menggunakan jaringan 172.16.0.0 untuk tautan antar-router dengan / 30 masker, semua subnet dari 172.16.0.0 - 172.16.255.255 harus memiliki mask / 30 (16384 subnet, masing-masing dengan 2 IP yang dapat digunakan).

Tabel routing dari router internet mulai mengambil lebih banyak memori; ini dikenal sebagai 'tabel routing ledakan'. Jika penyedia memiliki 16 jaringan bersebelahan / 24, misalnya, mereka perlu mengiklankan semua 16 prefiks, daripada ringkasan tunggal yang mencakup seluruh rentang.

Dua perbaikan terkait memungkinkan kami untuk bergerak melampaui batasan di atas.

  1. Masker Subnet Panjang Variabel (VLSM)
  2. CIDR (Classless inter domain routing)

VLSM mengacu pada kemampuan protokol routing untuk mendukung masker subnet yang berbeda dalam jaringan classful yang sama. Sebagai contoh:

192.168.1.0/24

Bisa dibagi menjadi:

192.168.1.0/25
192.168.1.128/26
192.168.1.192/27
192.168.1.224/27

Yang memungkinkan penggunaan ruang alamat yang lebih efisien; subnet dapat diukur dengan benar untuk jumlah host / router yang akan dilampirkan ke mereka.

CIDR menggunakan VLSM dan meluaskannya dengan cara lain; Selain membagi jaringan tunggal yang berkelas menjadi subnet yang lebih kecil, CIDR memungkinkan agregasi beberapa jaringan berkelas menjadi satu ringkasan tunggal. Misalnya, jaringan Kelas B (/ 16) berikut:

172.16.0.0/16
172.17.0.0/16
172.18.0.0/16
172.19.0.0/16

Dapat digabungkan / diringkas dengan awalan tunggal:

172.16.0.0/14

Dalam hal subnetting: subnet mask panjangnya 32 bit. Panjang topeng menunjukkan berapa banyak bit yang mengidentifikasi bagian jaringan dari alamat tersebut. Sebagai contoh:

10.1.1.0/24
  • Subnet mask yang berkelas adalah / 8
  • Subnet mask yang sebenarnya adalah / 24
  • 16 bit (24-8) telah 'dipinjam' untuk penggunaan subnetting.

Ini berarti bahwa, dengan asumsi seluruh jaringan 10.0.0.0/8 subnetted ke / 24s, bahwa akan ada 65536 (2 ^ 16) subnet dalam rentang ini. (Ini mengasumsikan bahwa platform yang Anda gunakan mendukung nomor subnet 0 dan 255. Lihat Cisco ip subnet-nol).

Ada 8 bit yang tersisa di 'bagian host' dari alamat tersebut. Ini berarti ada 256 alamat IP yang tersedia (2 ^ 8), dimana 2 dicadangkan (10.1.1.0 adalah alamat jaringan, 10.1.1.255 adalah alamat broadcast terarah subnet). Ini meninggalkan 254 alamat IP yang dapat digunakan di subnet ini. ((2 ^ 8) - 2)


31



Sebenarnya ada 5 kelas. - dbasnett
Benar, tetapi apakah kita benar-benar perlu masuk ke multicast dan memesan kelas E yang ditujukan untuk pertanyaan 'intro to subnetting'? :) - Murali Suriar
Anda membawa sejarah ke pertanyaan intro ... Kemudian meninggalkannya tidak lengkap. Tidak yakin mana yang lebih buruk. - Chris S


Rentang jaringan: jaringan selalu direferensikan oleh 2 nomor: satu untuk menentukan jaringan, dan yang lain untuk menentukan komputer (atau host) mana yang ada di jaringan itu. Karena setiap alamat nertwork adalah 32 bit, kedua bilangan harus sesuai dengan 32 bit ini.

Penomoran jaringan penting, karena ini yang ICANN keluar ketika Anda meminta rentang IP jaringan. Jika kami tidak memilikinya, tidak ada yang bisa membedakan antara jaringan saya dan AT & Ts. Jadi, sementara angka-angka ini harus unik, tidak ada orang lain yang ingin memberikan nomor ke host yang ada di jaringan saya. Oleh karena itu perpecahan - bagian pertama dikelola oleh orang-orang jaringan, bagian kedua adalah semua milik saya untuk diberikan kepada mesin apa pun yang saya inginkan.

Nomor jaringan tidak tetap pada sejumlah bit tertentu - misalnya, jika saya hanya memiliki 200 mesin untuk mengelola sendiri, saya akan sangat senang dengan nomor jaringan yang menggunakan 24 bit, hanya menyisakan 8 bit untuk saya sendiri - yang cukup untuk hingga 255 host. Karena nomor jaringan menggunakan 24 bit, kita dapat memiliki banyak dari mereka, yang berarti banyak orang dapat memiliki jaringan mereka sendiri.

Di masa lalu ini disebut sebagai jaringan kelas C. (Kelas B menggunakan 16 bit untuk nomor jaringan, dan kelas A menggunakan 8 bit, jadi hanya ada beberapa jaringan kelas A yang ada).

Saat ini, konvensi penamaan ini telah ketinggalan zaman. Itu diganti dengan konsep yang disebut CIDR. CIDR secara eksplisit menyebutkan jumlah bit untuk host Anda setelah slash. Jadi contoh saya di atas (kelas C) sekarang disebut sebagai CIDR / 24.

Ini memang memberi kami sedikit lebih banyak fleksibilitas, sebelum jika saya punya 300 host untuk dikelola, saya memerlukan jaringan kelas B! Sekarang, saya hanya bisa mendapatkan / 23 CIDR, jadi saya punya 9 bit untuk saya, dan 23 bit untuk nomor jaringan. ICANN mungkin tidak memiliki jaringan semacam ini, tetapi jika saya memiliki jaringan internal, atau menyewa jaringan parsial dari ISP, ini membuatnya lebih mudah untuk dikelola - terutama karena semua pelanggan mereka dapat diberi / 29 (meninggalkan saya. 3 bit atau maksimal 8 mesin) yang memungkinkan lebih banyak orang untuk memiliki potongan kecil mereka sendiri dari alamat IP yang tersedia. Sampai kita mendapatkan IPv6, ini cukup penting.


Namun ... sementara saya tahu / 24 CIDR adalah setara dengan jaringan Kelas C lama, dan / 16 adalah kelas B dan / 8 adalah kelas A ... Saya masih bingung mencoba menghitung / 22 di kepalaku. Untungnya ada alat yang melakukan ini untukku :)

Namun - jika Anda tahu / 24 adalah 8 bit untuk host (dan 24 bit untuk jaringan), maka saya tahu / 23 memberi saya sedikit tambahan yang menggandakan jumlah host.


6



-1 Maaf, tetapi menyebutkan kelas di luar referensi "historis" tidak pantas akhir-akhir ini. Mereka tidak "jatuh dari mode" mereka secara resmi ditinggalkan oleh RFC 1519 pada tahun 1993. Mereka membingungkan karena semua h * ll dan menyebabkan banyak kesalahpahaman. - Chris S
Beberapa implementasi protokol routing dinamis merangkum sepanjang batas-batas yang berkelas, sehingga masih bermanfaat untuk mengetahuinya. - Ben


Sementara di atas benar (maaf, TL; DR), menghitung subnet masih menyebabkan banyak administrator jaringan banyak kesedihan. Sebenarnya ada cara yang sangat mudah untuk melakukan penghitungan subnet, Anda dapat melakukan sebagian besar dari itu di kepala Anda, dan ada sangat sedikit yang harus Anda hafalkan. Untuk sebagian besar aplikasi, bahkan tidak perlu memahami representasi biner, meskipun itu sangat membantu untuk pemahaman subnetting yang lengkap. Di sini saya hanya akan membahas IPv4; IPv6 berada di luar ruang lingkup diskusi ini.

Ingat ini:

Ada tiga hal penting untuk diingat: semua subnet didasarkan pada kekuatan dua, dan ada dua nomor kunci: 256 dan 32. Lebih lanjut tentang itu nanti.

Pertama, mari kita lihat tabel yang berisi kekuatan 2:

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256

Menghitung kekuatan 2 adalah mudah: setiap peningkatan bilangan bulat dalam kekuatan menggandakan hasilnya. 1 + 1 = 2, 2 + 2 = 4, 4 + 4 = 8, 8 + 8 = 16, dan seterusnya. Jumlah total alamat di subnet harus selalu menjadi kekuatan 2.

Karena setiap oktet dari subnet IPv4 meningkat menjadi 256, 256 adalah angka yang sangat penting


3



terima kasih. Tapi saya masih bingung bagaimana pc menggunakan subnet mask. Ketika sebuah aplikasi di pc ingin mengirim data, ia merangkumnya ke dalam paket. Apakah subnet mask menentukan bagaimana paket dienkapsulasi? Sebagai contoh jika pc ingin mengirim paket di jaringan lokal, itu akan menggunakan bingkai ethernet en.wikipedia.org/wiki/Ethernet_frame dan jika ingin di luar jaringan akan menggunakan paket tcp en.wikipedia.org/wiki/… ? - aquagremlin
Pada dasarnya, saya tidak tahu BAGAIMANA pc menentukan tempat untuk mengirim datanya. Jaringan ethernet bagaikan sebuah bus — kemana-mana. Menempatkan paket melalui jack ethernet pc adalah peristiwa generik - oleh karena itu paket itu sendiri harus menentukan siapa yang meresponnya. Paket yang ditakdirkan untuk diambil oleh perangkat lokal (switch atau pc lain pada lan) harus terlihat berbeda dari paket yang akan diambil oleh router. - aquagremlin
Ini terjadi pada lapisan di bawah TCP. Setiap perangkat memiliki alamat perangkat keras (MAC) yang terkait dengan alamat IP di setiap tabel ARP perangkat. Ini dibangun melalui penemuan. Ketika sebuah paket ditakdirkan untuk host di jaringan lokal, itu ditandai dengan MAC untuk perangkat tujuan. Ketika sebuah paket ditakdirkan untuk remote host, itu ditandai dengan MAC untuk router di jaringan lokal. Ketika melewati router, MAC dilucuti dan kemudian ditandai dengan MAC dari router hop berikutnya. Subnet hanya mendefinisikan ruang lingkup jaringan lokal. (Itu versi <500 karakter sederhana.) - Jonathan J


Saya juga merasa bahwa harus ada penyebutan NAT, karena mereka digunakan begitu umum di jaringan modern sebagai pengganti Subnet, karena kelelahan alamat IPv4, di antara hal-hal lainnya. (Juga, ketika saya pertama kali belajar tentang subnet, saya sangat bingung bagaimana subnetting berhubungan dengan jaringan yang dibuat oleh router WiFi).

NAT (network address translation) adalah teknik (biasanya) yang digunakan untuk membuat jaringan pribadi dengan memetakan satu ruang alamat (IP: Port) ke yang lain. Sebagian besar, ini digunakan untuk membuat jaringan pribadi dari beberapa IP pribadi di belakang satu alamat publik, misalnya, di router Wifi, oleh organisasi (seperti universitas atau perusahaan), atau kadang-kadang oleh ISP.

Terjemahan alamat yang sebenarnya sudah selesai secara transparan di NAT node yang mampu, biasanya router. Mungkin dari banyak bentuk, Kerucut Penuh, Alamat Dibatasi, Pelabuhan dibatasi dll. Atau campuran ini, yang menentukan bagaimana koneksi di seluruh node dapat dimulai.

Detail lengkap dapat ditemukan di Wikipedia, tetapi misalnya mempertimbangkan router Wifi dengan 2 perangkat yang terhubung. IP publik dari router tersebut 10.9.20.21/24, dan IP dari perangkat (Private IP) adalah A: 192.168.0.2, B: 192.168.0.3 dan itu dari router R: 192.168.0.1. Jadi jika A ingin terhubung ke server S: 10.9.24.5/24, (yang sebenarnya pada subnet yang berbeda w.r.t router di sini):

  1. A mengirim paket IP ke R(yang akan menjadi gateway standar) dengan IP sumber 192.168.0.2, src port (katakanlah) 14567, dan IP tujuan: 10.9.24.5 (Meskipun port sebenarnya adalah bagian dari header TCP).
  2. Router (yang NAT mampu) memetakan port 14567 ke perangkat A dan mengubah sumber pada paket IP menjadi 10.9.20.21(yang merupakan IP publik dari router). Ini berbeda dengan subnetting yang dijelaskan di atas, dimana paket IP sebenarnya tidak pernah berubah.
  3. S menerima rangkaian paket TCP (dengan src IP: 10.9.20.21, src Port: 14567) dan mengirim paket respons dengan nilai-nilai tersebut di bidang tujuan.
  4. R periksa port tujuan, yang mana 14567 dan meneruskan paket ke A.
  5. A menerima paket respons.

Dalam situasi di atas, jika B mencoba membuka koneksi pada port sumber yang sama (14567), itu akan dipetakan ke port yang berbeda oleh R(dan port di paket keluar berubah) sebelum dikirim ke S. Artinya, juga akan ada terjemahan port, bukan hanya IP.

Dua hal yang perlu diperhatikan di sini:

  1. Karena terjemahan alamat ini, seringkali tidak mungkin untuk memulai koneksi ke perangkat di jaringan pribadi tanpa menggunakan beberapa teknik khusus.
  2. Pembatasan pada koneksi TCP total dari perangkat yang sama ke server (65536 = 2 ^ 16) sekarang berlaku secara kolektif untuk semua perangkat di belakang NAT, dalam bentuk NAT yang digunakan di atas.

1