With no more IPv4 IP addresses to give out, its time to switch to IPv6
If you are in the IT field or even a techy home computer user then you probably know what an IP address is and what it is used for. If not then we will tell you that an IP address is! An IP address is a number assigned to devices on a network that allows them to connect to and communicate with each other. Network devices such as computers, printers and switches have their own IP address and when they need to send data to another device on the network they use the IP address of that other device in order to send data to it. Keep in mind that the devices on the network will need to know about each other and that is not an automatic process but we can discuss that in another article.
Right now we are mostly using IPv4 IP addresses for public (external) and private (internal) addressing and IPv4 addresses are 32 bit binary numbers that have 4 octets that can contain values from 0-255. An example of a commonly used privately used address is 192.168.1.20 and you might see something like this assigned to your home computer from your broadband modem or wireless router. These types of IP addresses can be reasonably easy to remember depending on how many you have. And if your network devices are on the same network or subnet then each device will have a similar address such as 192.168.1.30 and 192.168.1.33 so you only need to memorize the last number (octet) for each device. Then again there is subnetting and address classes where it's not that simple and you may have a more complicated address scheme going on, especially in larger networks with multiple subnets in multiple locations. Finding your IP address is a fairly simple thing to do and you can read all about how to do that here. There are also IP addresses that are statically assigned to your computer and others that are dynamically assigned to your computer and you can read about that here.
There are 2 parts to an IP address you need to know about, the network portion and the host portion. This will determine how many addresses are reserved for different networks and how many are reserved for the hosts on those networks. There are designated classes that help to keep the network and host addresses in order and these are the main ones. Remember that octets are the numbers between the dots so octet1.octet2.octet3.octet4.
- Class A—The first octet is for the network address, and the last three octets are the host addresses. An IP address that has a number between 1 and 126 in the first octet is a Class A address.
- Class B—The first two octets are for the network address, and the last two octets are the host addresses. An IP address that has a number between 128 and 191 is a Class B address.
- Class C—The first three octets are for the network address, and the last octet is the host address. The first octet range of 192 to 223 is a Class C address.
- Class D—These are used for multicast addresses and have their first octets in the range 224 to 239.
- Class E—Reserved for future use and has the range of addresses in the first octet from 240 to 255.
With IPv4 there are about 4.3 billion total addresses and the ones that are publicly owned cannot be used in more than one place. Private IP address can be used in multiple locations as long as they are not duplicated on the same internal network. We are officially out of public IPv4 IP addresses so now we will need to start implementing IPv6 in order to continue. IPv6 is already being implemented but has not been widely accepted yet but it will be soon enough.
IPv6 will allow us to have 340,282,366,920,938,463,463,374,607,431,768,211,456 IP addresses or 2128 to make it easier to read. It also uses a 128 bit address space rather than a 32 bit address space like IPv4 uses. One problem with IPv6 is that it is not compatible with IPv4 making it more difficult to implement with today’s primarily IPv4 address scheme. There are some methods that have been developed to make the communication work between the two to get around the problem.
IPv6 addresses are displayed as 8 groups of 4 hexadecimal digits with these groups being separated by colons. Here is an example of an IPv6 address (2605:e000:7ec8:0800:006f:10f6:1394:0370) and as you can see there are letters as well as numbers in the address. Hexadecimal numbers allow the use of the numbers 0-9 and the letters A-F. And with this many IPv6 addresses it’s said that every device in the world will be able to have its own unique publicly routed IP address. If you have a modern version of Windows you can run ipconfig /all and see that you have both an IPv4 and IPv6 IP address assigned to your network adapter unless of course you have IPv6 disabled.
There are ways to shorten how an IPv6 address is written making it easier to wrap your head around the number and also to avoid getting something wrong when making a note of an address. One thing you can do is remove any leading 0's in the address to shorten it a bit. So our example address of 2605:e000:7ec8:0800:006f:10f6:1394:0370 can then be shortened to 2605:e000:7ec8:800:6f:10f6:1394:370. Another thing you can do to shorten an IPv6 address is to replace any blocks that have consecutive 0's (0000:0000) with colons. So if we had an address like 2564:0000:0000:5fb7:05a2:1557:00b3:f9c4 we can shorten it even further to 2564::5fb7:5a2:1557:b3:f9c4.
There are 3 main types of IPv6 addresses and they are Link-Local Address, Global Unicast Address and Unique-Local Address and here is the difference between them.
Link-Local Address – this is an auto-configured IPv6 address that always starts with FE80 and are used on only broadcast segments and are never routed. They refer to a specific physical link and are used for addressing on a single link for things like automatic address configuration and neighbor discovery protocol.
Global Unicast Address – these addresses are globally identifiable and uniquely addressable. They consist of a 64 bit subnet ID and a 64 bit interface ID.
Unique-Local Address – these addresses are globally unique but they should be used in local communication only and always start with FD. Use these for devices that will never communicate on the Internet.
IPv6 also has some other advantages\features that IPv4 doesn't have making it a worthy replacement after all the hard work is done. Some of these advantages include the following:
- Auto configuration for ease of implementation
- No need to use NAT (Network Address Translation)
- Larger amount of multicast addresses
- increased throughput and efficiency with larger payloads
- More efficient routing and smaller routing tables
- Better security (encryption and IPsec built in)
- Easier and cheaper to manage once implemented (better scalability)
- Improved mobility capabilities
- No need for checksum verification
- Devices can be connected to multiple networks at the same time
- Faster speed because of less fragmentation
- Quality of Service (QOS) built into packet header
- IP addresses can be assigned automatically and dynamically by the client eliminating the need for a DHCP server
So as you can see there is quite a difference between IPv4 and IPv6 and there is much more to it in addition to what we have gone over here. Once the hard part of implementing IPv6 and replacing IPv4 IP addresses in the distant future is complete we will all be better off except for maybe the network administrators who have to become experts at it!