http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/868-cisco-router-gre-ipsec.html
Let me use the same example as in my previous question.
R1(config)# interface Tunnel0
R1(config-if)# ip address 172.16.0.1 255.255.255.0
R1(config-if)# tunnel source 1.1.1.10
R1(config-if)# tunnel destination 2.2.2.10
Why is it necessary to configure tunnel source IP? Isn't it something R1 can figure out on its own? When pinging 172.16.0.2, it adds IP and GRE headers, and sets dst IP to 2.2.2.10
- it knows it based based on the configuration above.
Can't R1 simply figure the source IP on its own? R1 just checks its routing table to find out the next hop for 2.2.2.10
and chooses the interface with the longest prefix match. There's no ambiguity regarding which interface it should send that packet from.