Bagaimana alamat ip lokal dipisahkan dari yang publik?

1

Bagaimana alat seperti ping, atau alat lain yang menggunakan protokol tcp / ip tahu bahwa misalnya 192.168.1.1 atau 10.0.0.1 adalah alamat ip lokal sementara 8.8.8.8 atau 74.142.23.95 bersifat publik? sajakah 192.168.xx dan 10.0.xx hardcoded akan dipertahankan untuk penggunaan lokal?

totokaka
sumber
5
Mereka tidak mengetahuinya dan mereka tidak peduli. Apakah Anda memiliki masalah khusus?
BatchyX
@ BatchyX Saya hanya mencoba memahami cara kerja. Dan beberapa program di suatu tempat harus peduli apakah alamatnya adalah bagian dari LAN atau WAN.
totokaka
Mengapa mereka harus peduli?
BatchyX

Jawaban:

9

Yah, mereka dicadangkan oleh RFC 1918 untuk digunakan dalam jaringan pribadi.

Tapi itu sebenarnya tidak terlalu penting. Anda dapat memperoleh blok alamat IP "publik" dari RIPE atau apa pun, dan menggunakannya untuk jaringan pribadi Anda, dan semuanya akan tetap berfungsi. Pemesanan diperlukan hanya untuk alasan politik, untuk memungkinkan admin mengatur jaringan pribadi mereka sendiri tanpa masalah.

Alat seperti ping tidak peduli apakah alamat itu "pribadi" atau "lokal" atau "publik". Mereka hanya mengirim paket ke alamat yang diberikan, dan OS Anda melihat tabel routing untuk memutuskan ke mana harus mengirimnya berikutnya.

Misalnya, ketika Anda mengkonfigurasi kartu Ethernet pada Windows dengan alamat IP 10.2.3.4/16(dalam format netmask:) 255.255.0.0dan gateway 10.2.0.1, itu menambahkan entri berikut ke tabel routing:

  • 10.2.3.4/32(netmask 255.255.255.255) ke antarmukaLoopback

    (Alamat Anda sendiri selalu dirutekan melalui antarmuka loopback, mereka tidak pernah masuk ke jaringan.)

  • 10.2.0.0/16(netmask 255.255.0.0) ke antarmukaLocal Area Connection

    (Menurut definisi, alamat di subnet Anda sendiri adalah lokal.)

  • 0.0.0.0/0(netmask 0.0.0.0) ke gateway10.2.0.1

    (Segala sesuatu yang lain bukan lokal.)

Dengan kata lain, Anda memberi tahu OS bahwa semua alamat dalam 10.2.0.0/16rentang adalah lokal, dan OS menangani semuanya.


Untuk melihat tabel routing:

  • di Linux, ip route(IPv4) dan ip -6 route(IPv6)
  • pada Windows, route print(IPv4 pada ≤XP, keduanya v4 / v6 pada ≥Vista)
  • pada Windows XP, netsh interface ipv6 show route(IPv6)
  • pada Windows, Linux, BSD, dan Unix-like lainnya, netstat -r -n(IPv4)
  • di Linux dan beberapa suka-Unix, netstat -r -n -6(IPv6)

Mengedit tabel perutean dapat dilakukan dengan alat yang sama. Misalnya, untuk menandai semua 172.16.0.0/16sebagai lokal, Anda dapat menggunakan ip route add 172.16.0.0/16 dev eth0di Linux.

grawity
sumber
1
Aha, ini menjelaskan banyak hal. Saya akan menerima jawabannya besok jika tidak ada jawaban yang lebih baik. Terima kasih!
totokaka
Mungkin perlu disebutkan bahwa Anda juga dapat secara manual mengedit tabel routing. Ini tidak sering dibutuhkan, tetapi kadang-kadang bisa sangat berguna.
CVn
Apa yang bisa Anda dapatkan dari mengubah tabel routing?
totokaka
@totokaka: Ini benar-benar tidak berguna pada host seperti pada router (atau pada PC yang bekerja sebagai router), tetapi masih ada gunanya - misalnya, jika Anda memiliki beberapa koneksi Internet, atau terhubung ke VPN, Anda dapat beri tahu OS bahwa Anda hanya ingin mengakses beberapa server perusahaan melalui VPN tetapi tidak segalanya - alih-alih semua atau tidak sama sekali.
grawity
0

Alamat IP publik dan pribadi didefinisikan dalam RFC. Ini adalah alamat IP pribadi:

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

Juga alamat IP ini adalah loopback:

127.0.0.0/8

Yang lain bersifat publik.

Sebagian besar alat tidak perlu mengetahui alamat IP publik atau pribadi.

Sub
sumber