[c-nsp] OSPF design question
Justin M. Streiner
streiner at cluebyfour.org
Tue Jun 28 16:11:26 EDT 2005
I have a pair of interconnections between two networks running OSPF,
though I'm only running on one at the moment. The rough layout looks like
this:
backbone_router_A <---network backbone---> backbone_router_B
| |
layer 2 firewall layer 2 firewall
| |
backend_router_A <---separate backbone---> backend_router_B
The backbone uses OSPF process ID 100 and the back-end network uses OSPF
process ID 101, each with their own backbone area. The back-end routers
handle the redistribution of routes between the two OSPF processes. The
interconnect networks are their own appropriately numbered areas connected
to area 0 on the backbone network. All of the routers are Ciscos.
The links need to operate in an active-passive mode because of the
firewalls that sit between the networks. Traffic that exits the back-end
network via one interconnect and tries to return via the other will break
because the second firewall has no session cache entry built for it and
drops the packets.
Under many circumstances, this could be accomplished by making the OSPF
link cost on both sides of one of the interconnects higher than the other.
When I tried that, the costs were not being honored correctly, so I
couldn't guarantee route symmetry in both directions at the interconnect
points. I'm trying to remember my OSPF preference flowchart from several
years ago, but I seem to recall metrics/costs not being preserved in
certain cisrumstances, and maybe I'm getting bitten by this.
I can't use weighted static routes to accomplish this because of the layer
2 firewalls sitting 'in the middle' of each interconnecting link. If one
side of those interconnecting links (a segment between one of the
routers and the layer 2 firewall) drops, the router on the other side of
that interconnect would happily continue to route packets down a half-dead
segment, since its layer 3 interface would still be up. This requires a
protocol with keepalive or timer-expiration capabilities.
The way I see it, my options are:
1) isolate the two OSPF instances from each other, using BGP
2) fold all of the back-end network into a non-backbone area in OSPF
process 100, getting rid of 101 entirely
3) possibly use OSPF virtual-links
4) do static routes over a keepalive-based transport such as a GRE tunnel.
This would necessitate rule changes on the firewall and MTU issues
would need to be taken into account
Am I missing anything? To people who have done designs like this before,
what approach did you use?
jms
More information about the cisco-nsp
mailing list