OSPF Virtual-links vs GRE tunnels
Everyone who works in networking knows that every area in the OSPF domain must be connected to the backbone area (Area0). The reason behind this constrain is explained here. However it may be difficult for some reason to physically connect an area to the backbone; in such cases you will have to provide a logical connection to the backbone to temporarily solve the problem.
Virtual-links and GRE tunnels are used to provide this logical connection. Below is a brief comparison between both methods:
Virtual-link:
- It is considered part of (Area 0) by default, without any additional configuration.
- It dose not require any kind of addressing.
- Configuration is only needed under the OSPF routing process.
- Only routing updates are tunneled into the virtual-link, but data traffic is not.
- Transit area can not be a stub area.
GRE tunnel:
- Tunnel interfaces must be created and addressing is required. (can be unnumbered).
- Tunnel Address must be advertised into (Area 0) using a network command.
- Both routing updates and data traffic are tunneled; this introduces more overhead.
- Transit area can be any type; this means its your only option if the transit is a stub area.
which method to use:
I think that virtual-links should be used when ever possible for all of the above reasons and because it is the native solution created by the protocol designers to solve the problem. What is your experience?