Introduction to Internet Protocol version 6

Internet Protocol version 6 সংক্ষেপে IPv6 হলো TCP/IP প্রটোকল সুইটের Internet লেয়ারের (OSI মডেলের ক্ষেত্রে Network লেয়ার) একটি প্রটোকল যা ইন্টারনেটে যুক্ত প্রতিটি নেটওয়ার্ক ডিভাইসকে একটি স্বতন্ত্র পরিচয় প্রদান করে। বর্তমানে বহুল ব্যবহৃত IPv4 এর সীমাবদ্ধতা দূর করার লক্ষ্যে Internet Engineering Task Force (IETF) এই IPv6 ডেভেলপ করার কাজ শুরু করে। বিশ্বের বিভিন্ন দেশে ইতিমধ্যে IPv6 এর প্রয়োগ শুরু হয়েছে যা ক্রমেই বৃদ্ধি পাচ্ছে।

IPv6……… কেন?

IPv4 হলো একটি 32 বিটের এ্যাড্রেস স্পেস যার মাধ্যমে 4.3 বিলিয়ন এ্যাড্রেস ব্যবহার করা সম্ভব। ক্রমবর্ধমান ইন্টারনেটের এই যুগে প্রতিদিন অসংথ্য নেটওয়ার্ক ডিভাইস ইন্টারনেটের সাথে যুক্ত হচ্ছে আর প্রতিটির জন্য একটি করে IPv4 এ্যাড্রেসের প্রয়োজন হচ্ছে। ইন্টারনেটের বিভিন্ন রিসোর্স এনালিষ্ট প্রতিষ্ঠানের ভাষ্যমতে, খুব শীঘ্রই এই IPv4 এর এ্যাড্রেস সংখ্যা শেষ হয়ে যাবে, আর এটা হবে ২০২০ সালের মধ্যেই। Internet Assigned Numbers Authority (IANA) ২০১১ সালের জানুয়ারীতে বিভিন্ন Regional Internet Registries (RIRs) সমূহকে IPv4 এর সর্বশেষ /8 (আট) ব্লক বরাদ্দ দিয়েছে। RIRs এর মাধ্যমে এই এ্যাড্রেস ব্লকসমূহ বিশ্বের বিভিন্ন প্রান্তের আই.এস.পি সমূহ বরাদ্দ পাচ্ছে যার অবশিষ্ট আই.পি সংখ্যা ক্রমান্বয়ে হ্রাস পাচ্ছে। IPv4 এ্যাড্রেস স্পেসের এই অপ্রতুলতার কারণেই নতুন ধরণের একটি নেটওয়ার্ক লেয়ার প্রটোকলের প্রয়োজনীয়তা দেখা দেয় যার ধারাবাহিকতায় IPv6 এর আবির্ভাব ঘটে। IPv6 হলো একটি 128 বিটের এ্যাড্রেস যা প্রায় 340 Undecillion এ্যাড্রেস প্রদান করে। (340 Undecillion এর অর্থ হলো 340 এর পরে 36 টি 0)।
ইতিমধ্যে বিভিন্ন প্রতিষ্ঠান IPv6 এর ব্যবহার শুরু করেছে। সমগ্র ইন্টারনেটের সব নেটওয়ার্ক ডিভাইসের মধ্যে IPv6 এর প্রয়োগ শেষ করা যথেষ্ট সময় সাপেক্ষ। এটি একটি চলমান প্রক্রিয়া যা কোন দিন-তারিখ নির্ধারণ করে শেষ করা সম্ভব নয়। একটি পরিসংখ্যানের তথ্য মতে, ২০১৪ সালের জুন মাস পর্যন্ত ইন্টারনেটে IPv6 এর ব্যবহার হলো মাত্র 4% । এ থেকে প্রতীয়মান হয় যে, ইন্টারনেটে IPv4 এখনো বহাল তবিয়তেই আছে। IPv4 থেকে IPv6 এ রূপান্তরের এই সময়টিতে ইন্টারনেটে উভয় প্রটোকলই ব্যবহার হচ্ছে। IPv4 থেকে IPv6 এ রূপান্তরের প্রক্রিয়াটি সহজ করার জন্য IETF বিভিন্ন পদ্ধতি বের করেছে যা নিম্নরূপঃ
১) Dual Stack: Dual Stack হলো এমন একটি পদ্ধতি যার মাধ্যমে কোন একটি নেটওয়ার্কে একই সাথে IPv4 ও IPv6 প্রটোকল ব্যবহার করা যায়। Dual Stack সাপোর্ট করে এমন ডিভাইসসমূহ একই সাথে IPv4 ও IPv6 রান করতে

২) Tunneling: Tunneling হলো এমন একটি পদ্ধতি যার মাধ্যমে একটি IPv4 নেটওয়ার্কের মধ্য দিয়ে IPv6 এর প্যাকেটসমূহ চলাচল করতে পারে। এক্ষেত্রে IPv6 এর প্যাকেটসমূহ একটি IPv4 প্যাকেটের মধ্যে Encapsulated অবস্থায় থাকে।

৩) Translation: Translation পদ্ধতিতে একটি IPv4 ও IPv6 প্রটোকল যুক্ত ডিভাইসের মধ্যে যোগাযোগের জন্য NAT64 নামক একটি ট্রান্সলেশন টেকনিক ব্যবহৃত হয়। NAT64 এর মাধ্যমে একটি IPv4 এ্যাড্রেস থেকে IPv6 এ্যাড্রেসে এবং একটি IPv6 এ্যাড্রেস থেকে IPv4 এ্যাড্রেসে প্যাকেটসমূহকে ট্রান্সলেট করা হয়।

IPv6 Addressing

একটি IPv4 এ্যাড্রেস হলো 32 বিটের বাইনারী ভ্যালু। যেমনঃ
11000000101010000000101000000001
একজন মানুষের পক্ষে এই 32 বিটের স্ট্রিং মনে রাখা কঠিন, তাই এই এ্যাড্রেসসমূহকে Dotted Decimal ফরম্যাটে রিপ্রেজেন্ট করা হয়। বাইনারী প্যাটার্ণের প্রতিটি Byte (1 Byte = 8 bit) কে একটি ডট (.) দ্বারা আলাদা করা হয়। এই আলাদা অংশগুলোর প্রতিটিকে এক একটি Octet বলে।
11000000.10101000.00001010.00000001
এখানে বাইনারী 32 বিটকে প্রতিটি আট বিটের চারটি Octet এ বিভক্ত করা হয়েছে। অতঃপর প্রতিটি Octect এর বাইনারী আটটি বিটকে ডেসিমাল ভ্যালুতে রূপান্তর করা হয়।যেমনঃ
11000000.10101000.00001010.00000001 কে নিম্নরূপে প্রকাশ করা হয়।
192.168.10.1
একে Dotted Decimal ফরম্যাট বলে। ডিভাইসসমূহ তাদের অপারেশনের সময় Binary প্যাটার্ণ ব্যবহার করে। Dotted Decimal ফরম্যাট শুধুমাত্র মানুষের বুঝার ও মনে রাখার সুবিধার্থে ব্যবহৃত হয়।
অপরদিকে IPv6 এর ক্ষেত্রে একটি IPv6 এ্যাড্রেসকে Hexadecimal ভ্যালু দিয়ে প্রকাশ করা হয়। Hexadecimal হলো একটি 16 ভিত্তিক নাম্বারিং সিস্টেম। এই 16 ভিত্তিক নাম্বারিং সিস্টেমে 0 থেকে 9 পর্যন্ত সংখ্যা এবং A থেকে F পর্যন্ত বর্ণসমূহ ব্যবহৃত হয়। চিত্রে একই Decimal নম্বরের Binary ও Hexadecimal রূপ কি রকম হয় তার কিছু উদাহরণ দেওয়া হলো।

IPv6 এ্যাড্রেস হলো একটি 128 বিটের এ্যাড্রেস যা Hexadecimal ভ্যালুর একটি স্ট্রিং আকারে লেখা হয়। IPv6 এ্যাড্রেস লেখার ফরম্যাটটি হলো X:X:X:X:X:X:X:X যেখানে প্রতিটি X চারটি Hexadecimal ডিজিটকে রিপ্রেজেন্ট করে। যেমনঃ 0000 বা FFFF । প্রতিটি Hexadecimal ডিজিটকে আবার চারটি বাইনারী ডিজিট দ্বারা প্রকাশ করা হয়। যেমনঃ একটি F এর মান হলো 15, অর্থাৎ বাইনারীতে 1111 । তাহলে প্রতিটি X হলো 16 টি বাইনারী ডিজিট বা 16 বিট।

প্রতিটি X কে নিজেদের মধ্যে (:) দ্বারা পৃথক রাখা হয়। পৃথকীকৃত প্রতিটি অংশকে এক একটি Hextet বলে। (IPv4 এর ক্ষেত্রে আমরা প্রতিটি ৮ বিটকে একটি Octect বলি। কিন্তু এখানে Hextet শব্দটি কোন স্বীকৃত শব্দ নয়, আমরা শুধুমাত্র বুঝার সুবিধার্থে ব্যবহার করছি)।
নিচে কিছু IPv6 এ্যাড্রেসের নমুনা দেওয়া হলোঃ
2001 : 0DB8 : 0000 : 1111 : 0000 : 0000 : 0000 : 0200
2001:0DBD:0000:00A3:ABCD:0000:0000:1234
FE80:0000:0000:0000:0123:4567:89AB:CDEF
তবে সব সময় উপরিউক্ত পদ্ধতিটি IPv6 এ্যাড্রেস লেখার জন্য আদর্শ পদ্ধতি নয়। IPv6 এ্যাড্রেস লেখার সময় অপ্রয়োজনীয় ডিজিট সংখ্যা কমিয়ে IPv6 এ্যাড্রেসটিকে ছোট আকারে লেখার জন্য দুইটি নিয়ম নিম্নে দেওয়া হলোঃ
নিয়ম-১: একটি IPv6 এ্যাড্রেসের আকার ছোট করার জন্য প্রতিটি 16 bit section বা Hextet এর অগ্রবর্তী 0 সমূহকে বাদ দেওয়া হয়। যেমনঃ
01AB এর পরিবর্তে লেখা হয় 1AB
09F0 এর পরিবর্তে লেখা হয় 9F0
0A00 এর পরিবর্তে লেখা হয় A00
00AB এর পরিবর্তে লেখা হয় AB
এভাবে প্রতিটি Hextet এর শুধুমাত্র অগ্রবর্তী 0 গুলোকেই বাদ দেওয়া যাবে, পরেরগুলোকে নয়।
নিচের চিত্রে কিছু উদাহরণ দেওয়া হলোঃ

নিয়ম-২: IPv6 এ্যাড্রেসের আকার ছোট করার জন্য পাশাপাশি Hextet এর মধ্যকার ধারাবাহিক 0 সমূহের পরিবর্তে একটি ডাবল কোলন (::) ব্যবহার করা হয়। যেমনঃ
2001:0DBD:0000:1111:0000:0000:0000:0200 কে নিম্নরূপভাবে লেখা যায়ঃ
2001:DBD:0:1111::200
এক্ষেত্রে একটি IPv6 এ্যাড্রেসে শুধুমাত্র একটি ডাবল কোলন (::) ব্যবহার করা যাবে।
যেমনঃ
2001:0DBD:0000:0000:ABC1:0000:0000:0100
2001:DBD::ABC1::100 (ভূল)
2001:DBD::ABC1:0:0:100 (সঠিক)
অথবা
2001:DBD:0:0:ABC1::100 (সঠিক)

IPv6 Prefix Length

একটি IPv4 এ্যাড্রেসের ক্ষেত্রে আমরা নেটওয়ার্ক অংশ ও হোষ্ট অংশকে আলাদাভাবে চিহ্নিত করার জন্য সাবনেট মাস্ক অথবা Prefix Length/CIDR Notation ব্যবহার করি। কিন্তু IPv6 এর ক্ষেত্রে সাবনেট মাস্ক ব্যবহার করা হয় না, এক্ষেত্রে শুধু Prefix Length ব্যবহৃত হয়।

IPv6 এর ক্ষেত্রে Prefix Length 0 থেকে 128 পর্যন্ত হয়ে থাকে। একটি ল্যান বা অন্যান্য নেটওয়ার্কের জন্য সাধারণত Prefix Length হয় /64 । এই /64 দ্বারা বুঝায় IPv6 এ্যাড্রেসের প্রথম 64 বিট নেটওয়ার্ক অংশের (Prefix) এবং অবশিষ্ট 64 বিট হোষ্ট অংশের (Interface ID)।

IPv6 Address Types

IPv6 এ্যাড্রেসসমূহ তিন ধরণের। যেমনঃ
১. Unicast: কোন একটি IPv6 এনাবলড ডিভাইসকে আলাদাভাবে চিহ্নিত করার জন্য এর ইন্টারফেসে যে IPv6 এ্যাড্রেস ব্যবহার করা হয় তাকে IPv6 Unicast এ্যাড্রেস বলে। এক কথায় IPv6 Unicast এ্যাড্রেস হলো এমন একটি এ্যাড্রেস যা একটি নেটওয়ার্ক হোষ্টের জন্য ব্যবহৃত Valid এ্যাড্রেস।
২. Multicast: কোন একটি IPv6 এনাবলড ডিভাইস থেকে একই সাথে একাধিক ডিভাইসে প্যাকেট পাঠানোর জন্য যে এ্যাড্রেস ব্যবহৃত হয় তাকে IPv6 Multicast এ্যাড্রেস বলে।
৩. Anycast: একটি IPv6 Anycast এ্যাড্রেস হলো এমন একটি Unicast এ্যাড্রেস যা একই সাথে একাধিক ডিভাইসে ব্যবহার করা যায়।
IPv4 এ যেমন Broadcast এ্যাড্রেস রয়েছে তা IPv6 এ নাই, কিন্তু IPv6 এ একটি All-nodes multicast এ্যাড্রেস রয়েছে যা IPv4 এর Broadcast এ্যাড্রেসের মতোই কাজ করে।

1. IPv6 Unicast Address

একটি IPv6 Unicast এ্যাড্রেস দ্বারা একটি নেটওয়ার্ক ডিভাইসকে স্বতন্ত্রভাবে চিহ্নিত করা হয়। IPv6 এর ক্ষেত্রে ছয় ধরণের Unicast এ্যাড্রেস রয়েছে। যেমনঃ

* Global Unicast Address

IPv6 Global Unicast এ্যাড্রেস হলো এমন একটি এ্যাড্রেস যা ইন্টারনেটে প্রতিটি নেটওয়ার্ক ডিভাইসকে একটি স্বতন্ত্র পরিচয় প্রদান করে। একটি IPv6 Global Unicast এ্যাড্রেস IPv4 Public IP এর মতো কাজ করে। এই এ্যাড্রেসসমূহ ইন্টারনেটে রাউটেবল। Internet Committee for Assigned Names and Numbers (ICANN) ও Internet Assigned Numbers Authority (IANA) বিশ্বের পাঁচটি Regional Internet Registries (RIRs) এর মাধ্যমে বিভিন্ন আই.এস.পি সমূহকে এই Global Unicast এ্যাড্রেস প্রদান করে। IPv6 Global Unicast এ্যাড্রেস চেনার উপায় হলো, এর মোট 128 টি বিটের মধ্যে প্রথন তিনটি বিট হলো 001 । অর্থাৎ প্রথম Hextet অনুযায়ী বিবেচনা করলে, 2000 থেকে শুরু করে 3FFF পর্যন্ত যত এ্যাড্রেস আছে তার সবগুলোই হলো Global Unicast এ্যাড্রেস।

একটি Global Unicast এ্যাড্রেসের তিনটি অংশ রয়েছে।
i) Global Routing Prefix: Global Routing Prefix হলো এমন এক ধরণের Prefix বা এ্যাড্রেসের Network Portion যা আই.এস.পি গুলো তার ক্লায়েন্টকে প্রদান করে থাকে। বর্তমানে RIRs সমূহ /48 এর Global Routing Prefix প্রদান করছে। উদাহরণস্বরূপঃ একটি /48 যুক্ত এ্যাড্রেস 2001:0DB8:ACAD::/48 দ্বারা বুঝায় এর প্রথম তিনটি Hextet বা প্রথম 48 টি বিট হলো এ্যাড্রেসটির নেটওয়ার্ক অংশ, আর :: দ্বারা বুঝায় অবশিষ্ট 80 (আশি) টি বিটের সবগুলোই 0 অর্থাৎ হোষ্ট অংশ।

ii) Subnet ID: IPv6 এ্যাড্রেসের 49 থেকে 64 এই বিটগুলোর মাধ্যমে একটি প্রতিষ্ঠান বরাদ্দ পাওয়া আই.পি ব্লকের সাবনেট নির্ধারণ করে। একে Subnet ID বলে।
iii) Interface ID: ইহা হলো একটি IPv6 এ্যাড্রেসের হোষ্ট অংশ।
একটি IPv6 এ্যাড্রেস পড়ার সহজ উপায় হলো প্রতমেই এ্যাড্রেসটির Hextets সংখ্যা গননা করা। চিত্রে প্রদত্ত /64 Global Unicast এ্যাড্রেসের প্রথম চারটি Hextet হলো Network Portion; এর মধ্যে চতুর্থ Hextet টি হলো Interface ID ।

IPv6 Global Unicast এ্যাড্রেসসমূহ স্ট্যাটিক বা ডায়নামিক উভয়ভাবেই কনফিগার করা যায়।
Static Configuration (রাউটার)
Router#conf t
Router(config)# int fa0/0
Router(config-if)#ipv6 address 2001:db8:acad:1::1/64 
Router(config-if)#no shutdown
Static Configuration (কম্পিউটার)
কোন একটি উইন্ডোজ কম্পিউটারে IPv6 কনফিগারেশন প্রক্রিয়া IPv4 কনফিগার করার মতোই। ইহা নিচের চিত্রে দেওয়া হলো।

Dynamic Configuration
স্ট্যাটিক কনফিগারেশনের পাশাপাশি ডায়নামিকভাবেও IPv6 এ্যাড্রেস কনফিগার করা যায়। এজন্য দুইটি পদ্ধতি রয়েছে।
i. Stateless Address Auto Configuration (SLAAC)
ii. DHCPv6
Using SLAAC
SLAAC হলো এমন একটি পদ্ধতি যার মাধ্যমে একটি কম্পিউটারে কোন DHCPv6 সার্ভার ছাড়াই একটি IPv6 রাউটারের কাছ থেকে Address, Prefix Length ও Default Gateway এর তথ্য পেতে পারে। SLAAC এর ক্ষেত্রে ডিভাইসসমূহ প্রয়োজনীয় তথ্যের জন্য লোকাল রাউটারের ICMPv6 Router Advertisement (RA) ম্যাসেজ ব্যবহার করে। IPv6 রাউটারসমূহ ইহার লোকাল নেটওয়ার্কের ডিভাইসসমূহের কাছে একটি নির্দিষ্ট সময় পর পর এই ICMPv6 Router Advertisement (RA) ম্যাসেজ পাঠায়। Cisco রাউটারসমূহে এই সময় হলো 200 সেকেন্ড (বাই ডিফল্ট)। নেটওয়ার্কে সদ্য সংযুক্ত কোন IPv6 ডিভাইসকে এই Periodic আপডেটের জন্য অপেক্ষা করতে হয় না। এক্ষেত্রে ডিভাইসটি রাউটারের কাছে একটি Router Solicitation (RS) ম্যাসেজ পাঠায়। এই RS ম্যাসেজ পাওয়ার সাথে সাথে রাউটার উক্ত ডিভাইসের কাছে RA ম্যাসেজ পাঠায়। কোন একটি রাউটারের মধ্যে IPv6 এ্যাড্রেম কনফিগার করলেই কিন্তু রাউটারটি IPv6 রাউটার হিসেবে কাজ করে না। এজন্য রাউটারটির নিম্নলিখিত বৈশিষ্ঠ্য থাকতে হয়।
i. রাউটারটি বিভিন্ন নেটওয়ার্ক সমূহের মধ্যে IPv6 প্যাকেট বিনিময় করতে পারে কি না।
ii. রাউটারটিকে স্ট্যাটিক বা ডাইনামিকভাবে IPv6 এ্যাড্রেস কনফিগার করা আছে কি না।
iii. রাউটারটি লোকাল নেটওয়ার্কের ডিভাইসসমূহের কাছে RA ম্যাসেজ পাঠায় কি না।
একটি Cisco রাউটারে বাই ডিফল্ট IPv6 রাউটিং এনাবল করা থাকে না। রাউটারে IPv6 রাউটিং এনাবল করার জন্য Global Configuration মুডে নিচের কমান্ড দিতে হয়।
Router#conf t
Router(config)#ipv6 unicast-routing
একটি IPv6 RA ম্যাসেজের মধ্যে IPv6 এ্যাড্রেস, Prefix Length, Default Gateway এর তথ্য থাকে। IPv6 RA ম্যাসেজের মধ্যে এটাও বলা থাকে কোন ডিভাইস কিভাবে এই তথ্যসমূহ পাবে। একটি RA ম্যাসেজের ভিতর নিম্নোক্ত তিনটি অপশনের মধ্যে যেকোন একটি অপশন বিদ্যমান থাকে।
i. Option 1 – SLAAC Only: এই অপশনে বলা থাকে যে, ডিভাইসসমূহ শুধু RA ম্যাসেজের মধ্যকার Address, Prefix Length ও Default Gateway এর তথ্য ব্যবহার করবে কিন্তু DHCPv6 সার্ভারের কোন তথ্য পাবে না।
ii. Option 2 – SLAAC and DHCPv6: এই অপশনে বলা থাকে যে, ডিভাইসসমূহ শুধু RA ম্যাসেজের মধ্যকার Address, Prefix Length ও Default Gateway এর তথ্যের পাশাপাশি একটি DHCPv6 সার্ভার হতে DNS সম্পর্কিত তথ্য পাবে। এক্ষেত্রে DHCPv6 সার্ভারটি একটি Stateless DHCP সার্ভার হিসেবে কাজ করবে। এসময় DHCPv6 সার্ভারটি IP Allocation সংক্রান্ত কোন তথ্য নিজের রেকর্ডে রাখে না।
iii. Option3 – DHCPv6 Only: এই অপশনে বলা থাকে যে, ডিভাইসসমূহ RA ম্যাসেজের তথ্য ব্যবহার না করে স্বাভাবিক DHCP ডিসকভারি ও কুয়েরীর মাধ্যমে DHCPv6 সার্ভার হতে সকল তথ্যসমূহ পাবে। এক্ষেত্রে DHCPv6 সার্ভারটি IP Allocation এর সব তথ্য নিজের রেকর্ডে সংরক্ষণ করে অর্থাৎ ইহা Stateful DHCPv6 সার্ভার হিসেবে কাজ করে।
রাউটার সোর্স আই.পি হিসেবে নিজের Link Local এ্যাড্রেস ব্যবহার করে লোকাল ডিভাইসসমূহের কাছে ICMPv6 RA ম্যাসেজ পাঠায়। লোকাল ডিভাইসসমূহ রাউটারের এই Link Local এ্যাড্রেসটিকে নিজেদের Default Gateway হিসেবে ব্যবহার করে।
Using DHCPv6
IPv4 এর ক্ষেত্রে ডাইনামিকভাবে এ্যাড্রেস এ্যালোকেশনের জন্য DHCP সার্ভার ব্যবহৃত হয়, আর IPv6 এর ক্ষেত্রে ব্যবহৃত হয় DHCPv6 সার্ভার। কাজের দিক থেকে এই দুই ধরণের সার্ভার একই কাজ করে। কোন একটি ডিভাইস RA ম্যাসেজের তথ্যের ভিত্তিতে DHCPv6 সার্ভারের কাছ থেকে Option 2 (SLACC and DHCPv6) ও Option 3 (DHCPv6 Only) এর বিপরীতে যথাক্রমে আংশিক বা সম্পূর্ণ তথ্য পেতে পারে। তবে ডিভাইসের OS নিজের প্রয়োজন অনুযায়ী RA ম্যাসেজকে Ignore করে কোন একটি DHCPv6 সার্ভার হতে সকল তথ্য নিতে পারে।
Interface ID
যদি একটি ক্লায়েন্ট ডিভাইস রাউটারের RA ম্যাসেজের বদলে সম্পূর্ণভাবে একটি DHCPv6 সার্ভারের উপর নির্ভর করে (Option 3) তাহলে উক্ত ডিভাইস সার্ভারের নিকট থেকে Prefix ও Interface ID সহ একটি IPv6 Global Unicast এ্যাড্রেস পায়। যদি Option 1 অথবা Option 2 ব্যবহৃত হয় তাহলে ক্লায়েন্ট ডিভাইস এই পদ্ধতিতে Actual Interface ID পায় না। এক্ষেত্রে ক্লায়েন্ট ডিভাইস নিজে নিজেই একটি 64 বিটের Ramdom Interface ID বেছে নেয়। Random Interface ID নির্ধারণের ক্ষেত্রে ক্লায়েন্ট ডিভাইস একটি Random 64 bit নম্বর জেনারেট করে অথবা EUI-64 Process ব্যবহার করে।
Randomly Generated Interface ID
ক্লায়েন্ট ডিভাইসের OS ভার্সনের উপর ভিত্তি করে Random Interface ID জেনারেট হয় অথবা EUI-64 Process এ Interface ID জেনারেট হয়। Windows XP ও এর আগের ভার্সনগুলোতে EUI-64 Process ব্যবহৃত হতো, কিন্তু Windows Vista ও এর পরবর্তী ভার্সনগুলোতে ক্লায়েন্ট ডিভাইস নিজে নিজেই Random Interface ID জেনারেট করে।
EUI-64 Process
Extended Unique Identifier বা EUI-64 Process একটি Random 64 bit Interface ID তৈরী করার জন্য ক্লায়েন্ট ডিভাইসের 48 বিট MAC এ্যাড্রেসের মধ্যে আরো 16 টি বিট যোগ করে।
একটি MAC এ্যাড্রেসের সাধারণত দুইটি অংশ রয়েছে।
i. Organizationally Unique Identifier (OUI): OUI হলো IEEE কর্তৃক নির্ধারিত একটি 24 বিটের ভেন্ডর কোড।
ii. Device Identifier: Device Identifier হলো নির্দিষ্ট OUI এর অধীনে একটি 24 বিটের স্বতন্ত্র ভ্যালু।
EUI-64 Process একটি Random 64 bit Interface ID যেভাবে তৈরী হয় তা নিম্নরূপঃ
i. প্রথমে ক্লায়েন্ট ডিভাইসের MAC এর 24 বিট OUI নেওয়া হয়। এই 24 বিট OUI এর সাত নম্বর বিটটিকে Alter করা হয় অর্থাৎ, 0 থাকলে হয় 1 এবং 1 থাকলে হয় 0 ।
ii. 24 বিট OUI এর সাথে একটি 16 বিটের ভ্যালু FFFF যোগ করা হয়।
ii. সবশেষে ক্লায়েন্ট ডিভাইসের MAC এর শেষ 24 বিট অর্থাৎ Device Identifier যোগ করা হয়।

* Link Local Unicast Address

IPv6 এর ক্ষেত্রে Link Local শব্দটি দ্বারা একটি নির্দিষ্ট সাবনেটকে বুঝায়। Link Local Unicast এ্যাড্রেসের মাধ্যমে একটি ডিভাইস একই সাবনেটের অন্যান্য ডিভাইসসমূহের সাথে যোগাযোগ করে। এই Link Local এ্যাড্রেসসমূহ ইন্টারনেটে রাউটেবল নয়, এমনকি নিজ সাবনেটের বাইরেও রাউটেবল নয়। Link Local এ্যাড্রেসসমূহের একটি বড় তাৎপর্য হলো যে, প্রতিটি IPv6 এনাবলড ডিভাইসে এই এ্যাড্রেসসমূহ থাকতে হয়, যেখানে উক্ত ডিভাইসসমূহে Global Unicast এ্যাড্রেস থাকাটা ততটা গুরুত্বপূর্ণ নয়। যদি কোন একটি ডিভাইসের ইন্টারফেসে Link Local এ্যাড্রেস ম্যানুয়ালী কনফিগার করা না হয় তাহলে উক্ত ডিভাইস কোন DHCPv6 সার্ভারের সাহায্য ছাড়াই নিজে নিজে একটি Link Local এ্যাড্রেস স্বয়ংক্রিয়ভাবে তৈরী করে নেয়।

IPv6 Link Local এ্যাড্রেসের রেঞ্জ হলো FE80::/10 । /10 দ্বারা বুঝায়, প্রথম দশটি বিট হলো 1111 1110 10xx xxxx. অর্থাৎ প্রথম Hextet এর রেঞ্জ হলো 1111 1110 1000 0000 (FE80) থেকে 1111 1110 1011 1111 (FEBF) পর্যন্ত।
IPv6 Link Local এ্যাড্রেস ব্যবহারের কিছু উদ্দেশ্য হলোঃ
i. একই সাবনেটের ডিভাইসসমূহ তাদের Default Gateway হিসেবে রাউটারের Global Unicast এ্যাড্রেসের বদলে Link Local এ্যাড্রেস ব্যবহার করে থাকে।
ii. রাউটারসমূহ Link Local এ্যাড্রেস ব্যবহার করে নিজেদের মধ্যে ডাইনামিক রাউটিং প্রটোকল ম্যাসেজ বিনিময় করে।
iii. রাউটারের রাউটিং টেবিল IPv6 প্যাকেট ফরোয়ার্ড করার সময় Next Hop রাউটার আইডেন্টিফাই করতে Link Local এ্যাড্রেস ব্যবহার করে।
একটি Link Local এ্যাড্রেস স্ট্যাটিক ও ডাইনামিক উভয়ভাবেই কনফিগার করা যায়।
স্ট্যাটিক কনফিগারেশন
--------------------------
Router#conf t 
Router(config)#int fa0/1
Router(config-if)#ipv6 address FE80::1 link-local
ডাইনামিক কনফিগারেশন
-----------------------------
যখন কোন একটি ডিভাইসের ইন্টারফেসে একটি Global Unicast এ্যাড্রেস এ্যাসাইন করা হয় তখন উক্ত ডিভাইস সংশ্লিষ্ট ইন্টারফেসের জন্য স্বয়ংক্রিয়ভাবে একটি Link Local এ্যাড্রেস জেনারেট করে নেয়। FE80::/10 Prefix ও Interface ID ব্যবহার করে একটি Link Local এ্যাড্রেস ডাইনামিকভাবে তৈরী হয়। Cisco ডিভাইসসমূহ Link Local এ্যাড্রেসের Interface ID জেনারেট করার জন্য EUI-64 মেকানিজম ব্যবহার করে। ডাইনামিকভাবে জেনারেট হওয়া Link Local এ্যাড্রেসসমূহ মনে রাখা ও রেকর্ড রাখা বেশ কষ্টসাধ্য ব্যাপার।

2. IPv6 Multicast Address

IPv6 নেটওয়ার্কে একটি হোষ্ট থেকে কোন একটি প্যাকেট একই সাথে একাধিক হোষ্ট এ পাঠানোর জন্য IPv6 Multicast এ্যাড্রেস ব্যবহৃত হয়। IPv6 Multicast এ্যাড্রেসের Prefix হলো FF00::/8 ।
দুই ধরণের IPv6 Multicast এ্যাড্রেস রয়েছে। যেমনঃ
i. Assigned Multicast
ii. Solicited Multicast

* Assigned Multicast

এই এ্যাড্রেসসমূহ একটি নির্দিষ্ট গ্রুপের জন্য ব্যবহৃত হয়। একটি Assigned Multicast এ্যাড্রেস হলো এমন একটি এ্যাড্রেস যা কিছু নির্দিষ্ট হোষ্টের নিকট Multicast প্যাকেট পাঠানোর জন্য ব্যবহৃত হয় যে হোষ্টসমূহের মধ্যে একই ধরণের প্রটোকল বা সার্ভিস চলমান থাকে।
IPv6 Assigned Multicast গ্রুপসমূহ হলোঃ
a) FF02::1 বা All-nodes Multicast Group: এই গ্রুপে একটি সাবনেটের মধ্যে বিদ্যমান সকল IPv6 এনাবলড ডিভাইসের ইন্টারফেসসমূহ অন্তর্ভূক্ত থাকে। ইহা IPv4 Broadcast এ্যাড্রেসের ন্যায় কাজ করে। অর্থাৎ কোন একটি IPv6 এনাবলড ডিভাইসের ইন্টারফেস থেকে FF02::1 এই এ্যাড্রেসে কোন প্যাকেট পাঠানো হলে তা ঐ সাবনেটের সকল IPv6 এনাবলড ডিভাইসসমূহের কাছে পৌছাবে।

b) FF02::2 বা All-routers Multicast Groups: এই গ্রুপের মধ্যে শুধুমাত্র কোন একটি সাবনেটের IPv6 এনাবলড রাউটারসমূহ অন্তর্ভূক্ত। অর্থাৎ কোন একটি IPv6 এনাবলড ডিভাইসের ইন্টারফেস থেকে FF02::2 এই এ্যাড্রেসে কোন প্যাকেট পাঠানো হলে তা শুধুমাত্র ঐ সাবনেটের সকল IPv6 এনাবলড রাউটারসমূহের কাছে পৌছাবে।

* Solicited Node Multicast

একটি Solicited Node Multicast এ্যাড্রেস একটি All-nodes Multicast এ্যাড্রেসের মতোই কাজ করে। শুধুমাত্র পার্থক্য হলো যে, All-nodes Multicast এ্যাড্রেসের ক্ষেত্রে বহুসংখ্যক ডিভাইসের কাছে Multicast এ্যাড্রেস পাঠানো হয়। পক্ষান্তরে Solicited Node Multicast এ্যাড্রেস ব্যবহার করে প্রাপক ডিভাইস সংখ্যা কমানো হয়।
একটি Solicited Node Multicast এ্যাড্রেস হলো এমন একটি এ্যাড্রেস যার শুধুমাত্র শেষ 24 বিট Global Unicast Address এর সাথে মিল থাকে। অর্থাৎ, একটি Solicaited Node Multicast এ্যাড্রেসের শেষ 24 টি বিটের সাথে সংশ্লিষ্ট সাবনেটের যে ডিভাইসসমূহের Global Unicast এ্যাড্রেসের শেষ 24 বিট মিলবে শুধুমাত্র ঐ ডিভাইসসমূহের কাছে উক্ত Multicast প্যাকেটি পৌছাবে।
একটি ডিভাইসের কোন ইন্টারফেসে যখন কোন Global Unicast এ্যাড্রেস কনফিগার করা হয় তখন উক্ত ইন্টারফেসে স্বয়ংক্রিয়ভাবে একটি Solicited Multicast এ্যাড্রেস তৈরী হয়। একটি বিশেষ FF02:0:0:0:0:FF00::/104 Prefix এর সাথে Global Unicast এ্যাড্রেসের শেষ 24 টি বিট একত্রিত হয়ে একটি Solicited Node Multicast এ্যাড্রেস তৈরী হয়।
একটি Solicited Node Multicast এ্যাড্রেসের দুইটি অংশ নিম্নরূপঃ
i. FF02:0:0:0:0:FF00::/104 Multicast Prefix: ইহা হলো একটি Solicited Node Multicast এ্যাড্রেসের প্রথম 104 টি বিট।
ii. Last Significant 24 Bit: ইহা হলো একটি Solicited Node Multicast এ্যাড্রেসের শেষ 24 টি বিট। এই 24 টি বিটের সাথে সংশ্লিষ্ট ডিভাইসের Global Unicast বা Link-local Unicast এ্যাড্রেসের শেষ 24 টি বিটের হুবহু মিল থাকে।