I remember, many years back there was a block buster Oscar Winning SciFi/Futuristic movie release in 1985. Micheal J Fox starer "Back to the Future". We all usually saw that on local TV channel and was a great hit amongst all generation. They show many Futuristic gadgets and shows the Power of wireless communication & internet. At that age we take as the imaginary movie but as we saw the current era of wireless & Internet boom, one can match the ideology of great thinkers of that time that Communication will play the most critical part of daily life.
Mobile communication is the world most fastest growing form of communication. According to the stats, year-on-year growth is around 24% between 2000 & 2008. In 2000 mobile penetration stood at only 12%, it has surpassed the 50% mark by early 2008. China surpassed 600 Millions mark by the mid-2008, representing by far the world's largest mobile market. India had some 296 Million mobile subscribers by the end of July 2008. Pakistan is also amongst the emerging market of the World. Now a days if we can see mobile is in the use of every person from the Elite class to normal person (Dhabay wala/Dhobi etc). Internet is Global network (the World largest network) and is growing day by day, specially by the addition of 3G & 4G services.
Every communicating device now need IP address, to be the part of this Global communication World and its variant are amongst the most demanding VAS in Mobile services. In this was every device want to be on Internet, so they need IP address, but we don't have many – as only few Millions are left and we are talking about Billions of Mobile devices plus new emerging market of sensors network, RFIDs and other controllable electronic devices. IPv6 is the only answer and provide 340 Trillions Trillions Trillions IP addresses which make the huge room for all the current need of devices & surely for the future needs. I have read the case study of Japanese electronics market, where they have embed this IP technology in all possible electronic gadget and one of the most successful story is of Microwave Ovens & Refrigerators. Why one can use IP base communication in these devices? they have the answer: Still having so much educated, we are not taking maximum benefits of technology in our social life. Why we still maintaining inventories of items in refrigerators manually (many of us even didn't do it) and when any item was short, we have to go to the shops and having purchase them. Cant this be automated? Cant we monitor or communicate directly to it?
Consider a scenario, when most of the item are bar-coded or using RFIDs and Refrigerator works as the intelligent Inventory management and communication device. You can configure the min threshold of each item and whenever it cross that threshold it place the online order to the Shopping Mart like Macros/Metros etc and also generate alerts on the user's Mobile. These refrigerators & shopping marts are connected to single communication world. Items will be delivered in few minutes & bill will sent to the Mobile device through SMS or any specific cash payment software. Once it placed in the refrigerator, it updates its inventory & inform the user again. After verification mobile user can pay the bill, using e-Payment mechanisms. This whole scenario just need few minutes to complete the transaction cycle & tasks that we do in hours will be done in minutes. There are also many examples of other devices.
Now we have IPv6 with us, vendors like LG, Hitachi, Mistobishi etc have established the IP enabled refrigerators etc but the biggest challenge is to configure & manage the devices, specially IP address which is 128 bits long – represented in complex 32 Hex digits, How the normal/non-educated or non-techincal person will gonna configure the devices like these or configure the mobile devices or all other Plug n Play devices we can think of? One can answer the World mostly used IP management protocol DHCP (DHCPv6 for IPv6
). Yes can be! but if one needed to manage the home devices through mobile handset or other remote management tools and IP of these devices changes continuously (not fixed – basic concept of DHCP), it will be hard to identify the destination or needed some sort of Device Discovery mechanism. Why not to have a mechanism that every device generate its IP address by itself (dynamically) and it will remain fixed whenever it generate. This is the ICMPv6 feature called StateLess AutoConfiguration (SLAC)of IPv6 addresses.
The Challenges & Requirements
* Users devices like Mobile phones, Laptops, TV, Refrigerator, DVD & Music players, Microwave Over, IP Phone, IP cameras, most probably other home appliances like home security system, IPTV STBs etc need to have fixed IP address but w/o any user intervention.
* Users devices IP address should be Universally unique (work for Global/Site local/Link Local Unicast address).
* Duplicate Address Detection mechanism should be there to maintain the uniqueness.
* User devices should retain its IP address whenever it is alive & it will never be reuse by other devices.
* This all should be done dynamically and should be scalable.
StateLess AutoConfiguration (SLAC) help devices to generate Universally unique IPv6 address from its Universally unique MAC address. MAC is 48bits HEX address & is hard coded in NICs, even mobile technologies use MAC layer to communicate at DLL. ICMPv6 4 new messages are utilized to provide the functionality of Address Auto-configuration & Duplicate Address detection. Those are,
1. ICMPv6 Message Type-133 Router Solicitation (RS)
2. ICMPv6 Message Type-134 Router Advertisement (RA)
3. ICMPv6 Message Type-135 Neighbor Solicitation (NS)
4. ICMPv6 Message Type-136 Neighbor Advertisement (NA)
Lets discuss the functionality of each message & how can it provide help in SLAC based on the following scenario,
In the scenario, Router is connected to the switch configured with the IPv6 prefix on interface i.e. FEC0:0:0:1::/64. Over this segment number of machines are connected, which will used IPv6 SLAC to configure their IPv6 address from the same network address configured on router and also verify the duplicity check via DAD mechanism. Than they can able communicate with other destinations. Note: Routers cannot assign their IPv6 addresses to interfaces using stateless autoconfiguration. Stateless autoconfiguration is designed for nodes only.
The whole scenario need routers to inform the machine about its presence (Gateway discovery) and the prefix running on that segment (Prefix advertisement). Than machine need to configure the unique IPv6 address from that known prefix. To maintain the high level of uniqueness there should be some mechanism to generate unique host address to get connected to network address provided by router. For that purpose SLAC use Universally unique MAC address to make the unique Host address for individual machine. Consider if Machine has the MAC address of 00:B0:4A:5C:F0:38 than this 48bits MAC address will convert into 64 bits host address by inserting FFFE in between OUI & Vendor Assigned Number. Than finally flip the 7th Bit.
This 64 bits interface ID combines with prefix information provided by router, the Universally unique IPv6 is generated. Lets dig down to the message flows,
Once the router configure with IPv6 prefix address in EUI-64 format, its automatically start send Router Advertisement messages over the segment containing,
* One or more onlink IPv6 prefixes that nodes on the local link can use to automatically configure their IPv6 addresses
* Lifetime information for each prefix included in the advertisement
* Default router information (whether the router sending the advertisement should be used as a default router and, if so, the amount of time (in seconds) the router should be used as a default router)
* Additional information for hosts, such as the hop limit and MTU a host should use in packets that it originates
This Router Advertisement message is sent to All-Node Multicast Address [FF01::1]. When ever the machine with IPv6 protocol stack comes UP, it will become the part of few special multicast addresses including All-Node Multicast address and Solicited Node Multicast Address. So this message will be intercept by all the nodes on the segment and get the information about the prefix information running on that link.
Consider IPv6 machines boots UP and miss the RA message by second, now it has to wait for another RA message which will be few minutes away (Default is 200 secs on Cisco Routers). There is no need to wait, Machine can solicit the router for request the RA message. These messages are called Router Solicitation (RS), which is send to All-Router Multicast address [FF02::2]. In reply Router send RA message containing prefix information.
Now machine combines prefix information [FEC0:0:0:1/64] with interface ID [02B0:4AFF:FE5C:F038], forming unique IPv6 address i.e. FEC0:0:0:1:2B0:4AFF:FF5C:F038/64.
It is important for node to check for Duplicate Address through DAD before configuring the IP address. DAD is another ICMPv6 feature. The above IP address formed is initially called Tentative IPv6 Address. Machine send Neighbor Solicitation (NS) message on the segment with Unspecified Address [::] as the Source address and Solicited node Multicast address generated from Tentative IPv6 address [FF02::1:FF5C:F038] as the destination address.
If another machine over the same segment replies NS message, it means this IP address is already in use by any other machine. So source machine will drop the tentative IP address and wait for the manual IP configuration. If not than source machine is ready to go on the network with the IPv6 address [FEC0:0:0:1:2B0:4AFF:FF5C:F038].