| Carefully, Correctly Wrong ( @ 2005-08-27 12:39:00 |
| Current mood: | geeky |
| Current music: | Uninvited Guest - "Beautiful Orchid" |
| Entry tags: | geek, old skool daze |
Wireless Networking: Sanity Check
Further to my initial ponderings and after much research (particularly from the Linux Wireless LAN HOWTO and Freenode #wireless FAQ), I think I've got this wireless networking cracked, but I'd like to just run it past people for a last-minute sanity check.
The primary problem is that there are two properties on the Bristol Road in Birmingham that we wish to connect via 802.11b wireless. They're both shops owned by my sister, they're about 220m apart, and they almost, but not quite, have LOS. The first property is Old Skool Daze, a ticket outlet and record shop. The second is Zen, which is full of hippy crap. The Bristol Road that runs between them has many nice, radio-reflective buildings so I'm expecting that there will be many indirect paths between the two shops, some stronger than others. Getting these two shops linked is a priority.
Old Skool Daze already has a wireless network - it's an old butcher's shop and drilling cables through the thick concrete floor between the lower and upper floors was problematic. It's all running on Windows 2000, with the cards in ad-hoc mode (I don't think the Windows drivers support running as an access point), and using IPSec for security, since that and WEP were the only options at the time of installation. It's a bit flakey, particularly between floors, but I've not been able to work out why - I'd suspect interference or just a lack of vertical signal strength in the built-in omnis, but sometimes Windows filesharing won't work but pinging across the link does (and reliably so), so I think there's some weirdness involving a combination of IPSec, the wifi drivers and SMB. Finding a robust solution to this is also important.
The Solution
At the radio signal level, I know that the Old Skool Daze shop building itself blocks a lot of signal -
kneeshooter has tested this. So my plan is to mount an external aerial with good gain on the front of the shop, such as the RF Technics 9dBi Omni-Directional from MS (Distribution) UK, providers of weird and wonderful wifi whackiness. The use of an omnidirectional will hopefully kill two birds with one stone; as
martling points out, using a directional antenna with no direct line-of-sight is probably a bad idea, and hopefully having a higher-gain antenna in the vicinity of the shop (all the Old Skool Daze desktops will be within 10m of this aerial) will solve any signal problems. Another option would be to have a smaller omni inside Old Skool Daze for the machines there, and a sector antenna for the link to Zen, but this would be more expensive and complicated. I'd welcome opinions on the options here. I am assuming that the building frame of Zen will also block wifi signals much as the one at Old Skool Daze does, hence mounting a second omni or sector aerial outside that shop.
At the wireless protocol level, I'm looking at switching from the ad-hoc network to one revolving around an access point, running off a Linux server at Old Skool Daze wired to the external aerial. I have a handy Prism2.5-based card for this with an external RF connector, which I'm currently testing with hostap right now. I believe that this will give extra stability, particularly since the clients have no need to talk to each other other than through the access point anyway - the AP will also be the Internet gateway and the fileserver for the shop.
At the IP level, I'm thinking of doing away with IPSec, and using VPN instead. I can set up the Linux box as a VPN server, using OpenVPN, and have the Windows clients tunnel all their traffic through the VPN to avoid leakage. This will make the system more simple, since I'm planning on implementing OpenVPN anyway to allow people to connect to the shop from their home connections for remote working. This would also mean that we could offer public wifi access to non-VPN-authenticated clients, which would be nice. Another option would be to use WPA or WPA2, but that would involve replacing the cards - the Actiontec 802.11b cards we're using don't support WPA at the driver level (though ironically the Free drivers under Linux make this perfectly possible).
So basically that's it - I need to look up the cards we're using and find out the decibel or watt strength of the transmitters, and sensitivity of the receivers, and do some calculations to work out whether this is feasible, and what gain I need on the antennas, but as far as I can tell, this is a sane plan. Hence the request for a sanity check - any thoughts? Anything I'm blatantly missing? Anything I can do to test things before I start spending money?
Update: Calculations
The card I'm planning on using in the access point at Old Skool Daze is a Prism-based Linksys WMP11. According to this chart of Prism2-based card specs, it has a transmit power of 16dBm. I'm planning on using aerials with 9dBi gain at each end. The reflective path between the shops is, at an overestimate, roughly 250 metres, giving a free space loss of 88dB. I'm going above
martling's estimates and assuming 15dB loss for the reflection. There's another 3dB (estimated) loss in the cables between the machines and the aerials.
Putting this all together gives a received signal strength of 16 + 9 + 9 - 88 - 15 - 3 = -72dB. This means that I'm looking for a card with a receive sensitivity of -82dB, which according to this chart of Receive Sensitivities shouldn't be too hard to obtain. Sadly, I don't have any figures for the receive sensitivity of the WMP11 to do the calculation in reverse.
Update: I think this setup might be illegal - many things I've read suggest that the power of the transmitter plus the gain of the transmitting aerial (in my case 24dB, taking into account the local cable loss) needs to be less than 20dB to avoid violating the regulations. I don't think I could get away with significantly less gain on the transmitting aerial.
Other Links: Discussion on the manchesterwireless mailing list, the conclusion.