F Cisco GRE Tunnel Lab: Step-by-Step Configuration Guide with EIGRP Verification - The Network DNA: Networking, Cloud, and Security Technology Blog

Cisco GRE Tunnel Lab: Step-by-Step Configuration Guide with EIGRP Verification

Hands-on Cisco IOS lab — build a point-to-point GRE tunnel, configure static routing, run EIGRP over the tunnel, and verify everything with show commands

GRE Tunnel LAB


GRE Tunnel Lab — R-1 and R-3 communicate through ISP router R-2 via GRE Tunnel10 (10.0.12.1 ↔ 10.0.12.2).
3 Routers
Tunnel10 GRE Interface
Proto 47 IP Protocol
EIGRP 100 Routing over Tunnel
100% Ping Success

What Is GRE?

GRE (Generic Routing Encapsulation) is a Cisco-developed tunneling protocol (RFC 2784) that wraps any IP packet inside a new outer IP header, creating a virtual point-to-point link between two routers across a public network. It runs on IP Protocol 47 — no TCP or UDP ports involved. The ISP in the middle sees only standard IP packets and has no knowledge of the private subnets tunneled inside.

Key properties: GRE is not encrypted — it only encapsulates. It supports multicast, meaning EIGRP, OSPF, and other routing protocols work natively over it. Each GRE packet adds 24 bytes of overhead (20B outer IP + 4B GRE header), reducing the effective MTU from 1500 to 1476 bytes.

💡 GRE vs IPsec GRE supports multicast and dynamic routing protocols but has no encryption. IPsec provides encryption but no multicast. In production, both are combined as GRE over IPsec — GRE handles routing protocols, IPsec secures the traffic.

Lab Topology & IP Addressing

The lab uses three routers. R-1 and R-3 are the tunnel endpoints. R-2 is a plain ISP router — it has no tunnel configuration at all and no awareness of the private loopback networks. The GRE tunnel runs transparently through it.

GRE Tunnel Lab full network topology diagram with all IP addresses
Full lab topology — GRE Tunnel10 creates a virtual direct link between R-1 (10.0.12.1) and R-3 (10.0.12.2) through ISP router R-2.
IP Addressing Table
Device Interface IP Address Purpose
R-1Gi0/015.0.0.1/24Uplink to ISP
R-1Loopback1192.168.1.100/24Simulated LAN
R-1Tunnel1010.0.12.1/24GRE endpoint
R-2 (ISP)Gi0/015.0.0.5/24Toward R-1
R-2 (ISP)Gi0/125.0.0.5/24Toward R-3
R-3Gi0/025.0.0.2/24Uplink to ISP
R-3Loopback1192.168.2.100/24Simulated LAN
R-3Tunnel1010.0.12.2/24GRE endpoint

Base Configuration — R-1, R-2, R-3

Configure physical interfaces and loopbacks on all three routers. R-2 only needs its two uplink interfaces — nothing else.

Complete configuration reference for all three routers — physical interfaces, loopbacks, static routes, GRE tunnel, and EIGRP.

R-1

R-1(config)#interface GigabitEthernet0/0
R-1(config-if)#ip address 15.0.0.1 255.255.255.0
R-1(config-if)#no shutdown
R-1(config-if)#exit
R-1(config)#interface loopback 1
R-1(config-if)#ip address 192.168.1.100 255.255.255.0

R-2 (ISP)

R-2(config)#interface GigabitEthernet0/0
R-2(config-if)#ip address 15.0.0.5 255.255.255.0
R-2(config-if)#no shutdown
R-2(config-if)#exit
R-2(config)#interface GigabitEthernet0/1
R-2(config-if)#ip address 25.0.0.5 255.255.255.0
R-2(config-if)#no shutdown

R-3

R-3(config)#interface GigabitEthernet0/0
R-3(config-if)#ip address 25.0.0.2 255.255.255.0
R-3(config-if)#no shutdown
R-3(config-if)#exit
R-3(config)#interface loopback 1
R-3(config-if)#ip address 192.168.2.100 255.255.255.0

Static Routes — Underlay Reachability

The GRE tunnel cannot come up until the tunnel destination IP is reachable through the physical network. Add static routes on all three routers before configuring any tunnel interfaces.

! R-1 — reach R-3's physical subnet and loopback
R-1(config)#ip route 25.0.0.0 255.255.255.0 15.0.0.5
R-1(config)#ip route 192.168.2.0 255.255.255.0 15.0.0.5

! R-3 — reach R-1's physical subnet and loopback
R-3(config)#ip route 15.0.0.0 255.255.255.0 25.0.0.5
R-3(config)#ip route 192.168.1.0 255.255.255.0 25.0.0.5

! R-2 — needed for cross-loopback ping tests
R-2(config)#ip route 192.168.1.0 255.255.255.0 15.0.0.1
R-2(config)#ip route 192.168.2.0 255.255.255.0 25.0.0.2
🚫 Avoid Recursive Routing Never route the tunnel destination IP through the tunnel interface itself — this creates a loop that keeps the tunnel permanently down. Always point tunnel endpoint routes out through a physical interface.

Create the GRE Tunnel

With underlay reachability confirmed, create tunnel 10 on both R-1 and R-3. The tunnel mode defaults to gre ip — no explicit mode command needed. Source and destination are swapped on each end.

R-1 — Tunnel10

R-1(config)#interface tunnel 10
R-1(config-if)#ip address 10.0.12.1 255.255.255.0
R-1(config-if)#tunnel source 15.0.0.1
R-1(config-if)#tunnel destination 25.0.0.2
R-1(config-if)#exit
! Tunnel10 line protocol changed state to up

R-3 — Tunnel10

R-3(config)#interface tunnel 10
R-3(config-if)#ip address 10.0.12.2 255.255.255.0
R-3(config-if)#tunnel source 25.0.0.2
R-3(config-if)#tunnel destination 15.0.0.1
R-3(config-if)#exit
! Tunnel10 line protocol changed state to up

EIGRP over the Tunnel

Because GRE supports multicast, EIGRP hello packets flow through the tunnel and form a neighbor adjacency between R-1 and R-3. Configure EIGRP AS 100 on both routers, advertising only the tunnel subnet.

! R-1
R-1(config)#router eigrp 100
R-1(config-router)#no auto-summary
R-1(config-router)#network 10.0.12.0

! R-3
R-3(config)#router eigrp 100
R-3(config-router)#no auto-summary
R-3(config-router)#network 10.0.12.0
%DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 10.0.12.1 (Tunnel10) is up

Verification & Show Commands

GRE Tunnel verification output — show ip interface tunnel 10, ping 100%, EIGRP neighbor table via Tunnel10
Verification output — tunnel up/up on both sides, 100% ping success, and EIGRP neighbour adjacency via Tunnel10.
! Check tunnel state
R-1#show ip interface tunnel 10
Tunnel10 is up, line protocol is up
  Internet address is 10.0.12.1/24
  Tunnel source 15.0.0.1 (Gi0/0), destination 25.0.0.2
  Tunnel protocol/transport GRE/IP

! Ping across tunnel
R-1#ping 10.0.12.2
!!!!!  Success rate 100 percent (5/5)

! Cross-loopback ping
R-1#ping 192.168.2.100
!!!!!  Success rate 100 percent (5/5)

! EIGRP neighbour table
R-1#show ip eigrp neighbor
0   10.0.12.2   Tu10   14   00:01:52   47   1470   0   1

Quick Troubleshooting Reference

GRE Tunnel — Common Issues & Fixes
Symptom Cause Fix
Tunnel up/downNo route to tunnel destinationAdd static route to remote physical IP via physical next-hop
Tunnel down/downSource interface is downBring up physical interface; check show ip int brief
Pings failRecursive routing loopEnsure tunnel destination routes via physical interface, not Tunnel
No EIGRP neighboursWrong network statement or ASVerify network 10.0.12.0 and matching AS on both ends
Large pings failMTU / fragmentationSet ip tcp adjust-mss 1436 on tunnel interface

Share this lab guide:

📘 Facebook 🐦 Twitter 💼 LinkedIn

All configurations verified on Cisco vIOS2 in EVE-NG. GRE protocol reference: RFC 2784.