There are many ways to implement IPv6 on an existing IPv4 network. In this video, you’ll learn about IPv4 and IPv6 tunneling, dual-stack routing, and the IPv6 Neighbor Discovery Protocol (NDP).
If you’re deploying IPv6 in your organization, there are a number of different ways that you could implement this in your environment. One way is to tunnel the IPv6 within an existing network configuration.
For example 6to4 is an addressing type that sends IPv6 information over an existing IPv4 address. This process creates an IPv6 address that’s based on your existing IPv4 address. One of the challenges with 6to4 is that it requires specific relay routers that are designed to provide this tunneling. This also does not support network address translation, which certainly limits the ability to send this traffic across the internet.
The reverse of 6to4 is 4in6 tunneling, where you would tunnel IPv4 traffic inside of an existing IPv6 network. Because of the challenges associated with this addressing and tunneling system, we don’t tend to see a widespread implementation of these technologies on today’s networks.
If you do want to tunnel IPv6 and you want to support network address translation, you might want to use Teredo. This tunnels IPv6 through a NATed IPv4 network, allowing you to send IPv6 end-to-end through an IPv4 network. With Teredo, you don’t need any special router or relay system. This is designed to be a temporary form of communication until we’re able to send IPv6 traffic end-to-end.
Teredo’s commonly seen on Windows operating systems, but there is an open source version of this for Linux, BSD Unix, and Mac OS called Miredo. This provides the same functionality as a Windows-based Teredo system, but it works on these additional operating systems.
Today’s implementations of IPv6 tend to be end-to-end. And we’re able to implement this by using dual-stack routing. This means that our devices and our routers can communicate using IPv4 and IPv6 simultaneously. You can send whatever traffic you would like to the device and it knows to forward that traffic appropriately.
With IPv4, you would configure a router or a device with an IPv4 address. It uses standard IPv4 routing tables. And you can even use IPv4 dynamic routing protocols. This is the same IPv4 configuration that we’ve been using on our routers for years.
What we’ve done is add an additional protocol to our routers for IPv6. There’s a separate configuration for IPv6 addresses. These devices have their own IPv6 routing tables that are separate from the IPv4 routing tables.
And if you’re using IPv6 dynamic routing protocols, those protocols would be used by the IPv6 section of this router. This allows us to configure our devices with an IPv4 address, an IPv6 address, or allows us to configure both on our devices simultaneously, and all of our routing devices will be able to route that traffic appropriately.
If you’re starting to use IPv6, one of the things you’ll notice is that IPv6 doesn’t use broadcasts. We’ve removed broadcasts completely from the protocol. But we still need a way to identify other devices that might be on the network. And without a broadcast, we can’t use the traditional address resolution protocol to be able to find devices.
So instead, we use a specialized multicast protocol called Neighbor Solicitation, or NS. One device would send this neighbor solicitation to this multicast address, and any device on the network that matches the request will send the response back as a Neighbor Advertisement, or NA. This effectively replaces the functionality of address resolution protocol that we used to have in IPv4 and updates it for the multicast capabilities of IPv6.
This allows us to use more efficient protocols, like multicast, and replace the functionality of IPv4 ARP with a Neighbor Discovery Protocol, or NDP. IPv6 also provides us with a way to statically address devices automatically without the use of a DHCP server.
This is called Stateless Address Autoconfiguration, or SLAAC. This means that we could have an entire network configured with SLAAC-based IP addresses without having to build a separate DHCP server to assign addresses.
To be able to support this IPv6 autoconfiguration, we need to use Duplicate Address Detection, or DAD, to ensure that no duplicate IP addresses would be configured. This is also the protocol that we would use to find routers on our network.
This Neighbor Discovery protocol would send a router solicitation packet and listen for a router advertisement. This would allow your local devices to automatically configure themselves and identify where the routers are on their local subnet.
This process uses the Neighbor Discovery Protocol to find these routers. A router solicitation message is sent to an IPv6 router multicast address, and any local routers on that subnet will respond back with a router advertisement. Routers may also be configured to send unsolicited router advertisements over this multicast address, so that all of the devices on the subnet would be able to identify where the router happened to be.
This will transfer information such as the IPv6 address information of the router, prefix information for the network, and prefix length, which would then allow the local devices to automatically configure themselves with the appropriate IP addresses.