The masquerading code is still labeled as experimental in the Linux 2.0.x kernels (where x <= 29), so it is important to select the configuration option of Code Maturity Level when compiling a new kernel.
* Code maturity level options * Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [N/y]? y
After that point you can choose the options as shown in the article.
The options for ICMP, ipautofw support and the modules for VDOLive, CUSeeMe and Quake are only available in the pre-2.0.30-2 “Bumper” patch. The patch can be obtained from ftp://vger.rutgers.edu/pub/linux/Net/patches/pre-patch-2.0.30-2.gz.
You can apply the patch file by saving it in the /usr/src/linux directory and then using the following commands (or your own favorite set):
gunzip pre-patch-2.0.30-2.gz patch -p1 < pre-patch-2.0.30-2 make config make dep make clean make zImage ... make modules make modules_install
After that just install your new kernel and reboot.
Note that I ran into a small problem when compiling ipfwadm (version 2.3.0) after I installed the patch file. It seems the /usr/include/linux/ip_fw.h changed enough to cause a compile error. You can either restore the original ip_fw.h file (ip_fw.h.orig) and remake ipfwadm, or add the line
to the ipfwadm.c file before the inclusion of ip_fw.h.