| S | D | N  ···   THEMES.ORG · NEWSFORGE · GEOCRAWLER.COM My OSDN · OPEN SOURCE JOBS · CONFERENCES  
Open Logo

 
 
Current Content Advertising Info Our Sponsors About Us Site Map/FAQ Contact Us

=>

FEATURE
Masterclass
Feature

By: Perry Metzger

BSD's link to the Internet protocol stack


Some years ago, when the ARPANET was young and the protocol it ran was called NCP, some researchers came up with the idea of linking together multiple packet-switched networks into an overlay network they called (at the time) a "catenet" but which is now more popularly known as the "Internet." To try the idea out, a new protocol stack was developed, called TCP/IP. It offered all sorts of interesting features, including the ability to seamlessly stitch together multiple different underlying networks.

For protocols like TCP/IP to work, each machine on the network needs its own unique number to identify it, called an "address." TCP/IP was built with the future in mind: It had 32-bit addresses, enough for 4,294,967,296 unique host systems to be connected. No one involved thought that the world was going to have that many computers-after all, computers were very expensive and handled hundreds or thousands of users at a time-so this seemed like a nice, safe size for the address field.

Unfortunately, TCP/IP turned out to be a successful protocol. Wildly successful, in fact. So far beyond its developers' wildest imaginations that it spawned a stock-market bubble in the late 1990s. Even by the early 1990s, however, it started to become obvious that every person on the planet might actually want to have a machine with an IP address. Given that there were already more than four billion people on the planet and only four billion addresses to go around, the dilemma was immediately obvious.

The problem was even worse than one would naively expect, in fact, because IP addresses cannot be allocated with 100%, or even 50%, efficiency. The prefix of an IP address is used to figure out on which route to send a packet through the network; networks can't be renumbered quickly, so it is necessary to assign network numbers knowing that only a small fraction of the IP addresses on a network will end up being used. The people who allocate IP addresses started being very tightfisted with them some years ago in an attempt to prevent them from running out.

How bad is the problem? So bad that people get charged extra money for getting extra IP addresses. Moreover, individuals (and companies) have spent lots of money on protocol-translator boxes called NATs (Network Address Translation) to try to make whole networks look like a single IP address to the Internet. You can buy commercial boxes designed to do this for large corporate networks, or even boxes to attach to your cable modem or DSL line at home, and fool the Net into thinking that you have only one machine when in fact you have many.

NAT has a lot of problems: You can't easily run servers on an NAT-ed network (if at all), it introduces a failure point into your network, it breaks modern security protocols like IPSec that depend on the endpoints in the network having unique IP addresses, it's cumbersome, etc.

To address these problems, years ago the IETF (the main standards body for Internet protocols, see www.ietf.org/) started working on a new generation of the IP protocol that would have a larger address field. The version of IP that most people are familiar with is version 4 of the protocol; the new version is IP version 6, or IPv6. (What happened to version 5? That one was an experimental protocol called ST-II that's long defunct.).

Instead of having 32-bit addresses, IPv6 packets have 128-bit addresses. This isn't just four times the address space-it is 79,228,162,514,264,337,593,543,950,336 times more address space. This is generally considered to be an improvement over version 4.

Unfortunately, although the basic IPv6 protocols were designed some years ago, it takes a long time to deploy a new Internet protocol from scratch. To run v6, you need a new TCP/IP stack. The TCP/IP stack is an intimate part of a computer's operating system, so that means that all the operating-system vendors have to release new versions of their OSs; since every machine that has to speak v6 eventually needs the new stack, that means an OS upgrade for every machine on the Net-all hundreds of millions of them. The applications running on the machines also have to be changed in many cases because a lot of them make assumptions about address length that need to be removed from the code.

I bet you've been wondering what any of this has to do with Open Source, and BSD in particular. It should not be surprising that the Open Source community has been at the forefront of IPv6 development. The BSD networking stack has always been something of a reference implementation of TCP/IP, and lots of the initial experimentation with IPv6 has been done on the BSD platform.

Some of that work was done at the Naval Research Laboratory, some at INRIA in France, and some by the Japanese KAME project (see www.kame.net/). In the last year or so, all the major BSD flavors have integrated the KAME project work, and so all of them now support IPv6 as well as the traditional IPv4 protocol.

Because BSD user utilities are maintained by the same projects maintaining the kernels, new releases of the BSDs all properly support v6 in their user code. For example, a user of NetBSD 1.5 can telnet or ssh over v6, traceroute v6 networks, send e-mail over v6, or even do NFS mounts over v6. (Recent versions of the Linux kernel now support v6 as well, although not all distributions of Linux have integrated v6-aware user utilities.)

KEY POINTS
  • A lot of the initial experimentation with version 6 of the Internet Protocol has been done on the BSD platform.
  • The BSD networking stack has always been something of a reference implementation of TCP/IP.
  • Japan's KAME project has been hard at work modifying Open Source applications to work with IPv6 and making the patches available to the community.

On the application side, the KAME project people have been hard at work modifying Open Source applications to work with IPv6 and making the patches available to the community. In the closed-source world, such migration is hard-a user cannot simply fix missing functionality like that in an application they've bought off the shelf.

None of this could have taken place so fast without Open Source. Among the commercial OS vendors, v6 integration is still taking place-only Sun's Solaris 8 is near to being what the Open Source platforms have achieved. Open Source proves its worth again.

For more information on IPv6, see hwww.ipv6.org

-Perry Metzger is president and CEO of Wasabi Systems.

<  | Last Rage  >

 
Free Subscriptions Free Subscriptions!

OpenBench Labs OpenBench Labs
COMING SOON!
Free Subscriptions Subscriptions
Special Offer!
FREE 12 month subscription!



You'll be the envy of your gadget-loving cube-farm neighbors with this baby. Watching the Matrix DVD on your lap?! All you can say to that is schweet...
www.thinkgeek.com



CURRENT ISSUEADVERTISING INFOOUR SPONSORS
ABOUT USSITE MAP / FAQCONTACT US

Copyright ©2001 Custom Communications. All rights reserved.