Link Layer Topology Discovery first appeared when Windows Vista came out in 2006, but wasn’t very exciting back then, as most people playing with Vista had existing home networks full of XP, which doesn’t support LLTD by default. Now, though, with Vista machines more common and regular people up to testing Windows 7, it’s becoming more than just a curiosity: it actually works now.
This is Windows 7′s network mapper in action at a recent LAN gathering. C7 and Pitchblack aren’t shown in the map; those PCs were running Windows XP and Ubuntu Linux respectively, both of which need a little tweaking to show up properly in Vista/7′s network mapper.
LLTD on Windows XP
Microsoft publish an LLTD responder for XP, but you can’t install it directly if you already have service pack 3 – it’ll tell you something cryptic about how this update is too new and already installed anyway and that you’re basically wasting your time. Which is not very helpful, and actually incorrect, but whatever.
There is a workaround, involving extracting files from that installer and manually placing them in various Windows folders yourself, but like a couple of the commenters there, I got the “failed to install MS_RSPNDR” error. Probably the easiest reliable method would be this:
- Extract the files as explained in that workaround, from the commandline, using the -x switch. Or download the same files in a zip file from my server here: http://tim.id.au/static/WindowsXP-KB922120-v5-x86-ENU.zip
- Go to Network Connections in Control Panel, right-click your network adapter (wired or wireless, doesn’t matter), and click on Properties.
- Click the Install… button, select Protocol, click Have Disk… and browse to and select rspndr.inf (you can find it in \SP2QFE\ip\ or \ic\ in my zip file above).
- Click OK twice, and it should add the Link-Layer Topology Discovery Responder to the “This connection uses the following items:” list. Reboot, and your XP machine should now appear correctly in the network map on a Windows Vista or 7 PC.
Note that this has nothing at all to do with sharing files on a network between XP and Vista; this is just to make XP show up properly in Vista/7′s network mapper. If you’re having filesharing issues, I suggest taking a look at this and/or this.
LLTD on Linux
Microsoft also have a “development kit” for Rally products, including generic C code for an LLTD responder. It has been successfully compiled and run on Debian – here‘s that walkthrough. I had a go at setting it up on Ubuntu 8.04 using his instructions, but ran into a pile of errors:
tim@isengard:~/lltd/Sample Code/native-linux$ sudo make gcc -pipe -Wall -Wno-unused -O3 -g -c -o osl-linux.o ../src/osl-linux.c In file included from ../src/osl-linux.c:46: /usr/include/linux/wireless.h:4: error: expected identifier or '(' before '/' token In file included from ../src/osl-linux.c:46: /usr/include/linux/wireless.h:7:17: error: too many decimal points in number /usr/include/linux/wireless.h:9: error: stray '@' in program /usr/include/linux/wireless.h:904: error: field 'nwid' has incomplete type /usr/include/linux/wireless.h:909: error: field 'sens' has incomplete type /usr/include/linux/wireless.h:910: error: field 'bitrate' has incomplete type /usr/include/linux/wireless.h:911: error: field 'txpower' has incomplete type /usr/include/linux/wireless.h:912: error: field 'rts' has incomplete type /usr/include/linux/wireless.h:913: error: field 'frag' has incomplete type /usr/include/linux/wireless.h:915: error: field 'retry' has incomplete type /usr/include/linux/wireless.h:918: error: field 'power' has incomplete type /usr/include/linux/wireless.h:924: error: field 'param' has incomplete type In file included from ../src/lld2d_types.h:86, from ../src/globals.h:58, from ../src/osl-linux.c:62: [snipped: warnings about ignored attributes] make: *** [osl-linux.o] Error 1 tim@isengard:~/lltd/Sample Code/native-linux$
I did a bit of googling, but couldn’t find anyone with a solution, just more people with the same problem. If any Linux gurus happen to see this, feel free to leave suggestions in the comments or email me with ideas – I’ll happily credit you if you come up with the fix.
Here’s dexter (W7) and radiostar (XP) back on my home network, along with mothership (Vista) and isengard (Ubuntu).
The laptop’s got an Intel 2915ABG wireless card in it, while mothership has a bargain bin Edimax EW-7128g in it. I guess the Edimax card’s drivers don’t support broadcasting their own signal strength or something.
Wireless access points don’t seem to show up on the map unless they’ve got at least one active client.
Mousing over computers in the map reveals their IP address and MAC address, which would be useful for troubleshooting. Right-click another computer, and you can browse their shared files or start a Remote Desktop session.
Rightclicking the gateway lets you go to your modem’s webconfig, which in 3 years’ time (assuming gradual uptake of Windows 7 over XP) might be a useful shortcut when helping people out on the phone.