This article was first written in August 2004 for the BeezNest technical website (http://glasnost.beeznest.org/articles/167).
GRE tunnels between Cisco and Linux (2.4 and up) routers are possible.
Given the following two routers, each one gateway for its network:
Public IP: 22.214.171.124
Private network: 192.168.4.0/24
IP on that private network: 192.168.4.4
Public IP: 126.96.36.199
Private network: 192.168.10.0/24
IP on that private network: 192.168.10.4
See IP in IP or GRE tunnel using iproute for the Linux configuration part.
For the Cisco part, it is quite similar, as the needed portion of configuration is something like this:
interface Tunnel1 description connection to Linux Network ip address 192.168.10.4 255.255.255.0 tunnel source Dialer1 tunnel destination 188.8.131.52 tunnel mode gre ip
Where Dialer1 is the name of the interface of the Cisco router connected to Internet (it’s used to always match the actual and current public IP of the router).