Tunneling provides a mechanism to transport packets of one protocol within another protocol. The protocol that is carried is called as the passenger protocol, and the protocol that is used for carrying the passenger protocol is called as the transport protocol. Generic Routing Encapsulation (GRE) is one of the available tunneling mechanisms which uses IP as the transport protocol and can be used for carrying many different passenger protocols. The tunnels behave as virtual point-to-point links that have two endpoints identified by the tunnel source and tunnel destination addresses at each endpoint.

R1(config)# int tunnel 1
R1(config-if)# ip address
R1(config)# tunnel source
R1(config)# tunnel destination
R2(config)# int tunnel 1
R2(config-if)# ip address
R2(config)# tunnel source
R2(config)# tunnel destination
R1(config)# ip route
R2(config)# ip route