11.2. 配置 Kernel 以进行 IP Masquerade

要使用 IP 伪装功能,您的 Kernel 必须在编译时启用伪装支持。在配置 2.2 系列 Kernel 时,您必须选择以下选项
Networking options  --->
	[*] Network firewalls
	[*] TCP/IP networking
	[*] IP: firewalling
	[*] IP: masquerading
	--- Protocol-specific masquerading support will be built as modules.
	[*] IP: ipautofw masq support
	[*] IP: ICMP masquerading
请注意,某些伪装支持仅作为 Kernel 模块提供。这意味着您必须确保您执行 “make modules” 除了通常的 “make zImage” 来构建您的 Kernel。

2.4 系列 Kernel 不再提供 IP 伪装支持作为 Kernel 编译时选项。相反,您应该选择网络数据包过滤选项
Networking options  --->
    [M] Network packet filtering (replaces ipchains)

在 2.2 系列 Kernel 中,在 Kernel 编译期间创建了许多特定于协议的辅助模块。某些协议开始于一个端口上的传出请求,然后期望在另一个端口上建立传入连接。通常,这些无法被伪装,因为如果不深入了解协议本身,就无法将第二个连接与第一个连接关联起来。辅助模块正是这样做的;它们实际上查看数据报内部,并允许伪装功能适用于支持的协议,否则这些协议将无法被伪装。支持的协议包括

模块协议
ip_masq_ftpFTP
ip_masq_ircIRC
ip_masq_raudioRealAudio
ip_masq_cuseemeCU-See-Me
ip_masq_vdolive对于 VDO Live
ip_masq_quakeIdSoftware 的 Quake

您必须使用 insmod 命令手动加载这些模块以实现它们。请注意,这些模块不能使用 kerneld 守护程序加载。每个模块都接受一个参数,指定它将侦听的端口。对于 RealAudio™ 模块,您可以使用:[1]
# insmod ip_masq_raudio.o ports=7070,7071,7072           
您需要指定的端口取决于协议。Ambrose Au 编写的 IP Masquerade mini-HOWTO 更详细地解释了 IP Masquerade 模块以及如何配置它们。[2]

netfilter 软件包包含执行类似功能的模块。例如,要提供 FTP 会话的连接跟踪,您需要加载并使用ip_conntrack_ ftpip_nat_ ftp.o模块。

注释

[1]

RealAudio 是 Progressive Networks Corporation 的商标。

[2]

您可以联系 Ambrose,地址为 ambrose@writeme.com