Hello Pradyumna
The encapsulation is exactly the same as that found with normal GRE. Taking it step by step from the beginning:
- Spoke1 creates an ICMP message and encapsulates it into an IPv4 packet with a source and destination address of 2.2.2.2 and 3.3.3.3 respectively. These are the IP addresses of the source of the ICMP echo, and the destination host from which a reply is expected.
- This IPv4 packet is then encapsulated with a GRE header which simply tells the router that a tunnel is created and IP is the internal protocol used.
- This is then encapsulated into another IP packet this time using the source and destination addresses of 192.168.123.2 and 192.168.123.3 which are the public IP addresses. This header is used to get the packet from one router to the other.
- Once it arrives at the destination, the Spoke2 router recognizes that it is a GRE tunneled packet, removes the encapsulations until it gets to the internal IPv4 packet which routes it to its intended destination of 3.3.3.3.
- The ICMP message is then processed and an echo reply is returned using the same procedure in reverse.
More info on the encapsulation process can be found at this post and at this post as well.
This question has been answered at this post.
I hope this has been helpful!
Laz