Di bagian pertama dari seri Perutean IP, kami mempelajari dasar-dasar Perutean IP Linux.
Perintah rute digunakan untuk menampilkan/memanipulasi tabel perutean IP. Ini terutama digunakan untuk mengatur rute statis ke host atau jaringan tertentu melalui antarmuka.
Pada artikel ini kita akan melihat bagaimana memanipulasi tabel routing di Linux menggunakan perintah route.
Pertama-tama kami akan menjelaskan bagaimana perutean dilakukan dengan beberapa contoh perintah rute dasar, lalu kami akan menjelaskan menggunakan arsitektur jaringan contoh tentang cara menyiapkan rute di jaringan Anda.
Aku. Bagaimana Perutean Dilakukan?
1. Tampilkan Rute yang Ada
perintah route secara default akan menampilkan rincian entri tabel routing kernel. Dalam contoh ini, alamat ip sistem tempat perintah rute dijalankan adalah 192.168.1.157
$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
Perintah di atas menunjukkan bahwa jika tujuan berada dalam rentang jaringan 192.168.1.0 – 192.168.1.255, maka gatewaynya adalah *, yaitu 0.0.0.0.
Ketika paket dikirim dalam rentang IP ini, maka alamat MAC tujuan ditemukan melalui Protokol ARP dan paket akan dikirim ke alamat MAC.
Jika Anda tidak tahu apa itu ARP, Anda harus terlebih dahulu memahami cara kerja protokol ARP.
Untuk mengirim paket ke tujuan yang tidak berada dalam jangkauan ip ini, paket akan diteruskan ke gateway default, yang memutuskan perutean lebih lanjut untuk paket itu. Kita akan segera melihatnya.
Secara default, perintah rute menampilkan nama host dalam outputnya. Kami dapat memintanya untuk menampilkan alamat IP numerik menggunakan opsi -n seperti yang ditunjukkan di bawah ini.
$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.1.10 0.0.0.0 UG 0 0 0 eth0
2. Menambahkan Gerbang Default
Kita dapat menentukan bahwa paket yang tidak berada dalam jaringan harus diteruskan ke alamat Gateway.
Perintah penambahan rute berikut akan menetapkan gateway default sebagai 192.168.1.10.
$ route add default gw 192.168.1.10
Sekarang perintah rute akan menampilkan entri berikut.
$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 default gateway.co.in 0.0.0.0 UG 0 0 0 eth0
Sekarang kami baru saja menambahkan gateway default ke mesin kami. Untuk memverifikasi apakah itu berfungsi dengan baik, ping beberapa host eksternal (misalnya, google.com) untuk mengirim paket ICMP.
$ ping www.google.com
Berikut ini adalah urutan evets yang terjadi ketika perintah ping di atas dijalankan.
- Pertama akan meminta server DNS untuk mendapatkan alamat ip google.com (misalnya:74.125.236.34 )
- Alamat tujuan ( 74.125.236.34 ) tidak berada dalam jangkauan jaringan.
- Jadi, di Layer-3 (header IP) IP TUJUAN akan ditetapkan sebagai “74.125.236.34”.
- Pada Layer-2, alamat MAC DESTINATION akan diisi sebagai alamat MAC dari default gateway ( 192.168.1.10's MAC ). MAC akan ditemukan dengan menggunakan ARP seperti yang dijelaskan sebelumnya.
- Ketika paket dikirim keluar, switch jaringan ( yang bekerja pada Layer-2 ), mengirim paket ke gateway default karena MAC tujuan adalah gateway.
- Setelah gateway menerima paket, berdasarkan tabel peruteannya, gateway akan meneruskan paket lebih lanjut.
2 contoh di atas akan memberikan ide bagus tentang bagaimana perutean dilakukan dalam jaringan. Sekarang kita akan melihat opsi baris perintah lain yang tersedia dengan perintah rute.
3. Mencantumkan Informasi Cache Perutean Kernel
Kernel memelihara informasi cache perutean untuk merutekan paket lebih cepat. Kita dapat membuat daftar informasi cache perutean kernel dengan menggunakan flag -C.
$ route -Cn Kernel IP routing cache Source Destination Gateway Flags Metric Ref Use Iface 192.168.1.157 192.168.1.51 192.168.1.51 0 0 1 eth0 192.168.1.157 74.125.236.69 192.168.1.10 0 0 0 eth0 . . .
4. Tolak Perutean ke Host atau Jaringan Tertentu
Terkadang kita mungkin ingin menolak merutekan paket ke host/jaringan tertentu. Untuk melakukannya, tambahkan entri berikut.
$ route add -host 192.168.1.51 reject
Seperti yang Anda lihat di bawah, kami tidak dapat mengakses host tertentu (yaitu .51 host yang baru saja kami tolak).
$ ping 192.168.1.51 connect: Network is unreachable
Namun kami masih dapat mengakses host lain di jaringan (misalnya, .52 host masih dapat diakses).
$ ping 192.168.1.53 PING 192.168.1.53 (192.168.1.53) 56(84) bytes of data. 64 bytes from 192.168.1.53: icmp_seq=1 ttl=64 time=7.77 ms
Jika Anda ingin menolak seluruh jaringan ( 192.168.1.1 – 192.168.1.255 ), tambahkan entri berikut.
$ route add -net 192.168.1.0 netmask 255.255.255.0 reject
Sekarang, Anda tidak dapat mengakses host mana pun di jaringan itu (misalnya:.51, .52, .53, dll.)
$ ping 192.168.1.51 connect: Network is unreachable $ ping 192.168.1.52 connect: Network is unreachable $ ping 192.168.1.53 connect: Network is unreachable
II. Contoh Arsitektur Jaringan (untuk memahami perutean)
Mari kita gunakan contoh arsitektur jaringan berikut untuk contoh lainnya.
Dalam diagram di bawah, kami memiliki 2 jaringan individu ( 192.168.1.0 dan 192.168.3.0, dengan subnet mask 255.255.255.0 ).
Kami juga memiliki mesin "GATEWAY" dengan 3 kartu jaringan. Kartu pertama terhubung ke 192.168.1.0, kartu kedua terhubung ke 192.168.3.0, dan kartu ketiga terhubung ke dunia luar.
5. Jadikan 192.168.3.* Dapat diakses dari 192.168.1.*
Sekarang kita perlu menambahkan entri perutean sehingga kita dapat melakukan ping 192.168.3. seri ip-address dari 192.168.1. seri. Poin umum yang kami miliki adalah mesin GATEWAY.
Jadi, pada setiap mesin di jaringan 192.168.1.* gateway default akan ditambahkan seperti yang ditunjukkan di bawah ini.
$ route add default gw 192.168.1.10
Sekarang ketika 192.168.1.1 ping 192.168.3.1, itu akan pergi ke GATEWAY melalui 192.168.1.10.
Di GATEWAY, tambahkan entri perutean berikut.
$ route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.10
Sekarang semua paket yang dialamatkan ke jaringan 192.168.3.* akan diteruskan melalui antarmuka 192.168.3.10, yang kemudian mengirimkan paket ke mesin yang dialamatkan.
6. Jadikan 192.168.1.* Dapat diakses dari 192.168.3.*
Ini sangat mirip dengan apa yang kami lakukan sebelumnya.
Jadi, pada setiap mesin di jaringan 192.168.3.* gateway default akan ditambahkan seperti yang ditunjukkan di bawah ini.
$ route add default gw 192.168.3.10
Di GATEWAY, tambahkan entri perutean berikut.
$ route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.10
Sekarang mesin 192.168.3.* dapat melakukan ping ke mesin 192.168.1.*.
7. Izinkan Akses Internet ( Dunia Eksternal )
Dalam dua contoh sebelumnya, kami telah menghubungkan 2 jaringan yang berbeda.
Sekarang kita perlu mengakses internet dari 2 jaringan yang berbeda ini. Untuk itu, kita dapat menambahkan perutean default ( bila tidak ada aturan perutean yang cocok ) ke 125.250.60.59 yang terhubung ke dunia luar sebagai berikut.
$ route add default gw 125.250.60.59
Begini cara kerjanya:
- Sekarang ketika Anda mencoba mengakses internet (misalnya:ping google.com) dari salah satu mesin ini (misalnya, dari 192.168.3.2), berikut adalah urutan kejadian yang terjadi.
- Karena tujuan (google.com) tidak berada dalam rangkaian 3.*, tujuan akan diteruskan ke GATEWAY melalui antarmuka 3.10
- Di GATEWAY, ia memeriksa apakah tujuan berada dalam rentang 1.*. Dalam contoh ini, tidak.
- Kemudian memeriksa apakah tujuan berada dalam jangkauan 2.*. DALAM contoh ini, bukan
- Terakhir, dibutuhkan rute default untuk meneruskan paket (yaitu menggunakan antarmuka 125.250.60.59, yang terhubung ke dunia luar).