1

I'm new to all the network field of knowldege, so I hope my question makes sense.

In a scenario of transition from IPv4 to IPv6, let's suppose ALG is implemented. How would an ALG convert the IHL in the header between the two versions? For exemple: if a IPv6 packet is sent to a IPv4-only host, would a ALG replace the IHL with something like the padding found in the option part of an IPv4 or would a ALG simply "discard" the IHL?

Thank you for enlightening me!

6
  • IPv6 and IPv4 are separate layer-3 protocols. You don't send an IPv6 packet to an IPv4-only host. IPv6 doesn't have the IHL field that IPv4 does in its header. I'm not sure what you are asking.
    – Ron Maupin
    Nov 11, 2015 at 17:43
  • I get that a packet is created at the network layer. In a hypothetic transition, doesn't public services need to be able to bridge IPv4 with IPv6? I read that a ALG works at application layer (...hence the name), so I was just wondering how this conversion worked for a specific part of the header of a IPv4 packet, in this case the IHL part. Nov 11, 2015 at 17:53
  • IPv6-only and IPv4-only hosts can't directly communicate. The IPv6 packet would never be delivered to an IPv4-only host since the IPv4-only host doesn't have an IPv6 address. Application layer protocols can't do anything about this. You would need something like NAT64, but that has its problems, too, since these are two completely separate protocols. Any bridging between the two is really a hack. Most people will run dual-stack so that they can send/receive either protocol.
    – Ron Maupin
    Nov 11, 2015 at 17:57
  • Ok, thank you for the answer. I definitely have to start reading a lot more on the basis of the argument and organize the informations I want to learn. In fact, I think that questions like the one I just posed are products of missing a certain knowledge. Nonetheless, thank you for your time :-) Nov 11, 2015 at 18:02
  • I will post an answer so that you can accept it so that the questions doesn't keep popping up, looking for an answer.
    – Ron Maupin
    Nov 11, 2015 at 18:04

1 Answer 1

2

IPv6-only and IPv4-only hosts can't directly communicate. The IPv6 packet would never be delivered to an IPv4-only host since the IPv4-only host doesn't have an IPv6 address. Application layer protocols can't do anything about this. You would need something like NAT64, but that has its problems, too, since these are two completely separate protocols. Any bridging between the two is really a hack. Most people will run dual-stack so that they can send/receive either protocol.

5
  • I said the same thing elsewhere to a flurry of down-votes. IPv6 and IPv4 may share a common heritage, but beyond the version number in the header, they are completely alien protocols. There is no amount of bit flipping that can turn a v4 packet into v6, or v.v. People get hung up because they're "both IP?!?" NAT64 is not "NAT" -- it's a fairly complex protocol translation
    – Ricky
    Nov 11, 2015 at 20:51
  • 1
    That said, an ALG -- in that it's a proxy -- can function as a bridge between protocols. Facebook does this, btw; internally, they are all IPv6. (so they claim)
    – Ricky
    Nov 11, 2015 at 20:54
  • Right, but even with an ALG, you won't be sending an IPv6 packet to an IPv4-only host. The packets will need to be converted first. It is surprising that the OP knew about the IHL field in an IPv4 header, but didn't know that it doesn't exist in an IPv6 packet.
    – Ron Maupin
    Nov 11, 2015 at 20:58
  • In fact I know that an IPv6 pack doesn't have a IHL, I think I just misformulated the question, I thought that during the packet conversione the fields in the header had to somehow be replaced with something (like a IPv4 padding in the option field) for a data loss reason, considering a IPv6 packet has a fixed header. Nov 11, 2015 at 23:02
  • @Nomerandom1, there are various methods for allowing hosts with the two different protocols to communicate, but an IPv6 packet will never be delivered to an IPv4-only host because it doesn't have an IPv6 address. You can start with the NAT64 RFC 6146, Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers, but because these are two separate protocols, there are problems with each method to convert from one to the other. Any conversion is a hack since the protocols were not designed to talk to each other.
    – Ron Maupin
    Nov 11, 2015 at 23:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.