Generic Routing Encapsulation (GRE) is a tunneling protocol developed by Cisco that can encapsulate a wide variety of network layer protocols inside virtual point-to-point links.
Security Warning
GRE by itself does not provide encryption. It only provides encapsulation. In the real world, GRE is almost always paired with IPsec (GRE over IPsec) to secure the payload.
Tunnel Interfaces
GRE creates logical "Tunnel" interfaces. The tunnel requires an IP address, a tunnel source (usually a physical WAN interface), and a tunnel destination (the public IP of the remote router).
Router(config)# interface Tunnel0 Router(config-if)# ip address 10.0.0.1 255.255.255.252 Router(config-if)# tunnel source GigabitEthernet0/0 Router(config-if)# tunnel destination 203.0.113.2