Hi,
Concept is very simple, GRE tunnels source and destination must be reachable via any means for GRE tunnels to work.
IP address on GRE tunnels can be unnumbered to other physical or loopback interface or can be configured with static (ip address i.i.i.i m.m.m.m.m). I prefer to use static /30 or /31 IP, make life easier to confirm GRE tunnels works by ping test to remote end IP.
Can use any valid IP (private or public - depends on requirement).