OSPF and PBR?
Hi,
I am trying to setup OSPF and PBR between 2 Fortigate but I always end up with a "reverse path fail error" when I enable my PBR rule. Here is what I am trying to achieve:
The client has 2 sites (let's call them SITE1 and SITE2) linked by two different links. One link is a best effort 1Gbps link (LINK1) and the other one is a low latency guaranteed 300Mbps link (LINK2).
OSPF is working between both site and cost has been manipulated to make sure that the preferred route is on LINK1. Should LINK1 stop working, route on LINK2 comes up and everything goes through that link, which is fine.
We are only trying to manipulate one type of communication, VoIP, which has its own dedicated subnet. The client wants to primarily use LINK2, even if LINK1 is up. So, I created one PBR in each site that look like this:
SITE1: From VOIP_SUBNET_SITE1 to VOIP_SUBNET_SITE2, use interface LINK2 and according gateway
SITE2: From VOIP_SUBNET_SITE2 to VOIP_SUBNET_SITE1, use interface LINK2 and according gateway
Problem is, as soon as I bring the PBR route up on both side, the VoIP subnet stop talking to each other.
If I do a traceroute, I can see the packet being sent correctly on LINK2 but no answer comes back. If I try from SITE1 to SITE2, the packet goes through the Fortigate in SITE1 as it should and is sent to SITE2 where it is received. There, the Fortigate drops the packet saying that "reverse path check fail, drop", as if it had no route for the source address of the packet. Problem is, there is a route from OSPF (using LINK1) and another route from PBR (using LINK2).
What is even more weird is that, if I do the same from SITE2 to SITE1, using the exact same IP address (but reversed), the packets actually pass through the Fortigate in SITE2 (the same one complaining about a reverse path check failing) and is send to SITE1, where the same problem occurs (even if in the previous test it was able to send packet!).
Another test I did was to disable my PBR route. Then, my packet are passing without any trouble between the two site using the exact same IP addresses but on LINK1 instead of LINK2. Then, I went ahead and disabled LINK1 completely, forcing all traffic to use LINK2. Again, everything work as it should, my VoIP test packet using the same IP addresses as previously pass through without any trouble, using LINK2.
So, from what I have read, I shouldn't be a problem to manipulate route using PBR on top of OSPF. But I can't get it to work.
Any idea?
