Now talking back about the solution. First I would like to share my strategy about my approach to solve this FR puzzle. My idea here is to break the scenario in tiny parts and for this purpose I took a Piece of paper and made a chart to see what are restrictions and how to overcome those restrictions in best possible way.
So here is how my chart looked alike:
Now by looking at this chart you should have basic idea about how to solve this puzzle.
Here is a step by step config of each router.
So now at this point we have basic L2 connectivity to all other peer routers.
Now lets see if we can ping our own interfaces, which will accomplish the requirement of full reachability including reachability to self interfaces.
lets hop on to R3 and first ping peer routers to verify basic L2 connectivity:
So we can reach the peer routers but can't ping our own interface. "Debug Frame-Relay packet" gives us a great clue here that L3 to L2 resolution is not occurring for local interface. Here is a quick way to fix this:
Now by repeating same process i.e. putting map for local ip with local dlci, we can achieve full reachability over Router R1, R2 and R3.
But what about R4 ?
Lets hop on to R4 and see if it can ping it's own IP address without adding more config:
And magically R4 can ping it's own ip address without adding more config. But why is that?
Hmmm.... that's because it's a FR P2P sub-interface which is same as a back to back P2P connections between routers. It doesn't require any manual L3 to L2 resolution.
Now lets verify last part, if traffic destined from R2 towards R4 transit through R1:
And sure enough it is :-)
And there is one more FR challenge underway :-)