OSPF /32 issue in MPLS VPN Scenario
===========================

Yesterday i and my office colleague were doing a MPLS-VPN scenario,where we stuck
at a place , the issue was really good , thats why thought of posting it on my blog.

The scenario was like

R1(CE)—-R3(PE)—R4(P)—–R5(PE)—-R2(CE)

Here in this scenario Eigrp is running between R1 and R3 and R5 and R2.we have
taken vrf name RED,also OSPF is running as underline IGP between R3–R4–R5,here
BGP is not running on R4.
The loopback interfaces addresses are taken from the device id like for R1 the
loopback is 1.1.1.1/24 likewise till R2 2.2.2.2/24.
We have configured everything properly as per the diagram,means we have correctly
defined “ip vrf RED” with “RD 100:1” and imported and exported correctly from and to
BGP with “route-target export 100:1” and “route-target import 100:1” at both PE ends
Correctly defined the vpnv4 and ipv4 address-families in BGP,means everything was
configured correctly and with high accuracy.
Now here comes the issue we were seeing loopback routes in R1 from R2 and vice-versa.
It means that we have configured correctly however when we tried to ping ,the ping
was failing,we have rechecked the configuration by:-
R3#sh ip bgp vpnv4 all
All the routes were marked with *> means they are best routes indeed.
>We checked at both PE’s R3 and R5.
R3#sh ip route vrf RED
The routes were received properly.
>Also checked the MPLS LIB and LFIB.
R3#sh ip mpls ldp bindings
R5#sh ip mpls forwarding-table
They were also seems to look good.
>Even we checked the CEF table.
R3#sh ip cef
R3#sh ip cef vrf [NAME] {prefix} detail
>However the issue was same we were still not able to ping end to end.

After around two hours we have atlast figured the issue.
Here are the details.
>I was running OSPF as IGP between P/PE routers in the MPLS backbone and using
loopback interfaces on the PE routers for BGP updates and for testing.I did make these
interfaces use a /24 mask.The configuration is looks like
R3#show run
interface loopback 0
ip address 3.3.3.3 255.255.255.0
….
router ospf 1
log-adjacency-changes
network 3.3.3.0 0.0.0.255 area 0

Checking the routing table on the second PE(R5) would show that a /32 mask has been
advertised for the 3.3.3.3 network rather than 3.3.3.0/24 as i had intended.

R5#show ip route
Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS
level-2
ia – IS-IS inter area, * – candidate default, U – per-user static
route
o – ODR, P – periodic downloaded static route

Gateway of last resort is not set

3.0.0.0/32 is subnetted, 1 subnets
O       3.3.3.3 [110/3] via 192.168.35.3, 00:03:55, FastEthernet 1/0

It is therefor not as i intended in the MPLS forwarding table as a /24 either.

R5#show mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched    interface
16     16          3.3.3.3/32 0          Fa1/0             192.168.35.3
17     Untagged    5.5.5.5/32 0          Fa1/0          192.168.35.3
18     Pop tag     192.168.23.0/24 0      Fa1/0            192.168.35.3

Although then i recalled my OSPF studies that this can be resolved by issuing
“ip ospf network point-to-point”command under the loopback interfaces in P/PE’s.
Or by simply taking /32 mask for loopback interfaces,because we are using OSPF and
in OSPF either we should use..”network point-to-point” under loopback interface or
use /32 mask ,because even if we are taking /24 mask the ospf will advertise
/32 mask by default..so there may be instability in routing table..

Always watch for simple things first before going into complex scenarios :)