GRE

P2P Physical Interface
Simple GRE between two routers. This just encapsulates the IP packet with another IP header. We'll start with the simplest GRE tunnel there is; a point-to-point WAN link with tunnel interfaces communicating across the WAN link.

R1 config: We have a tunnel 9000 that is 'attached' to interface fa0/0. This allows 44.1.1.1 to talk to 44.1.1.2 through the WAN link of 12.1.1.0/24 interface Tunnel9000 ip address 44.1.1.1 255.255.255.0 tunnel source 12.1.1.1 tunnel destination 12.1.1.2 ! interface FastEthernet0/0 ip address 12.1.1.1 255.255.255.0

R2 config: interface Tunnel9000 ip address 44.1.1.2 255.255.255.0 tunnel source 12.1.1.2 tunnel destination 12.1.1.1 ! interface FastEthernet0/0 ip address 12.1.1.2 255.255.255.0

P2P Loopback Interface
The next logical step is to move the tunnel source off of the physical interface and onto a loopback interface. The loopbacks must, of course, be pingable from both sides.

R1 config: interface Loopback9000 ip address 66.1.1.1 255.255.255.0 ! interface Tunnel9000 ip address 44.1.1.1 255.255.255.0 tunnel source 66.1.1.1 tunnel destination 10.1.1.1 ! interface FastEthernet0/0 ip address 12.1.1.1 255.255.255.0

R2 config: interface Loopback9000 ip address 10.1.1.1 255.255.255.0 ! interface Tunnel9000 ip address 44.1.1.2 255.255.255.0 tunnel source 10.1.1.1 tunnel destination 66.1.1.1 ! interface FastEthernet0/0 ip address 12.1.1.2 255.255.255.0

P2P GRE with NHRP Physical Interfaces
Now that we have a baseline for GRE tunnels, we'll go ahead and move to multipoint GRE tunnels that require NHRP. This is not a standard or typical GRE/NHRP DMVPN configuration, it doesn't even have VPN on it yet. This is simply to show the movement from P2P interfaces with NHRP to multipoint. Below we can see interface tunnel 11 mapped to the physical interface of fa 0/0. The NHS is R1 with R2 being the spoke (even though this is P2P). Even if it's P2P you will still need the ip nhrp map commands.

R1 config: interface Tunnel11 ip address 44.1.1.1 255.255.255.0 no ip redirects ip nhrp map multicast dynamic ip nhrp network-id 123 tunnel source FastEthernet0/0 tunnel mode gre multipoint ! interface FastEthernet0/0 ip address 12.1.1.1 255.255.255.0

R2 config: interface Tunnel11 ip address 44.1.1.2 255.255.255.0 no ip redirects ip nhrp map 44.1.1.1 12.1.1.1 ip nhrp map multicast 12.1.1.1 ip nhrp network-id 123 ip nhrp nhs 44.1.1.1 tunnel source FastEthernet0/0 tunnel mode gre multipoint ! interface FastEthernet0/0 ip address 12.1.1.2 255.255.255.0

Just to show that this is in fact a piece by NHRP, the show ip nhrp shows the tunnel that has been created via the NHRP protocol. R1#show ip nhrp 44.1.1.2/32 via 44.1.1.2, Tunnel11 created 00:02:09, expire 01:57:50 Type: dynamic, Flags: authoritative unique registered NBMA address: 12.1.1.2

R2#show ip nhrp 44.1.1.1/32 via 44.1.1.1, Tunnel11 created 00:00:29, never expire Type: static, Flags: authoritative used NBMA address: 12.1.1.1

P2P GRE with NHRP Loopback Interfaces
Next, we move the mappings and source interfaces back off of the physical interfaces to loopback interfaces. This introduces a wide variety of routing options as the source interface is not tied physically but logically. With this we can do some funky routing and get to play a bit. Below just moves the source back from the physical interface to a logical one.

R1 config: interface Loopback2000 ip address 13.1.1.1 255.255.255.0 ! interface Tunnel11 ip address 44.1.1.1 255.255.255.0 no ip redirects ip nhrp map multicast dynamic ip nhrp network-id 123 tunnel source Loopback2000 tunnel mode gre multipoint ! interface FastEthernet0/0 ip address 12.1.1.1 255.255.255.0

R2 config: interface Loopback2000 ip address 14.1.1.1 255.255.255.0 ! interface Tunnel11 ip address 44.1.1.2 255.255.255.0 no ip redirects ip nhrp map multicast 13.1.1.1 ip nhrp map 44.1.1.1 13.1.1.1 ip nhrp network-id 123 ip nhrp nhs 44.1.1.1 tunnel source Loopback2000 tunnel mode gre multipoint ! interface FastEthernet0/0 ip address 12.1.1.2 255.255.255.0

Multipoint GRE with NHRP Loopback Interfaces
Things were a little bit simpler before because we just had two default routes pointing from one router to the next. With the addition of another router for the second spoke, we'll need a routing protocol so that everything can reach everything. We'll remove the route and add EIGRP to the mix.

R1 Hub: interface Loopback2000 ip address 13.1.1.1 255.255.255.0 ! interface Tunnel11 ip address 44.1.1.1 255.255.255.0 no ip redirects no ip next-hop-self eigrp 1 ip nhrp map multicast dynamic ip nhrp network-id 123 no ip split-horizon eigrp 1 tunnel source Loopback2000 tunnel mode gre multipoint ! interface FastEthernet0/0 ip address 12.1.1.1 255.255.255.0 ! interface FastEthernet0/1 ip address 51.1.1.1 255.255.255.0 ! router eigrp 1 network 0.0.0.0 no auto-summary

R2 Spoke: interface Loopback2000 ip address 14.1.1.1 255.255.255.0 ! interface Tunnel11 ip address 44.1.1.2 255.255.255.0 no ip redirects ip nhrp map multicast 13.1.1.1 ip nhrp map 44.1.1.1 13.1.1.1 ip nhrp map 44.1.1.3 13.1.1.1 ip nhrp network-id 123 ip nhrp nhs 44.1.1.1 tunnel source Loopback2000 tunnel mode gre multipoint ! interface FastEthernet0/0 ip address 12.1.1.2 255.255.255.0 ! router eigrp 1 network 0.0.0.0 no auto-summary

R3 Spoke: interface Loopback2000 ip address 15.1.1.1 255.255.255.0 ! interface Tunnel11 ip address 44.1.1.3 255.255.255.0 no ip redirects ip nhrp map multicast 13.1.1.1 ip nhrp map 44.1.1.1 13.1.1.1 ip nhrp map 44.1.1.2 13.1.1.1 ip nhrp network-id 123 ip nhrp nhs 44.1.1.1 tunnel source Loopback2000 tunnel mode gre multipoint ! interface FastEthernet0/1 ip address 51.1.1.2 255.255.255.0 ! router eigrp 1 network 0.0.0.0 no auto-summary