IP Versi 6
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.
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:
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:
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.
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
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.
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.
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.