Most of the articles I have read about Tunneling. It describes that the tunneling supports for communication between 2 IPv6 networks over (crossing) an Ipv4 network. For example:
TUNNEL A (IPv6) ==> INTERNET NETWORK (IPv4) => TUNNEL B (IPv6)
Would it be doable for:
TUNNEL A (IPv4) ==> INTERNET NETWORK (IPv6) => TUNNEL B (IPv4)
Please give me an answer with elaborate explanation.
Thanks in advance.
Absolutely yes, but you need the 'right' software.
You didn't mention the OS so I'll use one I'm familiar with. FreeBSD has
tun
interfaces. It's a generic tunneling protocol (actually the same one used by many VPNs) and you can assign IPv4 or IPv6 endpoints, as well as IPv4 or IPv6 private addresses. This allows for IPv4-over-IPv6, or IPv6-over-IPv4, or IPv4-over-IPv4, etc.With an implementation like this, both your private address and the destination must be the same protocol (IPv4 or IPv6). There are also technologies like DNS64/NAT64 which allow you to run IPv6-only locally while connecting to both the IPv4 and IPv6 Internet. There are also other technologies like 6to4 which is a tunneling protocol at heart, but allows you to have IPv6 address on your internal network, an IPv4 external address, and still connect to the IPv6 Internet.
Having more details on what you're trying to accomplish and with what resources would help immensely.
Most definitely. In case you are asking how to do it for a Cisco environment the configurations would be the following:
(r100) tun1 (IPv4) ==> IPv6 Core => (r107) tun0 (IPv4)
pings from r100(ipv4) to r107(ipv4) over an ipv6 core:
pings from r107(ipv4) to r100(ipv4) over an ipv6 core:
Many if not most users currently connected to IPv6 are connected this way. For IPv6 there are 6in4 and 6to4 tunnels. These encapsulate the IPv6 packet in an IPv4 packet and send it over the IPv4 network. The IPv6 packet is the payload of the IPv4 packet. There is an overhead of 20 bytes per packet for the IPv4 header resulting in a smaller MTU for packers routed this way.
The IPv4 option would likely be a VPN running over IPv6. I would expect that the same techniques used for IPv6 over IPv4 could be used for IPv4 over IPv6 although I am not aware of any.
IPv6 also has addressing schemes for IPv4 so IPv6 addresses can be used in an IPv6 network. However, the IPv4 headers handle options differently requiring header translation for certain header options. There are significant issues in routing IPv4 addresses in an IPv6 network, to encapsulation would be the preferred method of transport.
All routers and devices are usually dual stack. This means if you transmit IPv4 packets, the IPv6 device will negotiate this and receive as IPv4 and send as IPv4 so the end point receives it correctly.
There are no devices, that I know off which are just IPv6, this would be stupid and the vendor wouldn't sell any devices.
IPv6 through IPv4 to its end point of IPv6 needs to encapsulate the IPv6 packets in a IPv4 packet. This can be done with tunnelling (manual IPv6 tunnels, 6to4 tunnels or ISATAP), toredo tunnelling or a 3rd party broker service. Each have advantages and disadvantages.
The information has different header information so that the IPv6 devices know that it is encapsulated and can be open correctly at each end. The header is usually stripped off when the encapsulated packet is received by the IPv6 device. IPv6 header infromation is completely different to IPv4 header information. IPv6 headers have less information now.
Every operating system is dual stack now, except Win XP, which you can download a client to deal with.
The various tunnelling methods are a little too long to describe in this post.
To answer your question there is no need to tunnel from a IPv4 device through a IPv6 device to a IPv4 end point, because the middle man will be dual stack. This means IPv4 and IPv6.