In this lesson,
we're going to discuss IP version 4 and IP version 6
compatibility requirements.
Now, in addition to providing
a lot of new benefits in IP version 6,
the creators of IPv6 were also really smart,
and they realized that for IPv6 to be embraced and accepted,
it would have to be backward compatible with IPv4
and allow them both to coexist on the same network.
After all, it was already into the mid to late 1990s
when IPv6 was first being released,
and a lot of computer networks
were already installed all over the globe
using IP version 4.
So it was simply not be feasible
to change over everything in a single day.
Think about it like the current migration
we're going through from gas-powered to electric vehicles
during the 2020 to 2024 timeframe.
It would be impossible for the government to say,
"On January 1st, 2025, all gas-powered vehicles
will be replaced with electric vehicles."
If our government tried to do that,
they would probably have a revolution on their hands
because so many people already own gas-powered cars
and spent a lot of money on them.
They aren't just going to simply replace them all overnight.
It'll be too expensive and too difficult,
let alone all the infrastructure that goes with it,
like all the gas stations having to be torn out
and all the charging stations having to be installed.
So instead there's a slow transition going on
from gas-powered to electric.
And by 2030 or 2040, most of the new cars sold in the world
are expected to be electric vehicles.
So during this transition period,
which will probably take 20 or 30 years,
we're going to need to have infrastructure in place
for both gas-power vehicles,
like gas stations and fuel pumps,
as well as electric vehicles, like charging stations.
Here in the United States,
I've already noticed a lot of service stations
and gas stations have begun this transition
by installing a bank of electric vehicle charging stations
in their parking lots.
That way when you're on a road trip,
regardless of whether you're driving a gas-powered car
or an electric vehicle,
you'll still be able to stop at their gas station
and fill up with gas or electric
while you go inside and grab a cold drink and a snack
from the service station.
Now the developers of IPv6 knew that it was going to be
a long transition going from IPv4 into IPv6.
So they designed a few different things
to help make these protocols compatible with each other,
including things like dual stack, tunneling, and NAT64.
Now, first we have dual stack.
Dual stack is a network architecture
that allows the coexistence and simultaneous operation
of both IP version 4 and IP version 6 protocols
on the same network infrastructure.
This approach is one of the primary methods
used to facilitate the transition
from IP version 4 to IP version 6,
and it's necessary due to the depletion
of IP version 4 addresses
and the growing number of internet-connected devices.
When using a dual stack environment,
your network devices,
like your routers, your switches, and your hosts,
are going to be configured to understand and process
both IP version 4 and IP version 6 addresses.
And this effectively allows you to run
two separate layers of the internet protocol simultaneously.
This allows for the gradual migration to IP version 6
and ensures compatibility and communication
between your newer IPv6 systems and your older IPv4 systems
without forcing an abrupt shift
to the newer protocol immediately.
The operation of a dual stack network
does involve the simultaneous configuration
of both IPv4 and IPv6 on your network interfaces
and in the network stack of the devices itself.
When a dual stack device communicates with another device,
it tries to prefer IPv6 by default,
but if IPv6 is not available,
then it will fall back to IP version 4 if necessary.
This preference is going to be determined
by the DNS resolution process
and the destination device's capabilities.
If the DNS query returns both A records for IP version 4
and AAAA records for IP version 6,
that device will attempt to use IP version 6 first.
If the IP version 6 attempt fails
or if the destination doesn't support IP version 6,
then the device will automatically try IP version 4
to ensure connectivity regardless of the IP version
being supported on the other end.
This seamless fallback mechanism
is a crucial aspect of dual stack operation
and allows for uninterrupted network services
during the transition period.
Second, we have tunneling.
Now, tunneling is a method used to enable
the communication of one network protocol within another
by encapsulating packets of a different protocol type.
This technique is particularly crucial
in the context of transitioning
from IP version 4 to IP version 6
because it allows you to tunnel IP version 6 packets
over an older legacy IP version 4 network.
Now, the concept of tunneling is very similar to
creating a virtual tunnel through an existing network.
And this way your data can travel
securely and transparently through that older protocol.
In the case of IPv4 and IPv6 coexistence,
tunneling involves encapsulating IPv6 packets
within IPv4 packets, and then allowing them
to traverse the IPv4 infrastructure
as if they were native IPv4 packets.
This process enables devices on an IPv6 network
to communicate through an IPv4 network
without requiring any modifications
to the underlying IPv4 infrastructure.
Now, tunneling involves
the encapsulation and decapsulation of packets
at the operational level.
When an IPv6 packet needs to be sent
through an IPv4 network,
the IPv6 packet will be encapsulated within an IPv4 packet
at the source or entry point of that tunnel.
This encapsulated packet will then travel through
the IP version 4 network
until it reaches the tunnel's endpoint.
Upon arrival, the IPv4 wrapper's going to be removed
and the original IPv6 packet will be deencapsulated
and delivered to its intended IPv6 destination.
This process is transparent to the end devices,
which perceive the communication
as a normal IPv6 interaction.
Tunnel endpoints can be manually configured
by network administrators using static tunnels
or they can automatically be determined by protocols
that are designed for this purpose
to create a dynamic tunnel,
such as 6to4, Teredo, or ISATAP.
Third, we have NAT64.
NAT64 is a network address translation mechanism
that allows IPv6-only devices
to communicate with IPv4 servers and services.
This is a crucial technology in our transition
from IPv4 to IPv6, especially in environments
where it's not feasible to run a dual stack configuration.
NAT64 works by translating IPv6 addresses
into IPv4 addresses and vice versa,
and this enables interoperability
between those two protocols.
This is particularly important
as the internet continues to grow
and the exhaustion of IPv4 addresses
becomes a more pressing issue.
NAT64 not only is going to facilitate communication
between the newer IPv6 and the older IPv4 networks,
but it also helps in conserving
the remaining IPv4 addresses
by allowing multiple IPv6 devices
to share a single IPv4 address.
Now, the operational aspect of NAT64
involves a NAT64 gateway,
which sits at the edge of your IPv6 network.
When an IPv6 only device sends traffic to an IPv4 address,
the traffic will be directed to that NAT64 gateway.
The gateway will then translate the IPv6 address
into an IPv4 address and essentially convert the packet
so that it can traverse the IPv4 network.
For returning traffic,
the gateway translates the IPv4 address
back into an IPv6 address.
The NAT64 gateway will maintain a translation table
to keep track of these mappings
and ensure that sessions are correctly managed
as the return traffic reaches the appropriate IPv6 device.
This translation process is seamless to your end users
and provides a smooth experience
even when accessing services
across different IP versions, like IPv4 and IPv6.
So remember, during this transition period
where both IPv4 and IPv6 are being operated on our networks,
we have three main options
to provide support for both protocols
in our network's infrastructure.
These are dual stack, tunneling, and NAT64.
Dual stack is a network architecture
that allows devices to simultaneously process
and understand both IPv4 and IPv6 addresses
that facilitates a smooth transition between two protocols.
Tunneling is a method that encapsulates
the packets of one network protocol within another
and then enables the secure and transparent transportation
of your data through an incompatible network.
And NAT64 is a network address translation technique
that allows IPv6-only devices
to communicate with IPv4 networks
by converting IPv6 addresses into IPv4 addresses
and vice versa.
Now, one day, we may eventually see IPv4 retired fully,
but it hasn't happened yet,
and I'm really not holding my breath.
From some articles I've read,
there are predictions that IPv4 will remain with us
till at least 2040, and probably beyond that.
So you're really going to have to know how to work with
both IPv4 and IPv6 for at least the foreseeable future.