Bagaimana cara kerja Subnetting IPv4?

439

Ini adalah Pertanyaan Canonical tentang Subnet IPv4.

Terkait:

Bagaimana Subnetting Bekerja, dan Bagaimana Anda melakukannya dengan tangan atau di kepala Anda? Dapatkah seseorang menjelaskan secara konseptual dan dengan beberapa contoh? Server Fault mendapatkan banyak subnetting pertanyaan pekerjaan rumah, jadi kami bisa menggunakan jawaban untuk mengarahkannya ke Server Fault itu sendiri.

  • Jika saya memiliki jaringan, bagaimana cara mengetahui cara membaginya?
  • Jika saya diberi netmask, bagaimana saya tahu apa jangkauan jaringan untuk itu?
  • Terkadang ada garis miring yang diikuti oleh angka, berapakah angka itu?
  • Terkadang ada subnet mask, tetapi juga topeng wildcard, mereka tampak seperti hal yang sama tetapi mereka berbeda?
  • Seseorang menyebutkan sesuatu tentang mengetahui biner untuk ini?
Kyle Brandt
sumber
Jawaban dua bagian ini menjelaskan semua yang ingin Anda ketahui tentang perhitungan alamat IPv4, dan banyak lagi.
Ron Maupin

Jawaban:

648

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

Sederhananya, router IP menggunakan subnet IP Anda untuk membuat keputusan routing. Pahami cara kerja keputusan itu, dan Anda bisa memahami cara merencanakan subnet IP.

Menghitung 1

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

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

Ya - itu mungkin agak kasar. Sangat mudah untuk belajar menghitung dalam biner, dan mempelajari cara pintas untuk mengubah biner menjadi desimal dan kembali. Anda benar-benar harus tahu bagaimana melakukannya.

Menghitung dalam biner sangat sederhana karena Anda hanya perlu tahu cara menghitung ke 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 berbunyi "00000000".

Saat Anda mengemudi mil pertama Anda, odometer berbunyi "00000001". Sejauh ini bagus.

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

Saat Anda mengemudi mil ketiga odometer bertuliskan "00000011", karena digit pertama dari odometer berubah lagi. Angka "11", dalam notasi biner, sama dengan angka desimal 3.

Akhirnya, ketika Anda mengendarai mil keempat Anda, kedua digit (yang bertuliskan "1" pada akhir mil ketiga) berguling kembali ke posisi nol, dan digit ketiga menggulung ke posisi "1", memberi kami " 00000100 ". Itu representasi biner dari angka desimal 4.

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

Untuk mengonversi angka desimal menjadi biner, Anda dapat menggulung odometer ke depan, centang demi centang, menghitung dengan keras sampai Anda menggulirkannya beberapa kali sama dengan angka desimal yang ingin dikonversi menjadi biner. Apa pun yang ditampilkan pada odometer setelah semua couting dan rolling itu akan menjadi representasi biner dari angka desimal yang Anda hitung.

Karena Anda memahami bagaimana odometer berputar ke depan, Anda juga akan memahami bagaimana odometer berputar ke belakang. Untuk mengonversi angka biner yang ditampilkan pada odometer kembali ke desimal, Anda dapat mengembalikan odometer satu per satu, menghitung dengan keras sampai odometer berbunyi "00000000". Ketika semua penghitungan dan pengguliran itu dilakukan, angka terakhir yang Anda ucapkan dengan keras akan menjadi representasi desimal dari angka biner yang diawali dengan odometer.

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

Samping cepat: Setiap digit dalam angka biner dikenal sebagai "bit". Itu "b" dari "binary" dan "it" dari "digit". Bit adalah digit biner.

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

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

Jadi, Anda harus memiliki yang berikut di kertas Anda di slot kecil Anda.

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

Transkripsikan bit dari nomor 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 masalahnya:

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

Melakukan semua perhitungan, Anda harus membuat:

 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 dia. "1101011" dalam desimal adalah 107. Itu hanya langkah sederhana dan matematika mudah.

Mengonversi desimal ke biner sama mudahnya dan merupakan algoritma dasar yang sama, dijalankan secara terbalik.

Katakanlah kita ingin mengonversi angka 218 menjadi biner. Mulai di sebelah kanan selembar kertas, tulis angka "1". Di sebelah kiri, gandakan nilai itu (jadi, "2") dan terus bergerak ke kiri kertas menggandakan nilai terakhir. Jika angka yang akan Anda tulis lebih besar dari angka yang dikonversi, berhenti menulis. jika tidak, lanjutkan menggandakan nomor sebelumnya dan menulis. (Mengkonversi angka besar, seperti 34.157.216.092, menjadi biner menggunakan algoritma ini bisa sedikit membosankan tetapi tentu saja mungkin.)

Jadi, Anda harus memiliki di atas kertas Anda:

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

Anda berhenti menulis angka di 128 karena menggandakan 128, yang akan memberi Anda 256, akan lebih besar dari angka yang dikonversi (218).

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

Melihat "64", tanyakan pada diri sendiri: "Apakah 90 lebih besar atau sama dengan 64?" Ya, jadi Anda akan menulis "1" di bawah "64", lalu kurangi 64 dari 90 dan tulis 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 di atas 32 "ke atas" 16 "dan kemudian terus bertanya pada diri sendiri pertanyaan yang sama dengan sisa angka.

Setelah 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 terlalu berarti bagi kami. Namun di bagian bawah, Anda melihat angka biner "11011010". Benar saja, 218, dikonversi ke biner, adalah "11011010".

Dengan mengikuti prosedur yang sangat sederhana ini, Anda dapat mengonversi biner ke desimal dan kembali lagi dengan kalkulator. Matematika itu sangat sederhana dan aturannya bisa dihafalkan hanya dengan sedikit latihan.

Membagi Alamat

Pikirkan routing IP seperti pengiriman pizza.

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

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

Setiap komputer (atau "host") pada jaringan IP dikonfigurasikan dengan alamat IP dan subnet mask yang unik. Alamat IP itu dapat dibagi menjadi komponen "nomor gedung" (seperti "123" pada contoh di atas) yang disebut komponen "host ID" dan komponen "nama jalan" (seperti "Jalan Utama" pada contoh di atas) yang disebut "ID jaringan". Untuk mata manusia kita, 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 dari 255.255.192.0".

Router IP "hanya tahu" cara membagi alamat IP menjadi bagian-bagian komponen ini untuk membuat keputusan routing. Karena memahami bagaimana paket IP dialihkan bergantung pada pemahaman proses ini, kita juga perlu tahu cara memecah alamat IP. Untungnya, mengekstraksi 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 melakukan ini di kepala Anda dulu, tetapi buat catatan pelajari bagaimana melakukannya - itu benar-benar mudah dan mengesankan lawan jenis di Para Pihak):

      10.      13.     216.      41
00001010.00001101.11011000.00101001

Tulis juga subnet mask dalam biner:

     255.     255.     192.       0
11111111.11111111.11000000.00000000

Ditulis berdampingan, Anda dapat melihat titik di subnet mask tempat "1" berhenti "berbaris" ke titik di alamat IP. Itulah titik yang memisahkan ID jaringan dan ID host. 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 "menutupi" bit yang dicakup oleh 1 di alamat IP (mengganti bit yang tidak "ditutup" dengan 0) untuk mengekstrak ID jaringan:

      10.      13.     192.       0
00001010.00001101.11000000.00000000 - Network ID

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

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

Tidak mudah bagi mata manusia kita untuk melihat "jeda" antara ID jaringan dan ID host seperti halnya antara "nomor gedung" dan "nama jalan" dalam alamat fisik selama pengiriman pizza, tetapi efek utamanya adalah sama.

Sekarang Anda dapat membagi alamat IP dan subnet mask menjadi ID host dan ID jaringan, Anda dapat merutekan IP seperti halnya router.

Terminologi Lainnya

Anda akan melihat topeng subnet ditulis di seluruh Internet dan sepanjang sisa jawaban ini sebagai (IP / nomor). 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 menuliskannya sebagai "/ 24" daripada "255.255.255.0". Untuk mengonversi angka CIDR (seperti "/ 16") menjadi subnet mask bertitik-desimal, cukup tulis angka 1 itu, pisahkan menjadi kelompok-kelompok 8 bit, dan ubah menjadi desimal. (A "/ 16" adalah "255.255.0.0", misalnya.)

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

Topeng subnet tersirat ini tidak digunakan hari ini dan saya tidak merekomendasikan untuk mempelajarinya lagi kecuali jika 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 jauh karena ini tidak dapat diterapkan hari ini dan dapat membingungkan.

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

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

Biasanya Anda melihat "topeng karakter" yang digunakan untuk mencocokkan ID host dalam daftar kontrol akses atau aturan firewall. Kami tidak akan membahasnya lebih lanjut di sini.

Bagaimana Router Bekerja

Seperti yang telah saya katakan sebelumnya, router IP memiliki pekerjaan yang mirip dengan driver pengiriman pizza dalam hal mereka perlu mendapatkan kargo (paket) ke tujuannya. Ketika disajikan dengan paket terikat untuk alamat 192.168.10.2, router IP perlu menentukan antarmuka jaringan mana yang terbaik untuk mendapatkan paket itu lebih dekat ke tujuannya.

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

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

Jika Anda menerima paket untuk dikirimkan dengan alamat tujuan "192.168.10.2", cukup mudah untuk mengetahui (dengan mata manusia Anda) bahwa paket tersebut harus dikirim keluar dari 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 untuk antarmuka Anda Ethernet1 adalah "192.168.10.0".

Untuk router, proses pemilihan rute ini dilakukan dengan membuat tabel routing dan berkonsultasi dengan tabel setiap kali paket dikirimkan. Tabel perutean berisi ID jaringan dan nama antarmuka tujuan. Anda sudah tahu cara mendapatkan ID jaringan dari alamat IP dan subnet mask, sehingga Anda sedang dalam perjalanan membangun tabel routing. Inilah tabel perutean kami untuk router ini:

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

Untuk paket masuk kita yang menuju "192.168.10.2", kita hanya perlu mengonversi alamat paket itu menjadi biner (sebagai manusia - router mendapatkannya sebagai biner dari kawat untuk memulai) dan berusaha mencocokkannya dengan setiap alamat dalam perutean kami tabel (hingga jumlah bit dalam subnet mask) hingga kami mencocokkan entri.

  • Tujuan paket masuk: 11000000.10101000.00001010.00000010

Membandingkannya dengan entri dalam tabel perutean 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 mencocokkan. Itu berarti itu bukan antarmuka tujuan yang tepat. Anda dapat melihat bahwa antarmuka Ethernet1 cocok dengan 24 bit dari alamat tujuan. Ah, ha! Paket terikat untuk antarmuka Ethernet1.

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

Rute Statis

Hingga saat ini, kami telah membicarakan router hipotetis kami sebagai memiliki jaringan yang terhubung secara langsung. Jelas, itu bukan cara dunia bekerja. Dalam analogi mengemudi pizza, kadang-kadang pengemudi tidak diizinkan masuk lebih jauh ke dalam gedung daripada di meja depan, dan harus menyerahkan pizza kepada orang lain untuk pengiriman ke penerima akhir (tunda ketidakpercayaan Anda dan tahan bersamaku sementara Saya meregangkan analogi saya,).

Mari kita mulai dengan memanggil router kita 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 untuk antarmuka Ethernet0 dan Ethernet1. 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 cara "sampai ke" jaringan, 192.168.30.0/24, yang tidak diketahui oleh Router A.

Misalkan PC dengan alamat IP 192.168.20.13 yang terhubung ke jaringan yang terhubung ke antarmuka Ethernet0 router 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 perutean yang ditunjukkan di atas, entri di tabel perutean Router A tidak cocok dengan tujuan 192.168.30.46, sehingga Router A akan mengembalikan paket ke PC pengirim dengan pesan "Destination network unreachable".

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 terikat untuk 192.168.30.0/24, kirimkan ke 192.168.10.254 karena dia tahu bagaimana menghadapinya." Ini adalah aksi analogi "hand-off the pizza at the front desk" yang saya sebutkan sebelumnya - meneruskan paket itu kepada orang lain yang tahu cara mendekatkannya ke tujuannya.

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

Jika Router B ingin mengirimkan paket ke jaringan subnet mask 192.168.20.0 255.255.255.0, ia juga akan memerlukan entri dalam tabel peruteannya:

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

Ini akan membuat 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 "jaringan interstitial" memiliki entri tabel routing untuk jaringan "ujung". Jika router B dalam contoh kita tidak memiliki entri tabel routing untuk jaringan "ujung" 192.168.20.0/24 terpasang ke router A paket hipotetis kita dari PC di 192.168.20.13 akan sampai ke perangkat tujuan di 192.168.30.46, tetapi setiap balasan yang coba dikirim kembali oleh 192.168.30.46 akan dikembalikan oleh router B sebagai "Jaringan tujuan tidak dapat dijangkau." Komunikasi satu arah umumnya tidak diinginkan. Selalu pastikan Anda berpikir tentang lalu lintas yang mengalir di 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, sebenarnya tidak lebih dari sebuah cara bagi router untuk bertukar informasi routing antara satu sama lain yang, pada kenyataannya, dapat dikonfigurasi dengan rute statis. Satu keuntungan besar untuk menggunakan protokol routing dinamis melalui rute statis, bagaimanapun, adalah bahwa protokol routing dinamis dapat secara dinamis mengubah tabel routing berdasarkan kondisi jaringan (pemanfaatan bandwidth, antarmuka "turun", dll) dan, dengan demikian, menggunakan dinamis protokol routing dapat menghasilkan konfigurasi yang "merutekan" kegagalan atau hambatan dalam infrastruktur jaringan. (Protokol routing dinamis WAY di luar ruang lingkup dari jawaban ini, meskipun.)

Anda Tidak Dapat Dari Sana Dari Sini

Dalam contoh kita Router A, apa yang terjadi ketika paket menuju "172.16.31.92" masuk?

Melihat tabel perutean Router A, baik antarmuka tujuan atau rute statis tidak 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 duduk 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

Alangkah baiknya jika Router A dapat merutekan paket yang tidak cocok dengan antarmuka lokal apa pun hingga Router C sehingga Router C dapat mengirimkannya ke Internet. Masukkan rute "gateway default".

Tambahkan entri di akhir tabel perutean 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 mencocokkan "172.16.31.92" dengan setiap entri dalam tabel routing, kami akhirnya mengenai entri baru ini. Awalnya agak membingungkan. Kami mencari untuk mencocokkan nol bit dari alamat tujuan dengan ... tunggu ... apa? Mencocokkan nol bit? Jadi, kami sama sekali tidak mencari kecocokan. Entri tabel routing ini 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 yang kami TIDAK tahu cara mengirim paket. Ketika dihadapkan dengan paket terikat untuk tujuan yang kita tidak memiliki entri tabel routing tertentu, entri "default gateway" ini akan selalu cocok (karena cocok dengan nol bit dari alamat tujuan) dan memberi kita tempat "pilihan terakhir" yang kita bisa kirim paket untuk pengiriman. Terkadang Anda akan mendengar gateway default yang disebut "gateway of last resort."

Agar rute gateway default menjadi efektif, ia 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 akan gagal. 192.168.50.254 bukan alamat yang Router A tahu cara mengirim paket untuk menggunakan salah satu dari rute lain dalam tabel routingnya, sehingga alamat seperti itu tidak akan efektif sebagai gateway default. Ini dapat dinyatakan secara singkat: Gateway default harus ditetapkan ke alamat yang sudah dapat dijangkau dengan menggunakan rute lain di tabel routing.

Router nyata biasanya menyimpan gateway default sebagai rute terakhir dalam tabel peruteannya sehingga cocok dengan paket setelah gagal mencocokkan semua entri lain dalam tabel.

Perencanaan Kota dan Routing IP

Memecah subnet IP menjadi subnet IP yang lebih kecil adalah perencanaan perkotaan. Dalam perencanaan kota, zonasi digunakan untuk beradaptasi dengan fitur alami dari lanskap (sungai, danau, dll), untuk mempengaruhi aliran 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 melakukan subnet jaringan:

  • Anda mungkin ingin berkomunikasi melalui media komunikasi yang berbeda. Jika Anda memiliki koneksi WAN T1 antara dua gedung, router IP dapat ditempatkan di ujung koneksi ini untuk memfasilitasi komunikasi di seluruh T1. Jaringan di setiap ujung (dan mungkin jaringan "interstitial" pada T1 itu sendiri) akan ditugaskan untuk 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 lalu lintas siaran di bagian tertentu dari jaringan. Protokol lapisan aplikasi menggunakan kemampuan broadcast Ethernet untuk tujuan yang sangat berguna. Namun, saat Anda semakin banyak host yang dikemas ke dalam jaringan Ethernet yang sama, persentase lalu lintas siaran pada kabel (atau udara, dalam Ethernet nirkabel) dapat meningkat sedemikian rupa sehingga menimbulkan masalah untuk pengiriman lalu lintas non-siaran. (Di masa lalu, lalu lintas siaran dapat membanjiri CPU host dengan memaksa mereka untuk memeriksa setiap paket siaran. Itu kurang mungkin hari ini.) Lalu lintas yang berlebihan pada Ethernet yang diaktifkan juga dapat datang dalam bentuk "membanjirnya frame ke tujuan yang tidak diketahui". Kondisi ini disebabkan oleh switch Ethernet yang tidak dapat melacak setiap tujuan di jaringan dan merupakan alasan mengapa jaringan Ethernet yang diaktifkan tidak dapat menskala ke sejumlah host yang tak terbatas. Efek membanjiri frame ke tujuan yang tidak diketahui mirip dengan efek kelebihan lalu lintas siaran, untuk keperluan subnetting.

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

Dalam merencanakan sebuah kota, Anda dapat merencanakan bagaimana jalan saling bersilangan, dan dapat menggunakan jalan belokan, satu arah, dan jalan buntu untuk memengaruhi arus lalu lintas. Anda mungkin ingin Main Street sepanjang 30 blok, dengan masing-masing blok memiliki hingga 99 bangunan. Cukup mudah untuk merencanakan penomoran jalan Anda sehingga setiap blok di Main Street memiliki kisaran nomor jalan yang bertambah 100 untuk setiap blok. Sangat mudah untuk mengetahui "angka awal" di setiap blok selanjutnya.

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

Untuk keperluan 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.

Lanjutan: Bagaimana Cara Kerja Subnetting IPv4?

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

Evan Anderson
sumber
13
@ Joseph: Ini adalah kuliah yang saya sampaikan terlalu banyak untuk kebaikan saya sendiri. > tersenyum <Saya akan melihat bagian biner Anda. Saya enggan mengajarkan tentang matematika (yang benar-benar memahami biner adalah - menghitung dalam basis 2) karena saya tidak terlalu pandai dalam hal itu.
Evan Anderson
2
Satu-satunya masalah saya dengan memecah jawabannya adalah bahwa orang perlu memahami mengapa subnetting ada (IP routing) sebelum orang dapat memahami cara memecah jaringan IP menjadi subnet secara efektif. Saya tidak pernah menemukan cara yang baik untuk membahas satu topik secara terpisah. (Benar-benar, merancang jaringan IP dengan VLSM datang secara alami dan "masuk akal" setelah Anda memahami IP routing ...)
Evan Anderson
28
Jangan putus.
Joseph Kern
3
+1 untuk pos paling komprehensif yang pernah dilihat di serverfault
Scott Lundberg
3
Terpilih jika hanya untuk metafora Odometer. Sekarang saya tahu bagaimana menjelaskan cara kerja biner kepada orang-orang.
phuzion
142

Lanjutan dari: Bagaimana Cara Kerja Subnetting IPv4?

ISP Anda memberi Anda rentang 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 ke dalam subnet IP (yang kemudian dapat dirute oleh perangkat firewall / router).

Kamu punya:

  • 12 komputer server, tetapi Anda mungkin mendapatkan hingga 50% lebih banyak
  • 9 sakelar
  • 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 genap dua, dan bekerja dengan lebih banyak perangkat yang mungkin, Anda dapat menemukan:

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

Dalam subnet IP yang diberikan, 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 yang diberikan, jumlah alamat host yang tersedia adalah dua pangkat dari jumlah 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 kekuatan 2 ke 8 adalah 256-- yang berarti 256 kemungkinan kombinasi bit masuk ke dalam slot dengan lebar 8 bit. Karena kombinasi "11111111" dan "00000000" dari 8 bit tersebut tidak diizinkan untuk ID host, yang membuat kami memiliki 254 kemungkinan host yang dapat ditetapkan dalam jaringan 192.168.40.0/24.

Dari 254 host itu, sepertinya kita bisa memasukkan komputer klien, sakelar, dan komputer server ke ruang itu, kan? Mari mencoba.

Anda memiliki 8 bit subnet mask untuk "bermain-main" (8 bit sisanya dari alamat IP 192.168.40.0/24 tidak tercakup 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 yang lebih besar berikutnya dari jumlah perangkat yang mungkin adalah 128. Angka 128, dalam biner, adalah "10000000". Untungnya bagi kami, yang sesuai dengan slot 8 bit yang kami miliki gratis (jika tidak, itu akan menjadi indikasi bahwa subnet awal kami terlalu kecil untuk mengakomodasi semua perangkat kami).

Mari kita ambil ID jaringan kami, seperti yang disediakan oleh ISP kami, dan tambahkan sedikit 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)

Lihat itu sampai masuk akal. Kami meningkatkan panjang subnet mask dengan satu bit, menyebabkan ID jaringan untuk menutup satu bit yang akan digunakan untuk host ID. Karena satu bit itu bisa nol atau satu, kami secara efektif membagi jaringan 192.168.40.0 kami menjadi dua jaringan. Alamat IP pertama yang valid dalam jaringan 192.168.40.0/25 akan menjadi host ID 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 valid pertama di jaringan 192.168.40.128 juga akan menjadi host ID 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 valid terakhir di setiap jaringan akan menjadi host ID dengan setiap bit kecuali bit paling kanan diatur 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 menciptakan jaringan yang cukup besar untuk menampung komputer klien kami, dan jaringan kedua yang kemudian kami dapat menerapkan prinsip yang sama untuk dipecah menjadi jaringan yang lebih kecil. Mari kita catat:

  • 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 mungkin membeli hingga 6 lebih banyak. Mari kita rencanakan pada 18, yang membuat kita kekuatan tertinggi berikutnya 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 bit yang cukup untuk melanjutkan "bermain". Menambahkan satu bit lagi dari 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 kami telah memecah 192.168.40.128/25 menjadi dua jaringan lagi, masing-masing memiliki 26 bit subnet mask, atau total 62 kemungkinan host IDs - 2 ^ (32 - 26) - 2.

Itu berarti kedua jaringan tersebut memiliki alamat yang cukup untuk server dan sakelar kami! Mari membuat 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 yang 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 "summarization rute"). Dalam kasus ISP kami dalam contoh ini, mereka dapat sama sekali tidak menyadari bagaimana kami telah melakukan subnet 192.168.40.0/24. Jika router mereka memiliki batas paket 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 dalam tabel routing router mereka ) dan router kami akan sampai ke tujuan. Ini menjaga rute subnet kami dari tabel routing mereka. (Saya menyederhanakan di sini, tetapi Anda mendapatkan idenya.)

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 akurasi dan pandangan ke masa depan), Anda dapat membuat hierarki perutean besar yang, pada router inti, "merangkum "ke sejumlah rute yang sangat kecil. Seperti yang kita lihat di atas, semakin banyak rute yang ada di tabel routing router semakin lambat ia melakukan tugasnya. Merancang jaringan IP dengan VLSM dan menjaga tabel routing tetap kecil adalah Good Thing (tm).

The Unrealism of Examples

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

Joseph Kern
sumber
Kesalahan kecil: Kode tepat setelah "Tuan rumah valid terakhir ..." kembali ke menyebutnya "tuan rumah sah pertama." Saya berasumsi bahwa masih harus mengatakan "terakhir."
JoeCool1986
@ JoeCool1986 - Tangkapan yang bagus.
Evan Anderson
2
Saya akan mengubah jawaban ini untuk memastikan bahwa dua jawaban disimpan secara berurutan.
l46kok
Pada bagian tempat Anda membuat dua subnet dari 192.168.40.128 dan membuat ID jaringan 192.168.40.192, dari mana 192 berasal?
user6607
@ user6607 Subnet dihitung mundur (tanpa celah). Sebagai contoh, subnet pertama 0direpresentasikan sebagai 00000000. Subnet kedua adalah 128begitu 10000000dan subnet ketiga 192direpresentasikan sebagai 11000000, dll. Terus menghitung mundur untuk menemukan subnet baru.
Joseph Kern
76

Sub-netting

Sub-netting tidak sulit tetapi bisa menakutkan. Jadi mari kita mulai dengan langkah sesederhana mungkin. Belajar berhitung dalam biner.

Biner

Binary 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 masing-masing 1 adalah tempat penampung untuk suatu nilai (semua nilai biner adalah kekuatan dua)

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

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

Ketika saya berkata, "Saya memiliki subnet mask 255.255.255.0", maksud saya, "Saya memiliki subnet mask 11111111.11111111.1111111111.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 32bit (8 * 4).

Kenapa Subnet?

Alamat IPv4 (192.168.1.1) tidak 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 tuan rumah. Secara default, alamat Kelas C (192.168.1.1) menggunakan 3 oktet pertama (192.168.1) untuk bagian jaringan dari alamat tersebut. dan 4 oktet (.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 porsi jaringan itu semua? Itu semua adalah sub-netting. Ayo berkembang.

Mengingat bahwa saya memiliki oktet tunggal untuk porsi host saya (dalam contoh di atas). Saya HANYA dapat memiliki 256 host (256 adalah nilai maksimum oktet, dihitung dari 0). Tapi ada trik kecil lain: Anda perlu mengurangi 2 alamat host dari yang tersedia (saat ini 256). Alamat pertama dalam jangkauan akan 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 di satu jaringan.

Studi kasus

Katakanlah saya memberi Anda selembar kertas berikut.

Create 4 networks with 192.168.1.0/24.

Mari kita lihat ini. / 24 disebut notasi CIDR. Daripada mereferensikan 255.255.255.0 kita hanya mereferensikan bit yang kita butuhkan untuk jaringan. Dalam hal ini kita membutuhkan 24 bit (3 * 8) dari alamat 32bit. Menuliskan ini dalam biner

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

Selanjutnya kita tahu bahwa kita perlu mencari tahu berapa banyak subnet yang kita butuhkan. Sepertinya 4. Karena kita perlu membuat lebih banyak jaringan (saat ini kita hanya punya satu) mari kita flip 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 pada a / 26 mari kita 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 kemana 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 Topeng kartu liar adalah subnet topeng 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-kelambu', dan 'VLSM (variabel panjang subjaringan panjang)', untuk topik lebih lanjut.

Saya bisa melihat sekarang bahwa saya terlalu lama dalam merespons ... huh

Joseph Kern
sumber
1
"Mengingat saya memiliki satu oktet tunggal untuk porsi host saya (dalam contoh di atas). Saya HANYA pernah memiliki 255 host (255 adalah nilai maksimum oktet). Tetapi ada trik kecil lain: Anda perlu mengurangi 2 alamat host dari yang tersedia (saat ini 255). Alamat pertama dalam jangkauan akan untuk jaringan (192.168.1.0) dan alamat terakhir dalam jangkauan adalah siaran (192.168.1.255) .Jadi, Anda benar-benar memiliki 253 alamat yang tersedia untuk host di satu jaringan. "... Ini tidak benar.
joeqwerty
1
Ada 256 nilai yang mungkin untuk oktet: 0 hingga 255, dengan total 256. 256 -2 (alamat jaringan dan siaran) = 254 kemungkinan alamat host.
joeqwerty
Ups. Terima kasih! :-) Dinyalakan oleh satu, saya tidak tahu bagaimana saya mengelola prestasi tertentu.
Joseph Kern
1
-1 Maaf, tetapi belum ada "Kelas" sejak RFC 1519 pada tahun 1993, tidak seorang pun boleh membicarakannya di luar konteks sejarah. Mereka membingungkan dan menyebabkan banyak kesalahpahaman.
Chris S
Chris Anda mungkin benar, tetapi kelas masih diajarkan hingga awal tahun 2000 di CCNA dan sebagian besar program tingkat sarjana.
Joseph Kern
34

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

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

Idenya adalah bahwa organisasi dengan ukuran yang berbeda dapat dialokasikan kelas alamat IP yang berbeda, untuk memanfaatkan ruang alamat IP secara efisien.

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

Dalam dunia yang penuh gaya, semua subnet harus memiliki topeng / 8, / 16, atau / 24. Ini berarti bahwa subnet terkecil yang dapat dikonfigurasi adalah / 24, yang memungkinkan 254 alamat host (.0 dan .255 dicadangkan sebagai alamat jaringan dan broadcast, masing-masing). Ini sangat boros, terutama pada tautan point-to-point dengan hanya dua router yang terhubung dengannya.

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

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

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

  1. Topeng Panjang Subnet Variabel (VLSM)
  2. CIDR (Routing antar domain tanpa kelas)

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

192.168.1.0/24

Dapat dibagi menjadi:

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

Yang memungkinkan untuk penggunaan ruang alamat yang jauh lebih efisien; subnet dapat berukuran dengan benar untuk jumlah host / router yang akan dilampirkan padanya.

CIDR mengambil VLSM dan memperluasnya dengan cara lain; selain memecah jaringan classful tunggal menjadi subnet yang lebih kecil, CIDR memungkinkan agregasi beberapa jaringan classful menjadi 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 adalah 32 bit. Panjang mask menunjukkan berapa banyak bit yang mengidentifikasi bagian jaringan dari alamat. Sebagai contoh:

10.1.1.0/24
  • Subnet mask classful 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 adalah subnetted menjadi / 24s, bahwa akan ada 65.536 (2 ^ 16) subnet dalam kisaran ini. (Ini dengan asumsi bahwa platform yang Anda gunakan mendukung angka subnet 0 dan 255. Lihat ip subnet-nol Cisco).

Ada 8 bit yang tersisa di 'bagian host' dari alamat. Ini berarti ada 256 alamat IP yang tersedia (2 ^ 8), yang 2 dicadangkan (10.1.1.0 adalah alamat jaringan, 10.1.1.255 adalah alamat siaran yang diarahkan subnet). Ini menyisakan 254 alamat IP yang dapat digunakan pada subnet ini. ((2 ^ 8) - 2)

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

Rentang jaringan: jaringan selalu dirujuk oleh 2 angka: satu untuk menentukan jaringan, dan lainnya untuk menentukan komputer (atau host) mana di jaringan itu. Karena setiap alamat nertwork memiliki panjang 32 bit, kedua angka harus sesuai dengan 32 bit ini.

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

Nomor jaringan tidak diperbaiki pada sejumlah bit - misalnya, jika saya hanya memiliki 200 mesin untuk mengelola sendiri, saya akan sangat senang dengan nomor jaringan yang menggunakan 24 bit, sehingga saya hanya memiliki 8 bit untuk diri saya sendiri - yang cukup untuk hingga 255 host. Karena nomor jaringan menggunakan 24 bit, kita dapat memiliki banyak bit, artinya banyak orang dapat memiliki jaringan 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 menempatkan jumlah bit untuk host Anda setelah slash. Jadi contoh saya di atas (kelas C) sekarang disebut sebagai CIDR / 24.

Ini memberi kami sedikit lebih banyak fleksibilitas, sebelum jika saya memiliki 300 host untuk dikelola, saya akan membutuhkan 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 saya menyewa jaringan parsial dari ISP, ini membuatnya lebih mudah untuk dikelola - terutama karena semua pelanggan mereka dapat diberi angka / 29 (tinggalkan saya. 3 bit atau maksimum 8 mesin) yang memungkinkan lebih banyak orang memiliki sepotong kecil alamat IP yang tersedia. Sampai kita mendapatkan IPv6, ini sangat 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 untuk menghitung / 22 di kepalaku. Untungnya ada alat yang melakukan ini untuk saya :)

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

gbjbaanb
sumber
-1 Maaf, tetapi menyebutkan kelas di luar referensi "historis" tidak tepat hari ini. Mereka tidak "keluar dari mode" mereka secara resmi ditinggalkan oleh RFC 1519 pada tahun 1993. Mereka membingungkan karena semuanya h * ll dan menyebabkan banyak kesalahpahaman.
Chris S
Beberapa implementasi protokol routing dinamis merangkum sepanjang batasan classful, jadi masih sangat membantu untuk mengetahuinya.
Ben
5

Saya akan mengajukan dan menjawab beberapa pertanyaan terkait di sepanjang jalan:

  • Mengapa Anda 255.255.255.0begitu sering melihat ?
  • Mengapa 192.168.0.1?
  • Mengapa 127.0.0.1?

Mengapa angka aneh seperti itu - 255, 192, 168, 127?


8 + 8 + 8 + 8-bit desimal putus-putus

Alamat internet seperti 194.60.38.10 menggunakan notasi desimal bertitik untuk membagi 32 bit menjadi 8 + 8 + 8 + 8 bit. Dotted-desimal berarti mengubah setiap angka menjadi biner kemudian meninggalkannya dengan 0.

Misalnya .60.→ 60 = 32 + 16 + 8 + 4 → 111100.00111100..

Jadi 194.60.38.10 bertitik desimal untuk 4 × 8 = alamat 32-bit 11000010.00111100.00100110.00001010, karena 38 → 100110, 10 → 1010, dan seterusnya. 194 membutuhkan semua 8 bit; sisanya empuk.

empuk

Setelah Anda memikirkan 255, 192, dan 127 dalam biner 8-bit, Anda dapat lebih mudah memahami mengapa angka desimal tertentu sangat umum:

  • 255 = 11111111
  • 192 = 11000000
  • 127 = _1111111
  • 128 = 10000000

Angka-angka desimal ini mewakili blok 8-bit yang nyaman secara visual seperti ■■■■■■■■, ■ □□□□□□□, dan □ ■■■■■■■■. Jadi Anda belum pernah melihat 256 = 2⁹ karena batas 8-bit, dan 127 = 128−1 = 2⁸ − 1 adalah bit-flip dari power-of-two — dan power-of-two ada 10………00000di biner.

  • 168 = 10101000

Subnet mask: Apa yang menjadi milikku + Apa milikmu adalah milikmu

Subnet mask kemudian memecah setiap alamat internet 32-bit menjadi ID jaringan dan ID host. Sedangkan alamat internet dapat memiliki campuran 1's dan 0's, subnet mask dimulai dengan hanya 1's dan diakhiri dengan hanya 0's.

■■□□□□■□|□□■■■■□□|□□■□□■■□|□□□□■□■□ IP
■■■■■■■■|■■■■■■■■|■■■■■■■■|□□□□□□□□ subnet

Menghitamkan 8 + 8 + 8 = 24 bit pertama dan menghilangkan 8 bit terakhir adalah cara untuk membagi IP ■■ □□□□ ■ □ | □□ ■■■■ □□ | □□ ■ □□ ■ ■ □ | □□□□ ■ □ ■ □ menjadi dua bagian:

■■□□□□■□|□□■■■■□□|□□■□□■■□          network
                             □□□□■□■□ host

Jika pemilik subnetwork (katakanlah OmniCorp ) menginginkan lebih banyak IP internal, mereka dapat membeli lebih banyak (misalnya 8 + 8 = 16 bit) dari sisi kanan jaringan, seperti ini:

■■□□□□■□|□□■■■■□□|□□■□□■■□|□□□□■□■□ IP
■■■■■■■■|■■■■■■■■|□□□□□□□□|□□□□□□□□ subnet
■■□□□□■□ □□■■■■□□                    network
                   □□■□□■■□ □□□□■□■□ host

Jelas ada pertukaran dalam 32-bit = 2³² = 4.294.967.296 ruang alamat: jika Anda membeli lebih banyak ID jaringan (sisi kiri) jaringan internal Anda memiliki lebih banyak ID host (sisi kanan) untuk ditugaskan.

Orang-orang yang murah karenanya memiliki subnet mask

255.255.255.0 = ■■■■■■■■ | ■■■■■■■■■ ■■■■■■■■ | □□□□□□□□□.

Bahkan orang yang lebih murah pun memilikinya

255.255.255.128 = ■■■■■■■■ | ■■■■■■■■ | ■■■■■■■■ | ■ □□□□□□□□

atau 255.255.255.192 = ■■■■■■■■■ ■■■■■■■■ | ■■■■■■■■ | ■■ □□□□□□.

Menurut cerita rakyat, itu sebenarnya bukan Roger Miller, tetapi sysadmin rendahan dengan topeng 255.255.255.254 yang awalnya menulis King of the Road , menggantikan "Aku tidak punya subnet besar" untuk "Aku tidak punya rokok" ”

Aku menghisap rokokku sampai ke pantat

(Mengapa topeng orang-orang rendahan dipenuhi dengan jumlah yang begitu tinggi? Karena, seperti narator Miller, topeng subjaringan menghitung semua hal yang tidak Anda miliki.)


Apa arti garis miring setelah IP? (misalnya, 194.60.38.10/24)

Karena subnet mask (yang membagi "milik mereka" dari "milik kita") selalu dimulai dengan 1, dan karena kita benci menyimpulkan kekuatan dua bahkan lebih dari yang kita benci membayangkan kekuatan dua di tempat pertama, seseorang menemukan CIDR (garis miring setelah IP).

194.60.38.10/24 berarti "submask memiliki 24 yang, kemudian sisanya nol", jadi

■■■■■■■■ | ■■■■■■■■ | ■■■■■■■■ □□□□□□□□ dengan 8 + 8 + 8 bit milik "mereka" dan 8 bit milik "kita".

Membalikkan lagu hobo di atas,

  • /31 adalah penulis lagu
  • /24adalah kelas menengah ( 255.255.255.0= ■■■■■■■■ | ■■■■■■■■ | ■■■■■■■■ |
  • /16 kaya ■■■■■■■■ | ■■■■■■■■ | □□□□□□□□ | □□□□□□□□
  • /8 super kaya
  • /1atau /0akan menjadi IANA atau sesuatu.





† Gunakan bc -l; obase=10; 60misalnya.

isomorfisma
sumber
Apa hubungan dengan jawaban yang dilakukan gambar di dalamnya? Apakah hanya fokus pada jawabannya? :)
simhumileco
4

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

Ingat ini:

Ada tiga hal utama yang perlu diingat: semua subnet didasarkan pada kekuatan dua, dan ada dua angka 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 itu mudah: setiap peningkatan daya integer menggandakan hasilnya. 1 + 1 = 2, 2 + 2 = 4, 4 + 4 = 8, 8 + 8 = 16, dan seterusnya. Jumlah total alamat dalam subnet harus selalu sebesar 2 .

Karena setiap oktet subnet IPv4 naik ke 256, 256 adalah angka yang sangat penting dan membentuk dasar untuk sisa matematika.

Mengubah ukuran subnet

Kami akan mulai dengan pertanyaan mudah: "berapa banyak alamat dalam subnet jika mask adalah 255.255.255.248?" Kami akan mengabaikan tiga oktet pertama untuk saat ini dan melihat yang terakhir. Begini mudahnya: kurangi 248 dari 256. 256 minus 248 sama dengan 8. Ada 8 alamat yang tersedia (termasuk alamat jaringan dan siaran). Sebaliknya juga berfungsi: "jika saya ingin memiliki subnet dengan 16 alamat, apa yang akan menjadi subnet mask?" 256 minus 16 sama dengan 240. Subnet mask akan menjadi 255.255.255.248.

Sekarang jika kita ingin memperluas lebih dari 256 alamat (secara historis, "kelas C"), itu hanya menjadi sedikit lebih rumit: jika oktet terakhir kita adalah 0 dan oktet ketiga kita adalah, katakanlah, 240, (255.255.240.0) maka kami melakukan perhitungan pada oktet ketiga dan menemukan bahwa akan ada 16 alamat. Jadi kita kalikan 16 dengan 256 (jumlah alamat dalam oktet terakhir) untuk mendapatkan 4.096. Jika kedua oktet terakhir adalah 0, (mis. 255.240.0.0) maka kami mengambil hasil pengurangan dari oktet kedua (kita akan mengatakan 16 lagi), kalikan dengan 256 (alamat dalam oktet ketiga), kalikan lagi dengan 256 (alamat dalam oktet terakhir) untuk mendapatkan 1.048.576 alamat. Semudah itu! (OK, jadi kebalikannya sedikit lebih sulit. Jika kita menginginkan subnet dengan 1.048.576 alamat, kita harus membagi jumlah itu dengan 256 beberapa kali untuk mendapatkan nomor yang bisa kita kurangi dari 256.)

Alamat jaringan

Sekarang kita tahu bagaimana cara menghitung subnet mask, bagaimana kita mengetahui apa alamat jaringan itu? Itu mudah: selalu merupakan kelipatan dari jumlah alamat di subnet kami. Jadi, jika kita memiliki 16 alamat di subnet kita, alamat jaringan yang mungkin adalah 0, 16, 32, 48, 64, dan seterusnya hingga 240. (Perhatikan bahwa 0 adalah kelipatan yang valid dari angka apa pun, karena angka apa pun dikalikan dengan 0 sama dengan 0.)

Dan, tentu saja, alamat siaran akan menjadi alamat terakhir dalam ruang lingkup. Jadi jika kita memiliki 16 alamat di subnet kita, dan kita telah memilih alamat jaringan 10.3.54.64, alamat siarannya adalah (64 + 16-1 = 79) 10.3.54.79.

Notasi CIDR

Jadi bagaimana dengan notasi CIDR? Bagaimana menerjemahkannya ke dan dari subnet mask gaya IPv4?

Ingat kekuatan dua orang? Nah, sekarang kita memiliki nomor kunci lain yang perlu diingat selain 256: 32. Ingat, notasi CIDR menggambarkan jumlah bit signifikan dalam alamat IPv4, dan ada 32 bit di alamat IPv4, 8 untuk setiap oktet. Jadi jika kita memiliki subnet mask dari 255.255.255.240, itu adalah 16 alamat. Jika kita melihat tabel "kekuatan 2" kita di atas, kita melihat bahwa 16 adalah dua hingga kekuatan keempat (2 ^ 4). Jadi kami mengurangi angka daya - 4 - dari 32 dan mendapatkan 28. Notasi CIDR kami untuk subnet mask 255.255.255.240, notasi CIDR kami adalah / 28.

Dan jika kita diberi CIDR dari / 28, kita kurangi itu (28) dari 32 menjadi 4; naikkan 2 ke (4) kekuatan (2 ^ 4) untuk mendapatkan 16; kemudian kurangi (16) dari 256 untuk mendapatkan 240; atau 255.255.255.240.

Jonathan J
sumber
terima kasih. Tapi saya masih kabur tentang bagaimana pc menggunakan subnet mask. Ketika sebuah aplikasi pada pc ingin mengirim data, itu merangkumnya menjadi sebuah paket. Apakah subnet mask menentukan bagaimana suatu paket dienkapsulasi? Sebagai contoh jika pc ingin mengirim paket di jaringan lokal, ia akan menggunakan ethernet frame en.wikipedia.org/wiki/Ethernet_frame dan jika ingin di luar jaringan apakah ia akan menggunakan paket tcp en.wikipedia.org/wiki / ... ?
aquagremlin
Pada dasarnya, saya tidak tahu BAGAIMANA pc menentukan ke mana harus mengirim datanya. Jaringan ethernet seperti bus-kemana-mana. Meletakkan paket melalui jack ethernet pada pc adalah peristiwa umum - oleh karena itu paket itu sendiri harus menentukan siapa yang meresponsnya. Sebuah 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 dikaitkan dengan alamat IP di tabel ARP masing-masing perangkat. Ini dibangun melalui penemuan. Ketika sebuah paket diperuntukkan bagi sebuah host di jaringan lokal, itu ditandai dengan MAC untuk perangkat tujuan. Ketika sebuah paket diperuntukkan untuk host jarak jauh, itu ditandai dengan MAC untuk router di jaringan lokal. Saat 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
2

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

NAT (terjemahan alamat jaringan) 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 aktual dilakukan secara transparan di node yang mampu NAT, biasanya router. Ini bisa dari banyak bentuk, Kerucut Penuh, Alamat Terbatas, Port dibatasi dll. Atau campuran dari ini, yang menentukan bagaimana koneksi melintasi node dapat dimulai.

Detail lengkap dapat ditemukan di Wikipedia , tetapi misalnya pertimbangkan router Wifi dengan 2 perangkat yang terhubung. IP publik router adalah 10.9.20.21/24, dan IP perangkat (Private IPs) A: 192.168.0.2, B: 192.168.0.3dan IP router R: 192.168.0.1. Jadi jika Aingin terhubung ke server S: 10.9.24.5/24, (yang sebenarnya ada pada subnet berbeda wrt router di sini):

  1. A mengirimkan paket IP ke R(yang akan menjadi gateway default) dengan IP sumber 192.168.0.2, port src (katakanlah) 14567, dan IP tujuan: 10.9.24.5(Meskipun port sebenarnya merupakan bagian dari header TCP).
  2. Router (yang mampu NAT) memetakan port 14567ke perangkat Adan mengubah sumber pada paket IP ke 10.9.20.21(yang merupakan IP publik dari router). Ini berbeda dengan subnetting yang dijelaskan di atas, di mana paket IP sebenarnya tidak pernah berubah .
  3. Smenerima serangkaian paket TCP (dengan IP src:, 10.9.20.21src Port:) 14567dan mengirim paket respons dengan nilai-nilai itu di bidang tujuan.
  4. Rmemeriksa port tujuan, yang merupakan 14567dan ke depan paket A.
  5. A menerima paket respons.

Dalam situasi di atas, jika Bmencoba membuka koneksi pada port sumber yang sama ( 14567), itu akan dipetakan ke port yang berbeda dengan R(dan port dalam paket keluar berubah) sebelum mengirim 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 total koneksi TCP 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.
forumulator
sumber