Intro IPv6 untuk admin IPv4 [ditutup]

26

Saya tahu IPv4 dengan cukup baik, tetapi saya tidak pernah harus menggunakan IPv6 dan tidak pernah benar-benar memiliki kelas di dalamnya atau membaca dokumentasi yang masuk akal.

Adakah yang bisa mengarahkan saya pada pengantar yang baik (on-line atau dalam buku) ke IPv6 untuk admin IPv4. Saya kebanyakan Windows daripada UNIX, tapi saya bisa mengikuti sebagian besar penjelasan UNIXy.

Richard Gadsden
sumber
Pertanyaan yang berkaitan dengan pendidikan profesional adalah di luar topik per FAQ yang direvisi .
sysadmin1138

Jawaban:

39

Saya menulis ini tahun lalu sebagai dokumen referensi internal ketika beberapa insinyur kami menjadi bingung ketika diminta untuk memasukkan alamat IPv6 ke DNS. Saya tidak membahas DNS secara khusus, tetapi sebagian besar kekhawatiran tampaknya berada di sekitar format alamat dan tidak "memahami" cara kerjanya. Mungkin itu akan bermanfaat bagi orang lain juga:


Jadi, hal pertama yang harus diketahui adalah bahwa add-add IPv6 terlihat jelek. Mereka melakukannya.

Tapi saya pikir itu hanya karena kita tidak terbiasa berurusan dengan mereka dan kita tidak mengerti apa artinya pada tingkat yang sangat rendah seperti yang kita lakukan dengan alamat IPv4. Saya pikir perlu waktu untuk merasa nyaman dengan mereka, tetapi kita harus mulai dari suatu tempat.

Satu hal penting untuk diingat adalah bahwa alamat IPv4 adalah angka 32 bit dan alamat IPv6 adalah angka 128 bit. Ketika router merutekan atau firewall menyaring, mereka melakukannya berdasarkan nomor itu. Bagaimana seorang manusia memilih untuk menampilkan angka itu benar-benar sewenang-wenang dan sebagian besar hanyalah tradisi. Jadi seluruh email ini menjelaskan bagaimana manusia memilih untuk mewakili angka-angka ini - mesin tidak peduli, itu semua bagi mereka.

Alamat IPv4 adalah 32 bit, atau empat byte. Apa yang kita anggap sebagai alamat IP "nyata" hanyalah metode yang telah menjadi standar untuk mewakili string bit itu, memisahkan bit menjadi 4 kelompok 8-bit, mewakili masing-masing 8 bit sebagai angka desimal, dan memisahkan angka desimal ini suatu periode. Jadi, ambil alamat IP acak 172.30.154.249. Ketika router "berpikir" tentang alamat IP ini, itu benar-benar memikirkannya seperti ini:

10101100000111101001101011111001

Yang bisa kita terjemahkan ke dalam bentuk kita sendiri:

10101100 = 172

00011110 = 30

10011010 = 154

11111001 = 249

Terkadang Anda mungkin juga melihat ini ditulis sebagai angka desimal murni:

10101100000111101001101011111001 = 2,887,686,905

Hampir tidak ada yang menggunakan formulir ini dengan sengaja (*), tetapi ini adalah cara yang valid secara historis untuk menulis alamat IPv4. Bahkan, formulir ini digunakan dalam RFC821 yang mendefinisikan SMTP pada tahun 1982. Jika Anda ingin merutekan email secara manual ke mesin tertentu alih-alih menggunakan DNS, Anda bisa menggunakan dua jenis literal yang berbeda. Yang pertama adalah bentuk "titik bertitik" yang dikenal dalam tanda kurung ("user @ [172.30.154.249]"). Yang kedua menggunakan bentuk desimal dari IP yang diawali dengan tanda pound ("user @ # 2887686905").

Semua hal di atas hanya untuk menyediakan kerangka kerja untuk menerjemahkan pengetahuan Anda tentang cara kerja alamat IPv4 ke alamat IPv6. Sama seperti IPv4 adalah angka 32 bit, alamat IPv6 adalah angka 128 bit. ARIN menetapkan MY AWESOME COMPANY (**) kisaran IP 2311: FD67 / 32. Demi memiliki contoh untuk bekerja dengan saya akan menggunakan IP 2311: FD67 :: AC1E: 9AF9.

Jadi, inilah bit string yang mewakili ip6 itu:

00100011000100011111110101100111000000000000000000000000000000000000000000000000000000000000000010101100000111101001101011111001

Jika kita merepresentasikan string bit ini dengan cara kita melakukan string bit IPv4 (konversi setiap chunk 1-byte menjadi desimal, pisahkan masing-masing dengan sebuah periode), kita akan mendapatkan yang berikut:

35.17.253.103.0.0.0.0.0.0.0.0.172.30.154.249

Itu memiliki beberapa masalah. Yang pertama adalah bahwa itu terlihat seperti nomor IPv4 yang funky, yang tidak baik, Anda ingin cara yang solid untuk membedakannya. Yang lainnya adalah banyak informasi, banyak jumlah, dan banyak ruang kosong. Jadi, kedua masalah diselesaikan dengan menggunakan seperator berbeda (titik dua (:) bukan titik (.)) Dan dengan merepresentasikan byte dalam heksadesimal bukan desimal. Di mana IPv4 memisahkan 8-bit, diwakili dalam desimal, dengan titik, IPv6 memisahkan 16-bit, dipisahkan dengan titik dua. Jadi, inilah uraian IP IP6 contoh kami:

0010001100010001 = 2311

1111110101100111 = FD67

0000000000000000 = 0

0000000000000000 = 0

0000000000000000 = 0

0000000000000000 = 0

1010110000011110 = AC1E

1001101011111001 = 9AF9



2311:FD67:0:0:0:0:AC1E:9AF9

Ini masih memiliki banyak ruang putih di dalamnya, jadi ada kelonggaran bahwa string nol terbesar dapat diabaikan dan diwakili dengan usus besar ganda. Jadi, IP di atas dapat ditulis:

2311:FD67::AC1E:9AF9

Saya belum pernah melihat ini banyak, tetapi seperti yang saya pahami ada juga konvensi yang rapi untuk memungkinkan 32-bit terakhir ditulis sebagai dotted-quad awalan, memungkinkan untuk pengenalan alamat warisan yang mudah saat Anda bermigrasi dari IPv4 ke IPv6 . Jadi, karena Anda mungkin memperhatikan alamat contoh IPv6 saya berakhir dengan 32 bit yang sama yang seluruhnya terdiri dari contoh IPv4 saya. Itu sangat berguna ketika Anda menulis dengan gaya ini. Dalam hal ini, addr IPv6 saya akan terlihat seperti:

2311:FD67::172.30.145.249

Untuk kembali ke tempat saya mulai dengan IPv6, saya menyebutkan bahwa kami telah ditugaskan 2311: FD67 / 32. / 32 adalah topeng bit seperti di alamat IPv4. Ini berarti bahwa pada dasarnya kita telah diberi secara statis 32 bit pertama dari 128 bit dalam alamat IPv4 yang dapat kita buat. Karena 2311: FD67 adalah 32 bit, itu berarti setiap alamat IP yang kami buat dari rentang itu akan mulai dengan itu.

Dengan kata lain, sama seperti 172.17 / 16 dapat dianggap sebagai "setiap IP antara 172.17.0.0 dan 172.17.255.255", 2311: FD67 / 32 dapat dianggap sebagai "setiap IP antara 2311: FD67: 0: 0: 0: 0: 0: 0 dan 2311: FD67: FFFF: FFFF: FFFF: FFFF: FFFF: FFFF ".

Saya pikir itu akan lama sebelum kita mulai bermigrasi ke IPv6 tetapi saya harap penjelasan ini akan membantu Anda merasa lebih nyaman menggunakannya dan merujuknya.

Sekali lagi, sangat penting untuk memahami satu-satunya hal yang saya bicarakan di sini adalah cara menuliskan alamat IPv6. Sepertinya ada banyak kecerdasan yang dibangun ke dalam skema penomoran untuk perutean, dll, yang saya belum benar-benar pahami, jadi yang bisa saya bahas sekarang adalah seperti apa kelihatannya =).

(*) Saya telah melihat representasi IPv4 desimal di beberapa perangkat lunak debug sebelumnya, tapi saya hampir yakin itu kesalahan atau kemalasan, saya pikir itu jauh lebih esier dalam kode C untuk mencetak integer 32bit dengan cepat daripada untuk format quad putus-putus untuk dicetak.

(**) Saya mencantumkan nama perusahaan dan awalannya

jj33
sumber
2
Saya telah melihat tautan SPAM menggunakan bentuk 2887686905 / beberapa / tautan dari alamat IP, jadi Anda tidak dapat mengetahui ke mana tautan itu pergi.
Eddie
1
Saya pikir salah satu perubahan besar dalam berpikir dengan IPv6 adalah penamaan dinamis dan penemuan layanan. Banyak admin DNS fuddy duddy tidak suka perubahan dinamis, dan tidak mengerti penemuan layanan.
duffbeer703
"172.17 / 16" berarti "172.0.0.17/16". Anda harus menulis "172.17.0.0/16".
Teddy
3
Saya bermaksud bertanya kepada Anda: Bagaimana NERAKA Anda mendapatkan subnet mask 32 bit di ruang IPv6 publik? Itu menggelikan! Apa gunanya ruang alamat IPv6 jika kita akan memberikannya pada tingkat yang kita berikan pada IPv4?
Luke tidak memiliki nama
Saya tidak terlibat dalam meminta rentang jadi saya tidak tahu detailnya.
jj33