IP Masquerade 是 Linux 的一项网路功能。如果一台 Linux 主机使用 IP Masquerade 功能连线到网际网路上,那么接上它的电脑(不论是在同一个区域网路上或藉由数据机连线)也可以接触网际网路,即使它们没有获得正式指定的 IP 位址。
这使得一些电脑可以隐藏在闸道(gateway) 系统后面存取网际网路而不被发现,看起来就像只有这个系统在使用网际网路。突破设定良好的伪装(masquerade)系统之安全防护应该会比突破良好的封包过滤式防火墙(packet filter firewall)来得更加困难(假设两者之中都没有错误)。
IP Masquerade 已经发展多年而趋于成熟,因此已正式并入 Linux 2.2.x 的核心中。 从 1.3.x 版的核心开始已经内建这项支持。许多个人甚至公司正在使用它,而有满意的结果。
浏览网页以及硬件签入(telnet)已经有回报表示可以在 IP Masquerade 上运作。文档传输(FTP),网路交谈(IRC) 以及聆听 Real Audio 现在可以载入某些模块配合。其它的网路资料流音讯 (streaming audio) 像是 True Speech 以及 Internet Wave 也能运作。一些通信论坛中的使用伙伴甚至还尝试过视讯会议软件。 Ping
现在配合新近可以取得的网际网路控制信息协定(ICMP)修补档也能运作。
更完整的支持软件列表请参考 4.3 节。
IP Masquerade 在数种不同的作业系统及平台上与 '客户端机器' 配合良好。 成功的案例有使用 Unix, Windows95, Windows NT, Windows for Workgroup (with TCP/IP package), OS/2, Macintosh System's OS with Mac TCP, Mac Open Transport, DOS with NCSA Telnet package, VAX, Alpha with Linux, 甚至 Amiga with AmiTCP 或 AS225-stack 的系统。 这列表还在不断增加当中。重点就是,只要你的系统使用 TCP/IP 协定,它就应该能和 IP Masquerade 一起工作。
节自 Ken eves 的 IP Masquerade FAQ:
这是大部分简单的设定草图: SLIP/PPP +------------+ +-------------+ to provider | Linux | SLIP/PPP | Anybox | <---------- modem1| |modem2 ----------- modem | | 111.222.333.444 | | 192.168.1.100 | | +------------+ +-------------+ 上面的草图中一台安装并执行 ip_masquerading 的 Linux 机器使用 modem1 经由 SLIP/or/PPP 连接网际网路。它有一个 指定的 IP 位址 111.222.333.444。它设定 modem2 允许拨接者 签入并起始 SLIP/or/PPP 连结。 第二个系统(不必是执行 Linux 的系统)拨接进入 Linux 机器并起始 SLIP/or/PPP 连结。它在网际网路上并没有指定的 IP 位址所以它使用 192.168.1.100。(参阅下述) 配合 ip_masquerade 及适当递送配置(routing configured) Anybox 这台机器可以跟网际网路交流就如同它真的连在上面般 (除了少数例外)。 节录 Pauline Middelink: 别忘记提到 ANYBOX 应该把 Linux 机器当作它的闸道(无论是 预设递送路径或只是个子网路都没关系)。如果 ANYBOX 不能够 这样设, Linux 机器应该为所有要递送的位址做代理位址解析 析协定(proxy arp) 服务,但代理位址解析的设定超过这份文件 的范围。 下面节录自 comp.os.linux.networking 的一篇布告并且稍加编辑以 符合上述范例的用词: 。我告诉 ANYBOX 这台机器跑 slip 的 linux 机器是它的闸道。 。当一个封包从 ANYBOX 进入 linux 机器时,它会指定新的来源埠 号(source port number),把它自己的 ip 位址塞入封包的标头并 储存原来的。然后它将会藉由 SLIP/or/PPP 界面把修改过的封包 送上网际网路。 。当一个封包从网际网路来到 linux 机器时,如果埠号是上面指定 的其中一个,它将会取出原来的埠号以及 ip 位址,把它们放回封 包的标头,并且把封包送往 ANYBOX 。 。送出封包的主机将永远不知道其中的差别。
一个 IP Masquerading 的例子:
下面的图示是典型的例子:-
+----------+ | | Ethernet | abox |:::::: | |2 :192.168.1.x +----------+ : : +----------+ PPP +----------+ : 1| Linux | link | | ::::| masq-gate|:::::::::// Internet | bbox |:::::: | | | |3 : +----------+ +----------+ : : +----------+ : | | : | cbox |:::::: | |4 +----------+ <-Internal Network->在这个例子中我们考虑四台电脑系统(想必遥远的右方还有些东西让你到网际网路的 IP 连线能够连接,以及一些(远超过这一页)在网际网路上你有兴趣交换信息的东西)。 这个 Linux 系统
masq-gate
是 abox
, bbox
, cbox
内部网路机器连接网际网路的伪装闸道。
内部网路使用指定的私用(private) 网路位址,在这个案例中是 class C 网路 192.168.1.0, Linux 机器拥有位址 192.168.1.1 而其它系统也拥有此网路上的位址。
这三台机器 abox
, bbox
以及 cbox
(它们可以执行任何作业系统 - 像是 Windows 95, Macintosh MacTCP 或甚至是另一台 Linux 机器,只要它们能了解 IP)可以连线到网际网路上的其它机器去,然而这个伪装系统闸道 masq-gate
转换它们所有的连线所以这些连线看起来像是原本即从伪装闸道 masq-gate
本身发出的,而且还安排伪装连线传回的资料转回原先的系统 - 所以在内部网路上的系统看到的是直接通往网际网路的递送路径而且不知道他们的资料被伪装过。
** 请参考 IP Masquerade Resource 以获得最新信息。**
** 请参考 IP Masquerade Resource 以获得最新信息。**