Tunneling is simply placing a frame inside another protocol. Just like we drive our car into a tunnel, we "drive" our frame into another protocol. Some people think of it as simply adding a header to the front of our frame.

Cisco uses the Generic Routing Encapsulation (GRE) to tunnel many different protocols over IP and non-IP networks. GRE tunneling works by encapsulating a network protocol within packets carried by the second network.