In this blog we will discuss IPv6 and we will see the differences between IPv4 and IPv6. Let’s start with the following picture:
IPv6 addresses are hexadecimal and since they are 128-bit, they are quite long. Imagine you have to call a friend and ask him/her to ping the following address:
IPv4 addresses have a subnet mask but instead of typing something like 255.255.255.0 we use a prefix length for IPv6. Here is an example of an IPv6 prefix:
IPv6 looks different than IPv4 but there are some similarities. For example we have unicast addresses and we still have a “public” and “private” range. We use different names for these but the idea is the same. One of the differences is that IPv6 has some additional unicast address types.
In this blog we’ll take a look how you can create IPv6 prefixes and subnets so that you can configure your entire network with IPv6. We’ll start at the top where IANA (Internet Assigned Numbers Authority) is responsible for the global coordination of the IPv4 and IPv6 address space and move our way all the way to the bottom where we assign subnets and IPv6 addresses to our routers, switches and VLANs.
EUI-64 (Extended Unique Identifier) is a method we can use to automatically configure IPv6 host addresses. An IPv6 device will use the MAC address of its interface to generate a unique 64-bit interface ID. However, a MAC address is 48 bit and the interface ID is 64 bit. What are we going to do with the missing bits?
Summarizing IPv6 prefixes is similar to IPv4 summarization, the big difference is that IPv6 uses 128 bit addresses compared to 32 bits for IPv4 and IPv6 uses hexadecimal addresses.
Every device that uses an IPv6 address will also compute and join a solicited node multicast group address. This address is required for IPv6 Neighbor Discovery which we use for layer two address discovery.
One of the differences between IPv4 and IPv6 is that we don’t use ARP (Address Resolution Protocol) anymore. ND (Neighbor Discovery Protocol) will replace the functionality of ARP. In this blog we’ll take a look how ND works.
Stateless autoconfiguration for IPv6 is like a “mini-DHCP” server for IPv6. Routers running IPv6 can give the prefix of the network and a gateway address to clients looking for an IPv6 address. IPv6 uses the NDP (Neighbor Discovery Protocol) and one of the things this protocol offers is RS (Route Solicitation and (RA) Router Advertisement messages that help an IPv6 device to automatically configure an IPv6 address. Let’s take a look at a configuration example:
In this blog we’ll take a look at DHCPv6 so we can automatically assign IPv6 addresses to our hosts. The functionality of DHCPv6 is the same as DHCP for IPv4 but there are some differences. First of all, DHCPv6 supports two different methods:
If you know how to configure a static route for IPv4 then you shouldn’t have any issues with IPv6 static routes. The configuration and syntax are similar, there are only some minor differences. In this blog, we will discuss how to configure all IPv6 static route types.
RIPNG is the exact same protocol as RIP for IPv4 but it has been upgraded to support IPv6. In this blog we will discuss how to configure it on Cisco routers. Here’s the topology that we’ll use:
Cisco’s EIGRP is one of the routing protocols that is suitable for IPv6. Configuration is a bit different and in this blog we will discuss how to configure it. This is the topology we’ll use:
When we use OSPF for IPv4 we are using OSPFv2. OSPF has been updated for IPv6 and is now called OSPFv3. These are two different routing protocols and in this blog we’ll discuss how to configure OSPFv3 so that you can route IPv6 traffic. Here’s the topology we’ll use:
Just like OSPF for IPv4, it is possible to advertise a default route in OSPFv3 for IPv6. In this blog, we’ll discuss how to do this.
OSPFv3 doesn’t have an authentication field in its header like OSPFv2 does, instead it relies on IPsec to get the job done.
Redistribution for IPv6 is pretty much the same as for IPv4, the same rules apply. We will discuss an example of IPv6 redistribution between RIPNG and OSPFv3. Here’s the topology that we will use:
We can use access-lists for filtering (blocking packets) or selecting traffic (for VPNs, NAT, etc).
This also applies to IPv6 access-lists which are very similar to IPv4 access-lists. However, there are two important differences:
Filtering IPv6 routes in BGP is similar to IPv4 filtering. There are 3 methods we can use:
Since IPv4 and IPv6 are not compatible with each other we need some migration strategies. One technique that we can use is tunneling. Basically it means that we encapsulate IPv6 packets into IPv4 packets (or the other way around) so that it can be routed. In this blog, we’ll discuss how to configure IPv6 static tunneling over an IPv4 network, there are two methods:
Dynamic multipoint IPv6 tunnels are another migration technique we can use. It’s called dynamic because we don’t have to specify the end-point IPv4 address ourselves but its being automatically determined. The downside of multipoint IPv6 tunnels is that they don’t support IPv6 IGPs. You have to use static routes or BGP.
There are two different flavors:
In this blog we’ll take a look how to configure NAT64 so that an IPv4 host can communicate with an IPv6 host. Here’s the topology we will use: