GRE is used to encapsulate an arbitrary layer protocol over another arbitrary layer protocol. In general, GRE allows a tunnel to be created using a certain protocol, which then hides the contents of another protocol carried within the tunnel.
We will mostly discuss the use of IPv4 as the carrying mechanism for GRE with any arbitrary protocol nested inside.
Figure 11-1 shows the general format for encapsulated packets using GRE.
The delivery header can be the IPv4 header. The payload packet can also be an IPv4 header, or it can be another protocol. GRE allows non-IP protocols to be carried in the payload. GRE ...