Thursday, May 04, 2006

Adventures with Routing and networking.

It starts simple. I needed a way to put the source code repository for a couple of projects i do live on the net.

I figured i could the asked the sysadmin for the local ISP for a simple ip forwarding to my machine (it was done before so it was technically possible :-)). Wrong.. after 4 days i find out that "The network has changed so it's not really possible to do a simple ip forwarding". The solution was to get a real IP and use that.

This needs a brief explanation .. where I live you can have internet from either a big provider or a small provider (who is usually reselling a net from a bigger one). Depending on your luck and skill you can have a good or bad deal either way. The point is that the smaller providers tend to provide non routable ip's to people and the bigger ones tend to pass out routable ip's. I was on a smaller one so i had a non-routable ip.

Now.. a non routable ip with a small provider has it's value :-). you can connect to an local DC++ hub and have a proper download speed :-) (get a movie while you prepare your dinner) which is a good thing to have around.

The problem: i have 2 external IP's and a laptop which will move around (house .. work .. travel .. etc). So the solution seems to be simple: put a router with 1 alias on the external interface and doing NAT on the internal interface and you're done.

But.. you only have a 1 + 4 + wireless router and a working computer to do the job. The switch is a Linksys WRT54G (the dreaded rev.5) and the computer needs to be in Windows most the time.

The router doesn't have the capability you need, you can't update the firwmware (check the net for reasons ... just look for "firmware linksys v.5"), and the ICS in Windows complains if you put 2 ip's on the external ip and it will refuse to finish the configuration.

So basically what i did was to look around the net in one day for why the Linksys can't be upgraded and what are really the options .. this was useless in the end because the only almost "working" involved using soldering which i don't have and which i'd rather not do unless really necessary. So this proved fruitless in the end.

After that I put the main computer on the line on the net and configured both ip's and the software on the computer to work properly but i could still not connect anything from the internal LAN to the because ICS could not be start. I also resent installing any software which plays with the networking stack on the machine so i left out any other routing programs and the like.

At one point I found out about netsh which is a shell (same thing as bash is doing for unix command line) but for network settings and configuration. I thought that I could actually use that to make it work and bypass the ICS config altogether. This wasted another evening.

In the end the solution is quite simple. Put the master ip on the external interface (the routable one in this case), enable ICS and then add the secondary one. It works like a charm. What i can't figure out was why the damn wizard wasn't able to ask me a simple question: "Which IP should I consider primary on this interface ?"

Mihai