TCP/IP: IPv6 Internet Protocol Versi 6
IP versi 6
Apakah IPv6?
IPv6 adalah kependekan dari "Internet Protocol Version 6". IPv6 adalah protokol "next generation" yang dirancang oleh IETF (http://www.ietf.org/) untuk menggantikan versi Internet protokol yang sekarang digunakan, IP Versi 4 ("IPv4"). Sebetulnya ada IP versi 5, yang di alokasikan untuk experimental Internet Stream Protocol versi 2 (ST-2), yang di jelaskan di RFC 1819.
Pada hari ini sebagian besar Internet menggunakan IPv4, IP versi 4 (IPv4) yang di jelaskan di RFC 791 (September 1981). Umurnya sudah lebih dari 20 tahun, tapi IPv4 cukup tangguh walaupun sudah tua, walau di awalnya mempunyai banyak masalah.
Ada beberapa keluarga protokol (termasuk Open System Interconnection) yang pernah di usulkan untuk menggantikan IPv4, tapi semuanya tidak ada yang berhasil karena penggunaan IPv4 yang telah sedemikian besar dan terus berkembang. Walaupun terus terang, IPv4 tidak di rencanakan untuk digunakan seperti yang kita gunakan hari ini, dari sisi jumlah mesin, tipe aplikasi maupun keamanan. Salah satu masalah yang paling besar saat ini adalah kekurangannya alokasi IPv4 yang sangat dibutuhkan oleh server / mesin yang tersambung ke Internet.
Di awal tahun 1990, Internet Engineering Task Force (IETF) melihat bahwa satu-satunya cara untuk mengatasi hal ini adalah merancang versi IP yang baru sebagai pengganti IPv4. IETF membentuk working group next generation (IPng) untuk mendefinisikan protokol transisi yang menjaga kompatibilitas jangka panjang dengan versi IP yang sekarang maupun yang baru, dan mendukung aplikasi berbasis IP yang sekarang maupun yang akan datang.
IPng mulai aktif tahun 1991, dan beberapa proposal IPng di ajukan. Hasil dari pekerjaan mereka adalah IP versi 6 (IPv6) yang dijelaskan dalam RFC 1883-1886. Ke empat RFC tentang IPv6 masuk ke track Internet standard bulan Desember 1995. Penjelasan tentang IPv6 dapat dilihat di RFC 1883 (http://www.isi.edu/in-notes/rfc1883.txt) dan beberapa spesifikasi lainnya, termasuk ICMPv6.
IPv6 diharapkan dapat memperbaiki masalah di IPv4, seperti keterbatasan address IPv4. IPv6 juga menambahkan beberapa perbaikan ke IPv6 seperti routing dan network autoconfiguration. IPv6 di harapkan dapat secara bertahap menggantikan IPv4, dengan perioda transisi dimana kedua akan berjalan bersama selama beberapa tahun.
IPv6 di rancang sebagai sebuah evolusi dari IPv4, jadi bukan sebuah perubahan yang radikal. Feature yang baik dari IPv4 tetap digunakan di IPv6, dan feature yang tidak terlalu berguna di buang. Menurut spesifikasi IPv6, perubahan dari IPv4 ke IPv6 terutama terjadi pada kategori:
Perluasan kemampuan pengalamatan - alamat IP address bertambah dari 32 bit menjadi 128 bit di IPv6. Lebih banyak node / komputer di jaringan yang dapat memperoleh address. Lebih banyak level hirarki pengalamatan, autoconfiguration yang lebih sederhana untuk pengguna yang remote.Multicast routing menjadi lebih scalable dengan menambahkan kolom Scope di alamat multicast. Tipe alamat yang baru, di sebut anycast, juga di definisikan. Penyederhanaan format header – beberapa kolom header IPv4 dibuang atau di buat lebih optimal dan sangat mengurangi waktu yang dibutuhkan untuk memproses paket, dan untuk membatasi biaya bandwidth oleh header IPv6. Perbaikan dukungan untuk Extension dan Option: Option IPv6 header di encode untuk memungkinkan efisiensi forwarding, panjang option yang tidak terlalu ketat, dan lebih fleksibel untuk memasukan option baru di kemudian hari. Beberapa kolom di IPv4 header dibuat optional di IPv6. Kemampuan Flow Labeling – kemampuan baru dalam hal Quality of Service (QoS) yang ditambahkan untuk memungkinan pelabelan paket yang termasuk traffic flow tertentu yang mana mungkin pengirim meminta penanganan yang khusus, seperti servis real-time. Kemampuan authentikasi dan privacy – extension untuk mendukung option security, seperti authentikasi, integritas data, dan kerahasiaan data, sudah ada di dalam IPv6.
IPv6 mengajukan dan memformalkan terminologi yang di lingkungan IPv4 biasanya tidak terdefinisi dengan baik, atau terdefinisi dengan tidak baik, atau tidak terdefinisi. Beberapa terminologi yang digunakan antara lain:
Paket – sebuah IPv6 Protocol Data Unit (PDU), terdiri dari header dan payload (beban) yang dibawanya. Di IPv4, biasanya disebut sebagai paket atau datagram. Node – sebuah divais / alat yang mengimplementasikan IPv6. Router – sebuah node IPv6 yang memforward paket, berdasarkan IP address, tidak secara explisit di alamatkan pada dirinya. Dalam terminologi TCP/IP yang lama, alat ini kadang kala disebut sebagai gateway. Host – Node yang bukan router, biasanya adalah system pada end-user. Link – media dimana node saling berkomunikasi satu sama lain melalui lapisan protokol data link, seperti, ATM, frame relaym SMDS Wide Area Network, atau Ethernet LAN. Neighbor – node yang tersambung pada link yang sama.
Arsitektur dan struktur dari IPv6 address di terangkan di RFC 2373.( http://www.isi.edu/in-notes/rfc2373.txt) . Pada bulan July 1999, IANA mendelegasikan alokasi awal IPv6 ke regional registry untuk implementasi IPv6 di dunia. Informasi lebih lanjut tentang alokasi IPv6 ini dapat di lihat di APNIC ( http://www.apnic.net/), ARIN (http://www.arin.net/), dan RIPE (http://www.ripe.net/). Referensi Lebih Lanjut
Beberapa informasi pendahuluan tentang protokol IPv6 dapat diperoleh di FAQ IPv6 (http://www.ipv6.org/faq.html). Bagi mereka yang tertarik untuk melihat detail teknisnya, dapat dilihat di spesifikasi IPv6 (http://www.ipv6.org/specs.html).
Dimana kita dapat memperoleh implementasi IPv6 pada berbagai sistem? Untuk sebagian besar sistem operasi, umumnya telah tersedia di sistem operasi yang umumnya digunakan hari ini. Daftar implementasi IPv6 dapat dilihat di (http://www.ipv6.org/impl/index.html). Daftar HOWTO install dari berbagai sistem dapat dilihat di (http://www.ipv6.org/howtos.html).
Aplikasi apa yang dapat dijalankan diatas IPv6? Aplikasi umum Internet umumnya dapat dijalankan dengan IPv6, banyak aplikasi lainnya yang sedang dalam proses porting untuk IPv6. Daftar aplikasi yang telah siap untuk IPv6 dapat dilihat di (http://www.ipv6.org/v6-apps.html).
Untuk informasi lebih lanjut tentang IPv6, dapat dilihat di: IPng: Internet Protocol Next Generation by Scott Bradner and Allison Mankin (Addison-Wesley, 1996) IPv6: The New Internet Protocol by Christian Huitema (Prentice-Hall, 1996). "IPv6: The Next Generation Internet Protocol" (http://www.garykessler.net/library/ipv6_exp.html) IPng and the TCP/IP Protocols by Stephen Thomas (John Wiley & Sons, 1996) IP Next Generation Web Page (Sun) (http://playground.sun.com/pub/ipng/html)
Untuk penjelasan detail tentang berbagai protokol IPv6, dapat dilakukan dengan membaca http://www.ietf.org atau http://www.rfc-editor.org, terutama membaca:
RFC 1883: Internet Protocol, Version 6 (IPv6) Specification RFC 1884: IP Version 6 Addressing Architecture RFC 1885: Internet Control Message Protocol (ICMPv6) for the Internet Protocol RFC 1886: DNS Extensions to support IP version 6
Ada beberapa RFC lain yang terkait, termasuk:
RFC 1550: IP: Next Generation (IPng) White Paper Solicitation RFC 1726: Technical Criteria for Choosing IP: The Next Generation (IPng) RFC 1752: The Recommendation for the IP Next Generation Protocol RFC 1825: Security Architecture for the Internet Protocol RFC 1826: IP Authentication Header RFC 1827: IP Encapsulating Security Protocol (ESP) RFC 1828: IP Authentication uysing Keyed MD5 RFC 1829: The ESP DES-CBC Transform RFC 1881: IPv6 Address Allocation Management RFC 1887: An Architecture for IPv6 Unicast Address Allocation RFC 1888: OSI NSAPs and IPv6 RFC 1897: IPv6 Testing Address Allocation RFC 1970: Neighbor Discovery for IP Version 6 (IPv6) RFC 1971: IPv6 Stateless Address Autoconfiguration RFC 1972: A Method for the Transmission of IPv6 Packets over Ethernet Networks RFC 1981: Path MTU Discovery for IP version 6 RFC 2002: IP Mobility Support RFC 2003: IP Encapsulation within IP RFC 2019: Transmission of IPv6 Packets Over FDDI RFC 2023: IP Version 6 over PPP RFC 2073: IPv6 Provider-Based Unicast Address Format RFC 2080: RIPng for IPv6 RFC 2081: RIPng Protocol Applicability Statement
Bagi yang ingin melakukan implementasi IPv6 menggunakan Linux, ada baiknya membaca HOWTO IPv6 di Linux, terutama dari:
http://www.ipv6.org http://www.cs-ipv6.lancs.ac.uk/ipv6/systems/linux/faq/linux-ipv6.faq.html#toc5 http://www.bieringer.de/linux/IPv6/ http://www.garykessler.net/library/ipv6_exp.html http://playground.sun.com/pub/ipng/html
Dulu diskusi tentang IPv6 dalam bahasa Indonesia banyak dilakukan di ipv6@apjii.or.id, tampaknya pada hari ini tidak terlalu aktif. Pada saat naskah ini di tulis, di Indonesia ada 2 cloud IPv6 dari Indonesia yang masuk ke Backbone IPv6 Internasional di 6BONE (http://www.6bone.net), yaitu, CBN & INDOSAT.
Bagi anda yang membutuhkan pertolongan tentang IPv6, dapat mengikuti mailing list IPv6 yang ada di (http://www.ipv6.org/mailing-lists.html) atau ipv6@apjii.or.id.
Format Header IPv6
Format header IPv6 seperti tamapak pada gambar. Perlu diketahui bahwa walaupun IPv6 address empat (4) kali lebih panjang dari IPv4 address, header IPv6 hanya dua kali dari panjang header IPv4. Oleh karena itu sangat mengurangi efek dari panjangnya kolom address. Kolom pada header IPv6 adalah: Version: nomor versi IP (4 bit). Kolom ni berisi nilai 6 untuk IPv6, dan nilai 4 untuk IPv4. Lokasi kolom ini sama untuk header IPv6 dan IPv4 sehingga memudahkan sebuah node untuk membedakan apakah ini paket IPv4 atau IPv6. Priority: memungkinkan sebuah sumber untuk mengidentifikasi prioritas pengiriman paket (4 bit). Flow Label: digunakan oleh source untuk mengidentifikasi paket-paket dengan label tertentu ini membutuhkan teknik penanganan yang tertentu, seperti servis real-time antara sepasang host (24 bit). Payload Length: Panjang payload, bagian dari paket sesudah header, dalam oktet (16 bit). Nilai maksimum dari kolom ini adalah 65,535; jika kolom ini berisi nol mempunyai arti bahwa paket berisi payload yang lebih besar dari 64Kbyte dan panjang payload yang sebenarnya ada di Jumbo Payload hop-by-hop option. Next Header: mengidentifikasi tipe header selanjutnya yang melekat pada header IPv6; menggunakan nilai yang sama dengan nilai pada IPv4 jika dimungkinkan (8 bit). Kolom Next Header dapat mengindikasikan option header, protokol pada lapisan yang lebih tinggi, atau tidak ada protokol di atas IP. Beberapa contoh nilai-nya tampak pada tabel. Hop Limit: menspesifikasikan jumlah hop maksimum yang dapat dilalui sebelum paket di buang (8 bit). Nilai ini di set oleh source dan akan dikurangi 1 setiap kali melewati sebuah node. Paket akan dibuang jika nilai Hop Limit mencapai nilai nol. Hop Limit sama dengan Time To Live (TTL) di IPv4. Source Address: IPv6 address dari pengirim / asal paket (128 bits). Destination Address: IPv6 address dari penerima paket (128 bits).
Contoh nilai dari Kolom Next Header
Nilai Isi dari Next Header 1 Internet Control Message Protocol (ICMP) 6 Transmission Control Protocol (TCP) 17 User Datagram Protocol (UDP) 43 Routing header 44 Fragment header 58 Internet Control Message Protocol version 6 (ICMPv6) 59 Tidak ada; ini adalah header yang terakhir 60 Destination Options header 89 Open Shortest Path First (OSPF) IPv6 Address IPv6 mendefinisikan tiga (3) tipe address / alamat, yaitu: Unicast address yang menunjukan sebuah host. Anycast address yang di berikan pada lebih dari satu interface, biasanya terdapat pada anode IPv6 yang berbeda, seperti sekumpulan router yang dimiliki oleh ISP. Paket yang dikiriim ke anycast address akan di teruskan ke salah satu router yang teridentifikasi oleh address tersebut, dan yang paling dekat menurut protokol routing. Multicast address menunjukan sekumpulan host, sebuah paket yang dikirim ke multicast address aka dikirimkan ke semua host pada group ini. Perlu dicatat bahwa pada IPv6 tidak ada broadcast address seperti yang kita gunakan di IPv4, karena fungsi ini telah dilakukan oleh multicast address. IPv4 addess di tulis menggunakan notasi dotted decimal, dimana nilai desimal dari empat byte address di pisahkan dengan dot. Cara yang disukai, atau biasa digunakan, untuk menuliskan IPv6 adalah nilai hexadesimal dari delapan blok 16-bit yang dipisahkan menggunakan titik dua / colon (:), seperti FF04:19:5:ABD4:187:2C:754:2B1. Perhatikan bahwa nilai nol di muka tidak perlu ditulis, dan setiap kolom harus memiliki suatu nilai. IPv6 address biasanya akan memiliki nilai nol yang banyak karena cara pengalokasian-nya. Teknik menulis cepat address dengan banyak nol, menggunakan titik dua doubel (::) untuk menunjukan banyak blok 16-bit yang nol. Contoh, FF01:0:0:0:0:0:0:5A dapat ditulis sebagai FF01::5A. Agar tidak bingung, "::" hanya dapat muncul satu kali di sebuah address. Sebagai alternatif, format hybrid address di definisikan untuk memudahkan merepresentasikan IPv4 address dalam lingkungan IPv6. Disini, 96 bit address yang pertama (6 group dari 16) di representasikan dalam format IPv6 yang biasa, sedang sisa 32 bit address di representasikan dalam IPv4 dotted decimal; sebagai contoh, 0:0:0:0:0:0:199.182.20.17 (atau ::199.182.20.17). Alokasi Prefix IPv6 Address Dari RFC 1884
Alokasi Prefix (Binary) Bagian Dari Address Reserved 0000 0000 /256 Unassigned 0000 0001 /256 Reserved Untuk Alokasi NSAP 0000 001 /128 Reserved Untuk Alokasi IPX 0000 010 /128 Unassigned 0000 011 /128 Unassigned 0000 1 1/32 Unassigned 0001 1/16 Unassigned 001 1/8 Provider-Based Unicast Address 010 1/8 Unassigned 011 1/8 Reserved Untuk Geographic-Based Unicast Address 100 1/8 Unassigned 101 1/8 Unassigned 110 1/8 Unassigned 1110 1/16 Unassigned 1111 0 1/32 Unassigned 1111 10 1/64 Unassigned 1111 110 1.128 Unassigned 1111 1110 0 1/512 Penggunaan Link Lokal 1111 1110 10 1/1024 Penggunaan Site Lokal 1111 1110 11 1/1024 Multicast Address 1111 1111 1/256
Salah satu goal dari format address IPv6 adalah untuk memenuhi berbagai tipe address. Awal address mengandung tiga (3) sampai sepuluh (10) bit prefix mendefinisikan tipe address secara umum. Bit selanjutnya berisi host address sebenarnya, dalam format yang spesifik mengindikasikan tipe address Detail teknik pengalokasian IPv6 dapat di baca di RFC 1884.
Contoh, IPv6 address untuk Provider-Based Unicast Address yang dialokasikan oleh sebuah Internet service provider (ISP) kepada pelanggannya. Tipe address ini mengandung bebarapa sub-kolom, termasuk:
Format Prefix: Mengindikasikan tipe address sebagai Provider-Based Unicast. Selalu 3 bit, dengan kode "010."
Registry Identifier: Menunjukan dari Internet address registry mana ISP memperoleh IP address. Nilai n hanya 5-bit menunjukan IANA Internet Assigned Number Authority atau salah satu dari tiga Regional Registry, yaitu Internet Network Information Center (InterNIC), Rèseaux IP Europèens Network Coordination Center (RIPE NCC), atau Asia-Pacific Network Information Center (APNIC). Di kemudian hari, registry nasional akan di akomodasi juga.
Provider Identifier: Menunjukan ISP; kolom ini menunjukan blok address yang di alokasikan oleh authoritas address registry.
Subscriber Identifier: Menunjukan pelanggan ISP; Kolom ini menunjukan alokasi address ke pelanggan oleh ISP. ProviderID dan SubscriberID mempunyai total panjang 56 bit.
Intra-Subscriber: Berisi bagian alokasi address yang di atur oleh pelanggan. Mempunyai panjang 64-bit, di sarankan untuk berisi subnetwork 16-bit dan identifikasi interface 48-bit (seperti IEEE MAC address).
Salah satu hal yang penting dalam tipe address adalah penujukan IPv4 addrress. Dengan lebih dari enam belas juta host di Internet menggunakan address 32 bit, Internet publik harus terus mengakomodasi IPv4 address walaupun secara perlahan migrasi ke IPv6 dan pengalamatan IPv6.
IPv4 address akan di bawah dalam 128-bit IPv6 address yang berawal dengan 80 nol (0:0:0:0:0). 16-bit blok selanjutnya berisi compatibility bit, yang menunjukan cara host / router menangani IPv4 dan IPv6 address. Jika device dapat menangani IPv4 atau IPv6 address, compatibility bit akan di set semua menjadi nol (0) dan ini di kenal sebagai IPv4-compatible IPv6 address. Pada sebuah sebuah node yang hanya dapat berbicara IPv4 saja, compatibility bit akan di set ke satu semua (0xFFFF) dan ini di kenal sebagai IPv4-mapped IPv6 address. Sedangkan, 32 bit terakhir berisi 32-bit IPv4 address dalam bentuk dotted decimal.
IPv6 multicast address memberikan identifikasi untuk sekelompok node. Sebuah node dapat menjadi anggota dari banyak group multicast. Multicast address tidak dapat digunakan sebagai source address di paket IPv6 atau muncul di routing header.
Semua multicast address selalu di awali dengan delapan (8) bit satu (0xFF). Empat (4) bit selanjutnya adalah flag bit (flgs), Tiga bit pertama di set menjadi nol dan bit ke empat (T-bit) menunjukan alokasi permanen (“well-known”) multicast address (T=0) atau alokasi tidak permanen (“transient”) multicast addess (T=1). Empat (4) bit selanjutnya menunjukan scope dari address (scop), atau bagian dari jaringan yang relevan dengan multicast address, option yang ada termasuk node lokal (0x1), link lokal (0x2), site lokal (0x5), organisasi-lokal (0x8), atau global (0xE). Sisa 112 bit adalah Group Identifier, yang menunjukan multicast group, apakah permanen atau transien, dalam sope yang diberikan. Interpretasi dari alokasi multicast address permanen tidak tergantung pada nilai scope. Contoh, jika “Internet video server group" memperoleh alokasi multicast address permanen dengan group identifier 0x77, maka: FF01:0:0:0:0:0:0:77 menunjukan semua video server pada node yang sama seperti sender. FF02:0:0:0:0:0:0:77 menunjukan semua video server pada link yang sama seperti sender. FF05:0:0:0:0:0:0:77 menunjukan semua video server pada site yang sama seperti sender. FF0E:0:0:0:0:0:0:77 menunjukan semua video server di Internet. Ada beberapa multicast address yang telah di definisikan, termasuk: Reserved Multicast Address telah di reserved dan tidak akan pernah di alokasikan ke multicast group manapun. Addesss tersebut mempunyai FF0x:0:0:0:0:0:0:0, dimana x adalah digit hexadesimal apapun. All Nodes Address menunjukan group dari semua IPv6 node dalam scope yang diberikan. Address ini dalam bentuk FF0t:0:0:0:0:0:0:1, dimana t =1 (node-lokal) atau 2 (link-lokal). All Routers Address menunjukan group dari semua IPv6 router dalam scope yang diberikan. Address ini dalam bentuk FF0t:0:0:0:0:0:0:2, dimana t =1 (node-lokal) atau 2 (link-lokal). DHCP Server/Relay-Agent address menunjukan group dari semua IPv6 Dynamic Host Configuration Protocol (DHCP) Server dan Relay Agent dengan scope link-lokal; address tersebut adalah FF02:0:0:0:0:0:0:C.
IPv6 Extension Header Dan Option Dalam IPv6, informasi optional lapisan IP dikodekan dalam extension header yang terpisah dan di letakan antara header IPv6 basic (dasar) dan header protokol lapisan yang lebih tinggi. Sebuah paket IPv6 dapat membawa nol, satu atau banyak extension header, semua di tunjukan oleh kolom Next Header dari header sebelumnya dan masing-masing berisi kelipatan genap dari 64 bit. Implementasi IPv6 yang benar akan mendukung extension header dan option-nya sebagai berikut: Hop-by-Hop Options header digunakan untuk mebawa informasi yang harus di periksa oleh semua node sepanjang jalan-nya paket. Ada tiga (3) option termasuk dalam kategori ini. Option Pad1 digunakan untuk memasukan satu oktet padding ke daerah Option agar header menjadi 64-bit. Option PadN digunakan untuk memasukan dua atau lebih oktet padding. Option Jumbo Payload digunakan untuk menunjuak bahwa panjang payload lebih dari 65,535 oktet. Option ini digunakan jika kolom Payload Length di set menjadi nol. Routing header digunakan oleh IPv6 source untuk memberikan daftar satu atau lebih node antara yang harus di lalio sebagai bagian dari jalur paket menuju tujuan. Fungsi ini kira-kira sama dengan option IPv4 Loose & Strict Source Route. Header ini berisi daftar alamat dan indikasi setiap alatnya apakah strict atau loose. Jika alamat bertanda strict, maka berarti bahwa node tersebut harus sebuah neighbor dari node sebelumnya. Jika alamat bertanda loose, maka node tersebut tidak harus neighbor dari node sebelumnya. Fragment header digunakan oleh IPv6 source untuk mengirimkan paket yang lebih besar dari Maximum Transmission Unit (MTU) pada jalur ke tujuan. Header ini berisi packet identifier, fragment offset, dan final fragment indicator. Berbeda dengan IPv4 yang membawa informasi fragmentasi di setiap header paket, IPv6 hanya membawa informasi fragmentation/reassembly pada paket yang di potong (fragmented). Berbeda dengan IPv4, proses fragmentasi di IPv6 dilakukan hanya oleh source dan tidak oleh router sepanjang jalur yang di lalui. Semua host dan router IPv6 harus mendukung MTU 576 oktet. Hal ini di rekomendasikan dalam prosedur path MTU discovery (sesuai RFC 1981) untuk dilakukan dalam rangka menemukan, dan memaksimalkan jalur yang mempunyai MTU yang besar. Destination Options header digunakan untuk membawa informasi optional yang harus di periksa oleh node tujuan. Pada saat ini, destination option yang di definisikan baru Pad1 dan PadN. IP Authentication Header (AH) dan IP Encapsulating Security Payload (ESP) adalah mekanisme security IPv6.
Contoh IPv6 Extension Header. TCP segmen di enkapsulasi dalam IP tanpa option tambahan (atas). TCP segmen sesudah Routing header (tengah); dan potongan TCP segmen sesudah Fragmen header sesudah Routing header (bawah) (di ambil dari RFC 1883).
Dengan pengecualian Hop-by-Hop Option, extension header biasanya hanya di periksa atau di proses oleh node tujuan. Isi dari setiap extension header menentukan apakah harus melanjutkan ke header selanjutnya atau tidak. Oleh karenanya, extension header harus di proses agar header tersebut muncul di paket.
8.0 IPng Routing Routing in IPng is almost identical to IPv4 routing under CIDR except that the addresses are 128- bit IPng addresses instead of 32-bit IPv4 addresses. With very straightforward extensions, all of IPv4's routing algorithms (OSPF, RIP, IDRP, ISIS, etc.) can used to route IPng. IPng also includes simple routing extensions which support powerful new routing functionality. These capabilities include:
Provider Selection (based on policy, performance, cost, etc.)
Host Mobility (route to current location)
Auto-Readdressing (route to new address)
The new routing functionality is obtained by creating sequences of IPng addresses using the IPng Routing option. The routing option is used by a IPng source to list one or more intermediate nodes (or topological group) to be "visited" on the way to a packet's destination. This function is very similar in function to IPv4's Loose Source and Record Route option.
In order to make address sequences a general function, IPng hosts are required in most cases to reverse routes in a packet it receives (if the packet was successfully authenticated using the IPng Authentication Header) containing address sequences in order to return the packet to its originator. This approach is taken to make IPng host implementations from the start support the handling and reversal of source routes. This is the key for allowing them to work with hosts which implement the new features such as provider selection or extended addresses.
Three examples show how the address sequences can be used. In these examples, address sequences are shown by a list of individual addresses separated by commas. For example:
SRC, I1, I2, I3, DST
Where the first address is the source address, the last address is the destination address, and the middle addresses are intermediate addresses.
For these examples assume that two hosts, H1 and H2 wish to communicate. Assume that H1 and H2's sites are both connected to providers P1 and P2. A third wireless provider, PR, is connected to both providers P1 and P2.
----- P1 ------ / | \ / | \ H1 PR H2 \ | / \ | / ----- P2 ------
The simplest case (no use of address sequences) is when H1 wants to send a packet to H2 containing the addresses:
H1, H2
When H2 replied it would reverse the addresses and construct a packet containing the addresses:
H2, H1
In this example either provider could be used, and H1 and H2 would not be able to select which provider traffic would be sent to and received from.
If H1 decides that it wants to enforce a policy that all communication to/from H2 can only use provider P1, it would construct a packet containing the address sequence:
H1, P1, H2
This ensures that when H2 replies to H1, it will reverse the route and the reply it would also travel over P1. The addresses in H2's reply would look like:
H2, P1, H1
If H1 became mobile and moved to provider PR, it could maintain (not breaking any transport connections) communication with H2, by sending packets that contain the address sequence:
H1, PR, P1, H2
This would ensure that when H2 replied it would enforce H1's policy of exclusive use of provider P1 and send the packet to H1 new location on provider PR. The reversed address sequence would be:
H2, P1, PR, H1
The address sequence facility of IPng can be used for provider selection, mobility, and readdressing. It is a simple but powerful capability.
9.0 IPng Quality-of-Service Capabilities
The Flow Label and the Priority fields in the IPng header may be used by a host to identify those packets for which it requests special handling by IPng routers, such as non-default quality of service or "real-time" service. This capability is important in order to support applications which require some degree of consistent throughput, delay, and/or jitter. These type of applications are commonly described as "multi- media" or "real-time" applications.
9.1 Flow Labels The 24-bit Flow Label field in the IPv6 header may be used by a source to label those packets for which it requests special handling by the IPv6 routers, such as non-default quality of service or "real-time" service. This aspect of IPv6 is, at the time of writing, still experimental and subject to change as the requirements for flow support in the Internet become clearer. Hosts or routers that do not support the functions of the Flow Label field are required to set the field to zero when originating a packet, pass the field on unchanged when forwarding a packet, and ignore the field when receiving a packet.
A flow is a sequence of packets sent from a particular source to a particular (unicast or multicast) destination for which the source desires special handling by the intervening routers. The nature of that special handling might be conveyed to the routers by a control protocol, such as a resource reservation protocol, or by information within the flow's packets themselves, e.g., in a hop-by-hop option.
There may be multiple active flows from a source to a destination, as well as traffic that is not associated with any flow. A flow is uniquely identified by the combination of a source address and a non- zero flow label. Packets that do not belong to a flow carry a flow label of zero.
A flow label is assigned to a flow by the flow's source node. New flow labels must be chosen (pseudo-)randomly and uniformly from the range 1 to FFFFFF hex. The purpose of the random allocation is to make any set of bits within the Flow Label field suitable for use as a hash key by routers, for looking up the state associated with the flow.
All packets belonging to the same flow must be sent with the same source address, same destination address, and same non-zero flow label. If any of those packets includes a Hop-by-Hop Options header, then they all must be originated with the same Hop-by-Hop Options header contents (excluding the Next Header field of the Hop-by-Hop Options header). If any of those packets includes a Routing header, then they all must be originated with the same contents in all extension headers up to and including the Routing header (excluding the Next Header field in the Routing header). The routers or destinations are permitted, but not required, to verify that these conditions are satisfied. If a violation is detected, it should be reported to the source by an ICMP Parameter Problem message, Code 0, pointing to the high-order octet of the Flow Label field (i.e., offset 1 within the IPv6 packet) [12].
Routers are free to "opportunistically" set up flow- handling state for any flow, even when no explicit flow establishment information has been provided to them via a control protocol, a hop-by-hop option, or other means. For example, upon receiving a packet from a particular source with an unknown, non-zero flow label, a router may process its IPv6 header and any necessary extension headers as if the flow label were zero. That processing would include determining the next-hop interface, and possibly other actions, such as updating a hop-by-hop option, advancing the pointer and addresses in a Routing header, or deciding on how to queue the packet based on its Priority field. The router may then choose to "remember" the results of those processing steps and cache that information, using the source address plus the flow label as the cache key. Subsequent packets with the same source address and flow label may then be handled by referring to the cached information rather than examining all those fields that, according to the requirements of the previous paragraph, can be assumed unchanged from the first packet seen in the flow.
9.2 Priority
The 4-bit Priority field in the IPv6 header enables a source to identify the desired delivery priority of its packets, relative to other packets from the same source. The Priority values are divided into two ranges: Values 0 through 7 are used to specify the priority of traffic for which the source is providing congestion control, i.e., traffic that "backs off" in response to congestion, such as TCP traffic. Values 8 through 15 are used to specify the priority of traffic that does not back off in response to congestion, e.g., "real-time" packets being sent at a constant rate.
For congestion-controlled traffic, the following Priority values are recommended for particular application categories:
0 Uncharacterized traffic
1 "Filler" traffic (e.g., netnews)
2 Unattended data transfer (e.g., email)
3 (Reserved)
4 Attended bulk transfer (e.g., FTP, HTTP, NFS)
5 (Reserved)
6 Interactive traffic (e.g., telnet, X)
7 Internet control traffic (e.g., routing protocols, SNMP)
For non-congestion-controlled traffic, the lowest Priority value (8) should be used for those packets that the sender is most willing to have discarded under conditions of congestion (e.g., high-fidelity video traffic), and the highest value (15) should be used for those packets that the sender is least willing to have discarded (e.g., low-fidelity audio traffic). There is no relative ordering implied between the congestion-controlled priorities and the non-congestion-controlled priorities.
Parameter Quality of Service IPv6
Kolom Priority dan Flow Label di IPv6 header digunakan oleh source untuk mengidentifikasi paket yang membutuhkan penanganan khusus oleh router di jaringan. Konsep flow di IP merupakan perubahan cukup drastis dari protokol connectionless lainnya. Beberapa orang menyebut konsep flow sebagai connectionless virtual circuit karena semua paket dengan flow label yang sama akan di tangani secara sama, dan jaringan akan melihat semua paket tersebut sebagai entitas yang sama.
Penanganan khusus untuk Quality of Service yang tidak standard sangat penting untuk mendukung aplikasi yang membutuhkan throughput yang tergaransi, delay rendah, dan / atau jitter, seperti multimedia atau komunikasi real-time seperti internet telepon. Parameter QoS adalah perkembangan dari kemampuan Type of Service (ToS) di IPv4.
Kolom prioritas memungkinkan pengirim untuk menentukan prioritas paket yang di inginkan. Nilai 0-7 digunakan untuk trafik congestion-controlled (kepadatan yang terkontrol), atau traffic yang back-off (mundur / menyingkir) karena adanya kepadatan (congestion) di jaringan, seperti segmen TCP. Untuk trafik jenis ini, nilai prioritas berikut di rekomendasikan:
0 – trafik yang tidak terkarakterisasi
1 – trafik yang di-"filler" (contoh, netnews)
2 – data tranfer automatis (contoh, email)
3 - (reserved)
4 – data transfer dalam jumlah besar (contoh, FTP, NFS)
5 - (reserved)
6 – trafik interaktif (contoh, telnet, X)
7 – trafik kontrol internet (contoh, protokol routing, SNMP)
Untuk trafik non-congestion-controlled, nilai terendah prioritas adalah delapan (8) dan digunakan oleh pengirim yang bersedia untuk membuang paket tersebut jika jaringan padat (contoh, trafik high-fidelity video traffic), dan nilai prioritas tertinggi lima belas (15) digunakan untuk paket yang oleh pengirim tidak terlalu mau dibuang (contoh, trafik low-fidelity audio). Tidak kelas antara prioritas congestion-controlled dan non-congestion-controlled.
Flow Label digunakan oleh pengirim untuk menunjukan paket yang memerlukan QOS yang tidak standard. Permohonan penanganan akan di teruskan ke router di jaringan melalui protokol kontrol, seperti Resource Reservation Protocol (RSVP), atau dengan informasi yang ada dalam aliran (flow) paket itu sendiri, seperti hop-by-hop option. Kemungkinan saja ada beberapa flow yang aktif antara pengirm dan tujuan, termasuk trafik yang tidak berasosiasi dengan aliran / flow manapun, yaitu, Flow Label = 0. Sebuah flow dapat secara unik teridentifikasi dengan kombinasi source address dan flow label yang tidak nol. Teknik ini di IPv6 masih dalam tahap experimen. Keamanan IPv6 Pada hari ini keamanan internet menjadi penting, terutama jika kita ingin mengirimkan data yang sensitif melalui Internet. Walaupun banyak aplikasi TCP/IP hari ini yang memiliki mekanisme security sendiri, banyak yang berargumen bahwa sebaiknya security dilalukan pada lapisan protokol serendah mungkin. IPv4 memang mempunyai sedikit kemampuan security, tapi authentikasi dan mekanisme privacy umumnya tidak ada. IPv6 membuat dua mekanisme security masuk ke dalam protokol-nya. Mekanisme yang pertama adalah IP Authentication Header (RFC 1826), extension header ini menjamin integrasitas data dan authentikasi untuk paket IP. Ada banyak teknik authentikasi yang akan didukung, penggunaan algorithma keyed Message Digest 5 (MD5, di jelaskan di RFC 1321) untuk menjamin interoperabilitas. Penggunaan option ini akan menghilangkan sebagian besar dari serangan di jaringan, seperti IP address spoofing. Kemampuan menjadi tambahan penting bagi kelemahan mekanisme IP source routing. Pada IPv4 yang tidak mempunyai mekanisme authentikasi host, yang dapat dilakukan oleh IPv4 hanya memberikan host address pengirim seperti yang di beritahukan oleh host pengirim dalam IP datagram. Dengan adanya informasi authentikasi di Internet / Network layer, IPv6 memberikan proteksi yang lebih baik ke protokol dan servis yang lebih tinggi yang pada hari ini kekurangan proses authentikasi. Mekanisme ke dua adalah IP Encapsulating Security Payload (ESP, di jelaskan di RFC 1827), sebuah extension header yang dapat menjamin integritas dan kerahasiaan data untuk paket IP. Meskipun definisi ESP tidak tergantung pada algoritma tertentu, Data Encryption Standard menggunakan cipher block chaining mode (DES-CBC) di usulkan sebagai standard encryption untuk menjamin interoperability. Mekanisme ESP dapat digunakan untuk mengenkrip semua IP paket (tunnel-mode ESP) atau hanya mengenkrip bagian payload dari lapisan atas saja (transport-mode ESP). Feature ini akan menambah keamanan dari trafik IP tanpa perlu terlalu banyak bersusah payah seperti sekarang. Authentikasi di lakukan secara end-to-end selama komunikasi berlangsung dan akan membuat aman komunikasi walaupun tanpa adanya firewall sekalipun. Beberapa menduga kemungkinan firewall akan hilang dengan digunakannya IPv6, walaupun tidak ada bukti sampai sekarang. ICMPv6 Internet Control Message Protocol (ICMP) memberikan berita error dan informasi yang tidak diberikan oleh IP. ICMP untuk IPv6 (ICMPv6) mempunyai fungsi yang sama dengan ICMP untuk IPv4 dan menggunakan bentuk message yang sama, dan menjadi bagian integral dari IPv6. Message ICMPv6 di bawa oleh IPv6 datagram dengan kolom Next Header bernilai 58. Message ICMPv6 error adalah: Destination Unreachable: dikirim jika paket tidak dapat dikirim ke tujuan karena alasan selain kepadatan trafik. Packet Too Big: dikirim oleh router jika ada paket yang terlalu panjang & lebih panjang dari MTU dari link keluar, sehingga tidak dapat di forward / di kirim. Time Exceeded: dikirim oleh router jika Hop Limit paket mencapai nol atau jika semua fragmen dari datagram tidak di terima dalam waktu reassembly fragmen yang ditentukan. Parameter Problem: dikirim oleh sebuah node yang menemukan program di kolom dalam header paket yang menyebabkan node tersebut tidak dapat memproses header. Message ICMPv6 informational adalah Echo Request dan Echo Reply (digunakan oleh node IPv6 untuk keperluan diagnostik), juga Group Membership Query, Group Membership Report, dan Group Membership Reduction (semua digunakan untuk menyampaikan informasi tentang keanggotaan di multicast group dari node ke router neighbor mereka. Migrasi ke IPv6
11. IPng Transition Mechanisms The key transition objective is to allow IPv6 and IPv4 hosts to interoperate. A second objective is to allow IPv6 hosts and routers to be deployed in the Internet in a highly diffuse and incremental fashion, with few interdependencies. A third objective is that the transition should be as easy as possible for end- users, system administrators, and network operators to understand and carry out. The IPng transition mechanisms are a set of protocol mechanisms implemented in hosts and routers, along with some operational guidelines for addressing and deployment, designed to make transition the Internet to IPv6 work with as little disruption as possible [16].
The IPng transition mechanisms provides a number of features, including:
Incremental upgrade and deployment. Individual IPv4 hosts and routers may be upgraded to IPv6 one at a time without requiring any other hosts or routers to be upgraded at the same time. New IPv6 hosts and routers can be installed one by one. Minimal upgrade dependencies. The only prerequisite to upgrading hosts to IPv6 is that the DNS server must first be upgraded to handle IPv6 address records. There are no pre-requisites to upgrading routers. Easy Addressing. When existing installed IPv4 hosts or routers are upgraded to IPv6, they may continue to use their existing address. They do not need to be assigned new addresses. Administrators do not need to draft new addressing plans. Low start-up costs. Little or no preparation work is needed in order to upgrade existing IPv4 systems to IPv6, or to deploy new IPv6 systems. The mechanisms employed by the IPng transition mechanisms include: An IPv6 addressing structure that embeds IPv4 addresses within IPv6 addresses, and encodes other information used by the transition mechanisms. A model of deployment where all hosts and routers upgraded to IPv6 in the early transition phase are "dual" capable (i.e. implement complete IPv4 and IPv6 protocol stacks). The technique of encapsulating IPv6 packets within IPv4 headers to carry them over segments of the end-to-end path where the routers have not yet been upgraded to IPv6. The header translation technique to allow the eventual introduction of routing topologies that route only IPv6 traffic, and the deployment of hosts that support only IPv6. Use of this technique is optional, and would be used in the later phase of transition if it is used at all. The IPng transition mechanisms ensures that IPv6 hosts can interoperate with IPv4 hosts anywhere in the Internet up until the time when IPv4 addresses run out, and allows IPv6 and IPv4 hosts within a limited scope to interoperate indefinitely after that. This feature protects the huge investment users have made in IPv4 and ensures that IPv6 does not render IPv4 obsolete. Hosts that need only a limited connectivity range (e.g., printers) need never be upgraded to IPv6.
The incremental upgrade features of the IPng transition mechanisms allow the host and router vendors to integrate IPv6 into their product lines at their own pace, and allows the end users and network operators to deploy IPng on their own schedules.
Transisi ke IPv6 sudah berjalan walaupun sebagian Internet & TCP/IP user belum melihat ada-nya software baru di sistem atau jaringan mereka. Sebelum IPv6 dapat dikembangkan secara luas, infrastruktur jaringan harus di upgrade dan menggunakan software yang dapat mengakomodasi protokol yang baru ini. Selain itu, format address yang baru harus diakomodasi oleh setiap protokol TCP/IP yang menggunakan address. Contoh, Domain Name System (DNS), telah mendefinisikan source record AAAA untuk IPv6 128-bit, sementara IPv4 yang hanya 32-bit menggunakan A record. Juga di definisikan domain address IP6.INT, sementara IPv4 menggunakan domain ARPA. Protokol lain juga harus di modifikasi untuk IPv6 termasuk DHCP, Address Resolution Protocol (ARP), dan protokol routing IP seperti Routing Information Protocol (RIP), Open Shortest Path First (OSPF), dan Border Gateway Protocol (BGP). Sesudah router dan backbone di upgrade untuk menggunakan IPv6, baru host dapat mulai melakukan transisi ke protokol yang baru dan aplikasi yang telah di modifikasi untuk memperoleh keuntungan maksimal dari kemampuan IPv6. Pada saat IPv4 menjadi resmi di ARPANET standar tahun 1993, penggunakan protokol sebelumnya langsung di hentikan, dan tidak ada rencana interoperabilitas antara protokol yang lama dan yang baru. Pada IPv6, kita tidak akan & tidak dapat melakukan hal itu. Walaupun percobaan IPv6 mulai dilakukan di tahun 1996, dan penggunaan pertama di backbone Internet di tahun 1997, tidak ada jadwal (dan keinginan) untuk langsung mengubah IPv4 menjadi IPv6. Keduanya, IPv4 dan IPv6, akan berjalan bersamaan untuk beberapa tahun mendatang. Hal ini melihat kenyataan bahwa host yang menggunakan IPv4 hari ini sudah sedemikian besarnya, tidak ada kebijakan apapun yang masuk akal untuk mengubah secara cepat. Walaupun IPv6 tampak di backbone yang besar hari ini, ISP kecil dan administrator jaringan LAN tidak akan mengkonversikan jaringannnya tanpa melihat keuntungan yang nyata dari IPv6.
Adanya IPv4 dan IPv6 secara bersama di jaringan berarti berbagai protokol dan prosedur yang berbeda harus di akomodasi. Skenario jangka pendek yang sering digunakan, jaringan IPv6 di interkoneksikan melalui backbone IPv4. Router di ujung-ujungnya adalah node IPv4-compatible IPv6 dengan IPv4 dan router interface akan diberikan IPv4-compatible IPv6 address. Paket IPv6 dikirim melalui jaringan IPv4 dengan mengenkapsulasikannya paket tersebut di IPv4 header, teknik ini di sebut tunneling. Tunneling dapat juga digunakan jika sebuah organisasi ingin mengubah sebagian subnet-nya menjadi IPv6. Proses tunneling ini dapat digunakan untuk link host-host, router-router, atau host-router. Walaupun penggunaan IPv6 sukar untuk di elakan, tekanan pasar untuk terus mengembangkan kemampuan IPv4 terjadi dengan keras. Keterbatasan address IPv4, dapat dikurangi dengan menggunakan Classless Interdomain Routing (CIDR). Bagi pengguna yang tidak tetap alokasi IP address dilakukan menggunakan Dynamic Host Configuration Protocol (DHCP). Manajemen Quality of service dapat di tangani menggunakan Resource Reservation Protocol (RSVP). Prosedur IP Authentication Header dan Encapsulating Security Payload dapat dilakukan bagi IPv4 dan IPv6. Hal ini tidak berarti para vendor menunggu. IPv6 telah muncul di berbagai barang / produk. Beberapa vendor router utama, seperti Bay Networks, Cisco Systems, Ipsilon Networks, Penril Datability Networks, danTelebit Communications. Satu hal yang penting dalam IPv6 adalah 6bone (http://www.6bone.net/) sebuah jaringan testbed yang menyebar antara amerika utara, eropa, jepang yang mulai beroperasi tahun 1996. 6bone adalah backbone IPv6 virtual yang di operasikan di atas backbone IPv4 yang hari ini kita gunakan. 6bone terutama di rancang untuk merouting paket IPv6. Salah satu tujuan akhir dari kerjasama ini adalah untuk ujicoba implementasi IPv6 dan mendefinisikan kebijakan dan prosedur yang perlu dilakukan untuk mendukung IPv6. Di samping itu, 6bone dapat mendemonstrasikan kemampuan IPv6 dan memberikan dasar kepercayaan user terhadap protokol yang baru ini. Pada saat ini ditulis, hanya ada dua (2) entitas dari Indonesia yang tergabung di 6bone yaitu CBN dan Indosat. Kita perlu menggalakan lebih banyak lagi ujicoba IPv6 di Indonesia untuk tergabung ke 6bone. Untuk sebagian besar user, transisi dari IPv4 ke IPv6 akan terjadi pada saat system operasi host mereka di update. Dalam banyak kasus, kemungkinan hal ini akan berarti system beroperasi dengan dua versi IP. Untuk jaringan dengan user yang banyak, akan lebih masuk akal menggunakan model yang digunakan oleh Internet global yang besar. Menggunakan topologi dan pengaddressan jaringan IPv6 yang di disain dengan baik, membuat testbed jaringan IPv6 dengan router dan DNS dan secara perlahan melakukan migrasi aplikasi, user, dan subnet ke backbone IPv6 yang baru. Pelajaran yang di peroleh dari aktifitas 6bone akan sangat berguna bagi jaringan kecil maupun backbone Internet.
Referensi
- http://www.id-ipv6.com/blog/pengguna-ipv6/sistem-statistik/
- http://id.wikipedia.org/wiki/Alamat_IP_versi_6