We all know that all OSPF areas have to be connected to area 0. But sometimes you encounter a situation where it is not possible to connect an area to area 0. This can happen because of poor network design or because two or more networks merge together. There are several options to deal with this problem. You know about a virtual-link. But there is another option which is not as popular, but in my opinion is even more elegant. My last puzzle about the GRE tunnel solution.
Topology with Puzzle:
Routers R1 and R2 are in Area 0 (R2 is ABR)
Routers R4 and R3 area in Area 1 (Stub area by design)
Router R5 and R5 are in Area 0 (R6 is ABR)
Topology with Solution:
Routers R1 and R2 are in Area 0 (R2 is ABR)
Routers R4 and R3 area in Area 1 (Stub area by design) (R3 is ABR)
Router R5 and R5 are in Area 0

Below the configurations of routers R1 to R6 with a solution:
R1:
interface Loopback1
ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
duplex full
!
router ospf 1
router-id 1.1.1.1
log-adjacency-changes detail
network 1.1.1.1 0.0.0.0 area 0
network 192.168.1.0 0.0.0.255 area 0
R2:
interface Loopback1
ip address 2.2.2.2 255.255.255.255
!
interface Tunnel1
ip address 172.16.16.2 255.255.255.0
tunnel source 192.168.2.1
tunnel destination 192.168.3.2
!
interface FastEthernet0/0
ip address 192.168.1.2 255.255.255.0
duplex full
!
interface FastEthernet1/0
ip address 192.168.2.1 255.255.255.0
speed auto
duplex auto
!
router ospf 1
router-id 2.2.2.2
log-adjacency-changes detail
area 1 stub
network 2.2.2.2 0.0.0.0 area 0
network 172.16.16.0 0.0.0.255 area 0
network 192.168.1.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 1
!
R4:
interface Loopback0
ip address 4.4.4.4 255.255.255.255
!
interface FastEthernet0/0
ip address 192.168.2.2 255.255.255.0
duplex full
!
interface FastEthernet1/0
ip address 192.168.3.1 255.255.255.0
speed auto
duplex auto
!
router ospf 1
router-id 4.4.4.4
log-adjacency-changes detail
area 1 stub
network 4.4.4.4 0.0.0.0 area 1
network 192.168.2.0 0.0.0.255 area 1
network 192.168.3.0 0.0.0.255 area 1
!
R3:
interface Loopback1
ip address 3.3.3.3 255.255.255.255
!
interface Tunnel1
ip address 172.16.16.1 255.255.255.0
tunnel source 192.168.3.2
tunnel destination 192.168.2.1
!
interface FastEthernet0/0
ip address 192.168.3.2 255.255.255.0
duplex full
!
interface FastEthernet1/0
ip address 192.168.4.1 255.255.255.0
speed auto
duplex auto
!
router ospf 1
router-id 3.3.3.3
log-adjacency-changes detail
area 1 stub
network 3.3.3.3 0.0.0.0 area 1
network 172.16.16.0 0.0.0.255 area 0
network 192.168.3.0 0.0.0.255 area 1
network 192.168.4.0 0.0.0.255 area 0
!
R6:
interface Loopback1
ip address 6.6.6.6 255.255.255.255
!
interface FastEthernet0/0
ip address 192.168.5.1 255.255.255.0
duplex full
!
interface FastEthernet1/0
ip address 192.168.4.2 255.255.255.0
speed auto
duplex auto
!
router ospf 1
log-adjacency-changes detail
network 6.6.6.6 0.0.0.0 area 0
network 192.168.4.0 0.0.0.255 area 0
network 192.168.5.0 0.0.0.255 area 0
R5:
interface Loopback1
ip address 5.5.5.5 255.255.255.255
!
interface FastEthernet0/0
ip address 192.168.5.2 255.255.255.0
duplex full
!
router ospf 1
log-adjacency-changes detail
network 5.5.5.5 0.0.0.0 area 0
network 192.168.5.0 0.0.0.255 area 0
!
Here is OSPF neighbor routers:
R2#sho ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/BDR 00:00:32 192.168.1.1 FastEthernet0/0
3.3.3.3 0 FULL/ - 00:00:34 172.16.16.1 Tunnel1
4.4.4.4 1 FULL/BDR 00:00:33 192.168.2.2 FastEthernet1/0
R3#sho ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
6.6.6.6 1 FULL/BDR 00:00:36 192.168.4.2 FastEthernet1/0
2.2.2.2 0 FULL/ - 00:00:36 172.16.16.2 Tunnel1
4.4.4.4 1 FULL/DR 00:00:34 192.168.3.1 FastEthernet0/0
Waiting for your comments and feedback.