原始文件:Linux IP Masquerade mini HOWTO
Ambrose Au, [email protected]
v1.00, 1 January 1997
翻译维护:<a href=mailto:[email protected]>asd chen</a>
这份文件描述如何在一台 Linux 主机上起动 IP Masquerade 功能
,允许没有注册网际网路 IP 位址的连线电脑经由你的 Linux 机器
连接网际网路。
1. 简介
1.1. 简介
这份文件描述如何在一台 Linux 主机上起动 IP Masquerade 功能
,允许没有注册网际网路 IP 位址的连线电脑经由你的 Linux 机器
连接网际网路。你的机器可能是以乙太网路连接 Linux, 也可能是其
它种类,像是拨接的点对点(ppp) 连线。这份文件将会强调乙太网路
连线的情况,因为这应该是最常见的案例。
这份说明文件是想作为让你的 IP Masquerade 能在最短时间内运作
的快速指引。最新的消息以及资讯可以在我所维护的 IP Masquerade
Resource 网页上找到。如果你有任何关於 IP Masquerade 的技术
问题,请加入 IP Masquerade 邮递列表而别寄电子邮件给我,因为
我的时间有限,而且 IP_ Masq 的发展者们更有能力回答你的问题。
这份文件最新的版本可以在 IP Masquerade Resource 上找到,里面
也有 HTML 以及 postscript 的版本。
This document is copyright(c) 1996 Ambrose Au, and it\"s a free
document. You can redistribute it under the terms of the GNU General
Public License.
The information and other contents in this document are to the best of
my knowledge. However, ip_masq is experimental, and there is chance
that I make mistakes as well; so you should determine if you want to
follow the information in this document.
Nobody is responsible for any damage on your computers and any other
losses by using the information on this document. i.e.
THE AUTHOR IS NOT RESPONSIBLE FOR ANY DAMAGES INCURRED DUE
TO ACTIONS TAKEN BASED ON THE INFORMATION IN THIS DOCUMENT.
2. 背景知识
2.1. 什麽是 IP Masquerade?
IP Masquerade 是 Linux 发展中的一种网路功能。如果一台 Linux
主机使用 IP Masquerade 功能连线到网际网路上,那麽接上它的电
脑(不论是在同一个区域网路上或藉由数据机连线)也可以接触网际
网路,即使它们没有获得正式指定的 IP 位址。
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
or AS225-stack 的系统。
2.3. 谁可以从 IP Masquerade 中获益?
。如果你有台连接网际网路的 Linux 主几,而且
。如果你有一些执行 TCP/IP 连接到 Linux 机器的电脑在区域网路
上,以及/或是
。如果你的 Linux 主机有一个以上的数据机并且作为 PPP 或 SLIP
伺服器连接其它电脑,它们
。这些”其它”机器没有正式指定的 IP 位址。(这些机器从这里开
始以後就称为”其它”机器)
。而且当然,如果你希望这些”其它”机器不必花额外的费用就能连
上网际网路:)
2.4. 谁不需要 IP Masquerade?
。如果你的机器是单独一台(stand-alone) 连接网际网路的 Linux
主机,那麽执行 ip_masq 没什麽意义,或者
在这个例子中我们考虑 4 台电脑系统(想必遥远的右方还有些东西
让你到网际网路的 IP 连线能够连接,以及一些(远超过这一页)在
网际网路上你有兴趣交换资讯的东西)。这个 Linux 系统伪装闸道
是 abox, bbox, cbox 内部网路机器连接网际网路的伪装闸道。内部
网路使用指定的私用(private) 网路位址,在这个案例中是 class C
网路 192.168.1.0, linux 机器拥有位址 192.168.1.1 而’其它’
系统也拥有此网路上的位址。
这三台机器 abox, bbox 以及 cbox (它们可以执行任何作业系统-
像是 Windows95, Macintosh MacTCP 或甚至是另一台 linux 机器
,只要它们能了解 IP )可以连线到网际网路上的其它机器去,然而
这个伪装系统闸道转换它们所有的连线所以这些连线看起来像是原本
即从伪装闸道本身发出的,而且还安排伪装连线传回的资料转回原先
的系统-所以在内部网路上的系统看到的是直接通往网际网路的递送
路径而且不知道他们的资料被伪装过。
我们将称第一个区块为”24位元区块”,第二个为”20位元区块
”,而第三个则称为”16位元区块”。注意到第一个区块就只是
个 class A 网路号码,第二个区块则是连续的 16 个 class B
网路号码,而第三个区块是一组 255 个连续的 class C 网路
号码。
所以,如果你要使用一个 class C 网路的话,那麽你的机器应该以
192.168.1.1, 192.168.1.2, 192.168.1.3, ..., 192.168.1.x 来名
之。
192.168.1.1 通常是闸道这台机器,在此即你连上网际网路的 Linux
主机。注意 192.168.1.0 以及 192.168.1.x 分别为网路以及广播
位址,是保留的。避免在你的机器上使用这些位址。
3.3. 配置”其它”机器
除了为每台机器设定适当的 IP 位址之外,你也应该设定适当的闸道
。一般说来,这是非常直接了当的。你只需简单地输入 Linux 主机
的位址(通常是 192.168.1.1)作为闸道位址。
关於领域名称服务,你可以加入任何 DNS 系统。最可能的应该是你
Linux 使用的那一个。你也可以选择性地加上任何网域字尾( domain
suffix) 。
在你重新配置这些 IP 位址之後,记得重新启动适当的服务或是重新
开机。
下面的配置□例假设你使用一个 Class C 网路并且以 192.168.1.1
作为 Linux 主机的位址。请注意 192.168.1.0 及 192.168.1.255
是保留的。
3.3.1. 配置 Windows 95
1.如果你还没有安装网路卡以及界面驱动程式,现在做。
2.到’控制台/网路’里去。
3.如果你的网路配置里没有’TCP/IP 协定’则加进去。
4.在’TCP/IP 内容’中,选择’IP 位址’并且把 IP 位址设定为
192.168.1.x,(1<x<255) ,并且把子网路遮罩设为 255.255.255.0
5.在’通讯闸’中加入 192.168.1.x 作为你的闸道。
6.在’DNS 配置’/’DNS 伺服器’下加入你的 Linux 主机使用的
DNS (通常可以在 /etc/resolv.conf 里找到)。你可以选择性地
加入适当的网域字尾搜寻顺序。
7.不要变更原先的其它设定,除非你知道自己在做什麽。
8.在所有的对话盒中按下’确定’并且重新启动系统。
9.测试网路连线,ping 你的 linux 主机: 从’开始/执行’,输入
ping 192.168.1.1
(这只是区域网路连线测试,你现在还不能 ping 外面的世界。)
10.你可以在 windows 目录下选择性地建立一个 HOSTS 档案,如此
你可以使用区域网路里的机器名称。在 windows 目录里有个称为
HOSTS.SAM 的□例。
┌—————————————————————————————┐
│3.3.2. 配置 Windos for Workgroup 3.11 │
│3.3.3. 配置 Windows NT 3.51 │
│3.3.4. 配置 UNIX 系列的系统 │
│3.3.5. 配置使用 NCSA telnet 套件的 DOS │
│3.3.6. 配置执行 MacTCP 的 MacOS 机器 │
│3.3.7. 配置执行 Open Transport 的 MacOs 机器 │
│3.3.8. 配置使用 DNS 的 Novell 网路 │
│3.3.9. 配置其它像是 OS/2 等系统 │
└—————————————————————————————┘
3.4. 配置 IP 转送(Forwarding)的方式
到目前为止,你应该已经安装好核心以及其它需要的套件,也载入了
你的模组。同时,”其它”机器的 IP 位址,闸道,以及 DNS 也该
全都设定完成。
现在,唯一剩下要做的事是使用 ipfwadm 转送适当的封包给适当的
机器:
ipfwadm -F -p deny
ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0
其中 x 视你的子网路而定,为下列数字之一,而 yyy.yyy.yyy.yyy
则是你的网路位址。
netmask | x | Subnet
~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
255.0.0.0 | 8 | Class A
255.255.0.0 | 16 | Class B
255.255.255.0 | 24 | Class C
255.255.255.255 | 32 | Point-to-point
例如,如果我是在一个 class C 子网路上,我得输入:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0