Hi There,
I've got a tricky problem involving OSPF, loopback interfaces, multi-homing
and source IP addresses on Windows 2003. Have a little look at the network
layout we're trying...
http://www.twfnet.com/ilxbgp01.gif
The two SOVR machines are Linux boxes acting as routers running Quagga BGP
and OSPF demons. All the BGP and multihoming across the ISPs is working
nicely. The OSPF demons are running the OSPF area (0.0.0.0) successfully and
the Windows 2003 server is collecting a pair of default routes from the OSPF
database.
However, in-order to make efficient use of our address space, we're using
private address ranges (10.249.3.0/24 and 10.249.4.0/24) to run the redundant
networks that make up the OSPF area. Real IP addresses are then bound the
loopback interfaces in the servers, routes to these are then injected back
into the OSPF database.
On the Windows 2003 machine, I've added a second loopback interface and
assigned it part of the public address space. Windows OSPF successfully
injects routes to that address range into OSPF and the server is then
addressable on the Internet. In-bound connections to terminal services and
IIS work OK. However, pings initiated out-bound from the Windows machine
don't get replied to. Out-bound packets make it to their destination.
The reason that ping requests are not answered is because the source IP
address included in the packet is the local/private address of the Windows
server (mostly, 10.249.4.4 but this changes with OSPF.) Naturally, Internet
connected machines are unable to reply to these packets.
How do I force the Windows server to send it's packets with the source IP
address set to be that of the additional loopback interface I've installed?
Essentially, I need all packets to come 'from' the loopback interface
("LoopbackForOSPF" in my drawing.)
As a side-issue, the eagle-eyed amongst you will notice that the public IP
assignment for my OSPF loopback interface is a /30 subnet. Ideally, I'd like
the loopback to have just one IP address (/32) and for OSPF on Windows to
inject a route to that into the OSPF database but it seems that you can't
assigned a /32 subnet mask to an interface.
I know that this is a really complicated problem but I'd love to get an
answer.
Cheers
Jason.