Bill Cheswick - Cheap Research

Here are a number of problems I didn't know the answer to, and thought I would put up a problem statement or discussion that folks wandering the web might be interested in addressing. It's cheap research for me, because you are doing the work!

  • Fetching IPv6 routes from a BGP4 peer In the past, for IPv4, I wrote a little program with code extracted from the old gated(8) program to connect to a BGP peer and suck out all the route announcements. This was a pleasant subset of the whole BGP experience because I wasn't announcing any routes, and didn't need to listen on a port, possibly providing a way to break into my host. This program has been a workhorse since 1998.

    Now I need to do the same thing with IPv6. I have the peer. But the protocol has become quite a bit more complicated, involving multicast and the like, which I don't need. There are two programs extant that I know about: quagga, a large, full-featured, and fairly ugly program which is said to work, and openbgp4, a small, tight program that looks about right. The latter is said to no quite support the necessary protocols, and though the latest version appears to have the right sorts of #defines in it, there are XXX-s in code that appears to be important.

    Does anyone have a small, clean, safe program that can suck a list of the IPv6 routes out of a BGP4 peer?

  • Fixed client certificates for Windows XP clients. I want to set up a limited number of PCs (for my kids, etc.) each with a fixed client certificate that they can use to connect to a TLS server at home. These machines can be scattered around the world. The certificate will be something they have (the machine) plus something they know, a password or OTP. Can I generate and install a simple certificate in a Windows XP box without a lot of mechanism, like .net, X802.1x, radius, etc?

  • Public medicine cabinet. We have just remodeled our house, and have to install a medicine cabinet in a spare bathroom. This bathroom is generally used by visitors during, say, dinner parties. Given the propensity of people to poke into medicine cabinets, we'd like to give them some things to find, like poisons, shrunken heads, etc. Any suggestions? Responses here.

  • How come my vision is poor in Denver and other areas of similar altitude. I am near-sighted (about -6 diopters) and I can't quite see the writing on the blackboard in Santa Fe. My glasses work fine when I get back to sea level.

    Cooper Nelson suggests: Probably corneal hypoxia. The cornea has no blood supply, so it gets oxygen directly from tears and the atmosphere. When that oxygen supply is restricted the cornea swells, which could result in the condition you describe.

    I have not heard of such corneal swelling, but I suppose it is feasible. I am not convinced.

  • I need clear, clean instructions on how to create bootable FreeBSD-based CD-ROMs that will run on most systems, and not use the local hard drives. This is for several Knoppix-style applications, but with a cleaner operating system and thinner client.

    There are a fair number of clues on how to do this: the diskless boot code, and the FreeBSD distribution creation cover most aspects of this. But the latter is deep and involved, and I am working to extract the fundamentals into a script that will Just Do It.

    It appears that what I want is a "FreeBSD live CD", and there are several web pages that seem to have helpful information. I am pursuing...

    Solved. I started from the LiveCD software available at sourceforge, and modified it to meet my needs. I can now create bootable FreeBSD CD-ROMs that run strictly from RAM and start the programs I care about. If you are interested in the scripts and directory I use, just ask.

  • I needed a simple, clean interface to the TrueType fonts. Though many programs use them, I have yet to find a simple description of the procedure calls to initialize, select a font, and create a simple bitmap containing the string of my choice. It seems to be much too complicated.

    Avoided. Actually, I have given up on this, and wrote my own bitmap font rendering routines. The routines are part of the science exhibit software, available at

  • Tunneling Windows services was solved with the assistance of William Mark Smith at Stanford. A working solution is described here.

  • Alcohol is good for you. Now that I am on Crestor, which really fixes all the lipids, but good, I am less aggressive about my daily glass of wine. Lou Katz says he's tried the experiment, and it had similar results for him.

  • The right diet pill? Probably not.

  • The growing list of things I had to do, including kernel patches, to get my new ASUS motherboard to work with FreeBSD stable. This is too hard.