网络管理员指南
网络管理员指南-1.网络介绍-1.历史
联网的想法可能象电信一样远旧。考虑生活在石头时代的人,鼓在此可能被用来
了在个人之间传送消息。猜想洞
穴人 A 想要邀请洞穴人 B 参加对方掷岩石的一场比赛,但是他们居住的太远,
B 听不见 A 给他敲的鼓声。因此 A 的选择
是什么?他能 1 )-走到 B 的地方上, 2 )-得到更大的一个鼓,或 3 )-问 C ,C 生
活在 A 与 B 之间,让 C 传送信息。最后
这一个被叫作联网。
当然,我们从我们的祖先的原始的追求和设备走了很长的路了。现在,我们让计算
机互相讨论电线的广阔的集合,纤
维光学,微波,等等,为星期六的足球比赛匹配预约。在下列,我们将处理这被完成
的工具和方法,但是省掉电线,象足球
部分一样。
我们将在这个指南中描述网络的两种类型:那些基于 UUCP ,和那些基于 TCP/IP
的网络.这些是提供方法在两台计算
机之间传送数据的协议全套和软件包。在这章,我们将看到网络的两种类型,并
且讨论他们的内在原则。
我们把网络定义为作为能与对方一起交流的许多主机,经常依靠在参加者之间中
继数据的很多专注主机的服务。主机
经常是计算机,但是不必是;一个人作为主机也能想到 X 终端或聪明的打印机。
主机的小块也被称为地点。
通讯没有某种语言或代码是不可能的。在计算机网络中,这些语言共同作为协议。
然而,在此你不应该想到写的协议,
但是当规定的头相遇时,行为的高度形式化了的代码被观察,例如。处于很类似
的时尚,在计算机网络被使用了的协议仅仅
是为在两个或两个以上主机之间交换信息的很严格的规则。
网络管理员指南-1.网络介绍 网络
UUCP 是 Unix-to-Unix Copy 的一个缩写。它作为程序的一个文件包启动,在连
续的线上转移文件,确定那些转
移的时间,并且在远程地点上开始执行程序。自从 70 年代末它的第一实现以来,
它经历了主要的变化 ,但是它仍然在
它提供的服务中是一名勇士。它的主要的应用仍然是基于拨号的电话连接在宽区
域网络。
UUCP 首先与 1977 年在贝尔实验室被开发,用于在他们的 Unix 发展地点之间
的通讯。在 1978 年中 ,这个网络已经
连接了 80 多个地点。它作为一个应用程序运行电子邮件,象远程打印一样。然而,
系统的中央使用是散布新软件和错误
修正。如今, UUCP 不再被限制到环境。有免费的和商业的为许多平台可得到的
端口,包括 AmigaOS , DOS , Atari
的 TOS ,等等。
UUCP 网络的主要不利条件之一是他们的低带宽。一方面,电话设备对于最大转
移频率有严格的限制。另一方面,
UUCP 连接很少是永久的连接;相反,主机在常规的间隔中相互拨号。因此,大部
分时间,它通过一个 UUCP 网络传递一个
邮件信息,它懒散地位于一些主机的磁盘上,等待下一次一个连接被建立。
尽管有这些限制,仍然有许多 UUCP 网络在整个世界中操作,主要由业余爱好者
运行,它提供私人用户在合理价格
上的联网存取。UUCP 流行的主要的原因是,它与把你的计算机与大的因特网电
缆线联接起来相比是极便宜的。使你的
计算机成为 UUCP 节,你所需要的就是一个调制解调器,一个工作的 UUCP 实现,
以及愿意给你发送邮件和新闻的另外一
个 UUCP 节点。
网络管理员指南-1.网络介绍 网络-1)介绍 TCP/IP 网络
尽管 UUCP 可能是低花费拨号网络连接的合理的选择,有许多种情况证明它的
存储转发技术很顽固,
例如在本地的区域联网( LANs )。这些通常由位于同样建筑中的少数机器组成,
或甚至在一样的地板上的
少数机器组成,他们被互相联系以提供同类工作环境。典型地,你将想要在这些
主机之间分享文件,或在
不同的机器上运行分布式的应用程序。
这些任务要求到联网的一条完全不同的途径。而不是与工作描述一起提交全部文
件,所有的数据在更小
的块上被拆散(文件包),它很快地被提交给目的地主机,他们在此被重新集合。这
类网络被称为一个切换包的
网络。在另外的事情之中,这允许在网络上运行交互的应用程序。这的费用是,
当然,在软件方面极大地增加
了它的复杂性。
被采用的那个系统的答案--以及许多 nonsites --作为 TCP/IP 被知道。在这一节
中,我们将看一看它的内在概念。
介绍 TCP/IP-网络
TCP/IP 追溯它的源头到 1969 年一个由美国 DARPA(防御高级研究项目代理)
创建的一个研究项目。它是一个实验性网络,
ARPANET,在他被证明成功之后,它转化到一个 1975 年的一个操作。
在 1983 年,新的协议套组 TCP/IP 制定为一个标准,网络上的所有主机要求使用
它。当 ARPANET 最终成长为 Internet(ARPANET
本身在 1990 年退出历史),TCP/IP 的使用传播到超越 Internet 本身的网络。最
为著名的是本地区域网络。但是在快速数字电
话设备之前,例如 ISDN,它还有一个提升的特征作为一个拨叫网络的传输。
对于集中一些东西来查找我们讨论的贯穿下面部分的 TCP/IP,我们将考察 Grouc
ho Marx 大学(GMU),位于 Fredland 的某个
地方,作为例子。大多数系运行他们自己的本地区域网络,而一些共享一个,其
它运行几个。他们都是内部连接的,并且通
过一个高速连接到 Internet。
假设你的信箱在数学系连接到 LAN 主机,并且它的名字是 erdos。要访问物理系,
称为 quark,你输入下面的命令:
$ rlogin
Welcome to the Physics Department at GMU
(ttyq2) login:
在提示中,你输入你的注册名,称为 andres,和你的密码。于是你在 quark 上给
出一个 shell,要到达那里你可以输入它就象
你正位于系统控制台。在你退出 shell 之后,你返到你自己的系统提示,你刚刚
使用了一个即时,TCP/IP 提供的交互式应用程
序:远程注册。
当注册到 quark,你可能还想要运行一个 X11 基础的应用程序,如一个功能测绘
程序,或者一个附录预览。来告诉这个应用程序
你想要使它的窗口显示在你的主机屏幕上,你需要设置 DISPLAY 环境变量:
$ export DISPLAY=:
如果你现在开始你的应用程序,他将联络你的 X 服务器而不是 quark 的,并显示
它所有的窗口在你的屏幕上。当然,这要求你有
X11 运行在 erdos。这里的问题是 TCP/IP 允许 quark and erdos 发送 X11 返回并
给你印象你在一个单独的系统中。网络这个几乎是
透明的。
TCP/IP 网络上的另外一个非常重要的应用程序是 NFS,它代表 Network (网络
文件系统)。这是使网络透明的另外
一种方法。因为它基本上允许你从其他主机安装目录层,因此,它们象本地文件
系统一样出现。例如,所有的用户根目录可以
在一个中心服务机器上,从那里所有在 LAN 上的其它主机安装到目录。它的影
响是用户可以记录进入任何机器,并在相同的目
录发现他们自己。同样的,在一个机器上安装要求大空间的应用程序是可能的
(例如:TeX)。并输出这些目录到其他机器。
我们将在章节-返回到 NFS。
当然,这些只是你通过 TCP/IP 网络可以做的事情的例子。可能性几乎是无止境
的。
我们将进一步讨论 TCP/IP 网络。你将需要它来了解如何以及为什么配置到你的
机器。我们将通过检查你的硬件开始,并慢慢上路。
网络管理员指南-1.网络介绍 网络-2)以太网
本文出自: 作者: Andrew Anderson
广泛地被使用在 LANS 上的硬件类型通常被认为是以太网。它与通过接头,分
接头或收发器被纳入它的由一根单个的
电缆线组成的主机。简单的以太网安装起来是相当便宜的,它,和一个每秒 10 兆
位速率的网络转移说明它的流行性。
以太网有三种风情,称为厚和薄,分别地,和双绞线。薄和厚的以太网各个使用一根
同轴电缆,在宽度和你可以把一台
主机纳入这根电缆线的方法上有不同。薄的以太网使用一个 T 型的“ BNC ”接头,
你把它插入到电缆,并且拧一个插
头放在你的计算机的背后。厚的以太网要求你给电缆钻一个小洞,并且使用一个"
vampire 接头"缚上一个接收器。
然后一个或一个以上的主机可以被连结到 接收器。薄和厚的以太网电缆可以运
行 200 和 500 米的最大值,分别地,并
且也因此被称为 10base-2 和 10base-5 。使用一根电缆的双绞线由两根铜丝组
成,它也被发现在一般的电话安装中,
但是通常要求附加的硬件。它也称为 10base-T。
尽管增加一台主机到一个厚的以太网有点毛乎乎的,它并不降低网络。把一台主
机增加到细电缆网安装,因为你必须
切断电揽去插入接头,所以你必须有至少几分钟的时间中断联网服务。
大多数人比较喜欢薄的以太网,因为它是很便宜的: PC 卡只要 US$50,并且电缆
每米只要几分钱。然而,对于大规模
的安装,厚的以太网是更适当的。例如,在 Gmu 数学部门的以太网使用厚的以
太网,因此每次一台主机加入网络时交
通不会中断。
以太网技术的缺点之一是它的有限的电缆线长度,它预防除为 LANs 以外的它的
任何使用。然而,几个以太网的片断
可以被连接到使用中继器 ,桥或路。中继器简单地在两个或更多的片断之间拷
贝信号,以便所有片断象是一个以太网
一样一起行动。预定要求,网络上任何两个主机不能有超过四个中继器。桥和路
是更复杂的。他们分析到来的数据,并
且只当接受者主机不在本地的以太网上时提交它。
以太网象一个公共汽车系统一样地工作,一台主机在此可以发送达到 1500 个字
节的文件包(或框架)给在同样以太网上
的其他的主机。一位主机被它的以太网板的固件设定固定的一个 6 字节地址邮箱。
这些地址通常由冒号分开了的两位
十六进制的数字顺序被写,例如 aa:bb:cc:dd:ee:ff 。
由一个地址被送出的一个框架被所有依附的地址看到,但是实际上仅有目的地主
机能拣起它并且处理它。如果两个地
址同时试着发送,发生碰撞,它通过两个地址终止任务来解决,并且片刻后重新尝
试发送。
网络管理员指南-1.网络介绍 网络-3)其它类型的硬件
本文出自: 作者: Andrew Anderson
比较大的安装,例如:Groucho Marx 大学,Ethernet 经常不是唯一使用的设备类
型。在 Groucho Marx 大学,每个
系的局域网都连接在校园网主线上,它是一个运行 FDDI(光纤分布式数据借口)
的光纤电缆。FDDI 使用一个与传
输数据完全不同的连接方式。它基本上是发送一些记号,而一个网站如果得到一
个记号的时候只被允许发送它的
一个框架。FDDI 的主要优点是它大于 100-Mbps 的速度,和一个最大可以到达 200
公里的长度。
对于长距离的网络连接,设备类型上的一个不同类别经常被用到,它以一个名
为 的标准为基础。象在美国的
Tymne 和在德国的 Datex-P 一样,许多这样称呼的公共数据网络都支持这种服务。
要求一个特殊的硬件,被称
为一个 Packet Assembler/Disassembler 或者是 PAD. 来根据自己的权益定义
一套网络协议,但是它不经常用
来连接运行 TCP/IP 和其它协议的网络。因为 IP 包无法只是被简单地定位在
5(并且反之亦然),它们被简单的
密封在 包中在网络中发送。
经常的,无线爱好者使用他们的设备来进行网络工作;这被称为 packet radio 或
者 ham radio。ham radios 使用
的协议称为 ,它是从 .派生出来的。
其它技术是有关使用比较慢但是便宜的串连线的拨号连接。这仍然需要包裹传输
的另外一个协议,例如 SLIP 或者 PPP,
它们将会在下面进行介绍。
网络管理员指南-1.网络介绍 网络 -4)Internet 协议
本文出自: 作者: Andrew Anderson
当然,你不希望你的网络限制在一个 Ethernet 局域网上。理想状态下,你希望能
够使用一个网络,它不需要考虑它所
运行的是什么硬件和它由几个子单元组成。例如,在比较大的安装中,如 Groucho
Marx 大学,你通常有一些分开的
Ethernets,它们需要使用某种方法进行连接。在 GMU,数学系运行着两个
Ethernets:一个给教授和研究生使用的快
机器的网络和另外一个为学生准备的慢机器的网络。它们都连接在 FDDI 校园中
枢上
这个连接由一个指定的主机处理,它就是一个所谓的网关,它通过在两个
Ethernets 个光缆线之间复制来处理输入和输
出的包。例如,如果你在数学系,并且想要从你的 box 中访问物理系子网上的
quark 的话,网络软件无法直接发送包到
quark,因为它不在同一个 Ethernet。因此,它需要网关作为一个转发器。网关
(被称为 sophus)于是使用中枢转发这
些包裹到物理系与它同等级别的网关 niels,niels 再处理它到目标机器上。erdos
和 quark 之间的数据流动显示在下面
(向 Guy L. Steele 道歉)
表:从 erdos 到 quark 发送一个 datagram 的三个步骤。对不起:
这个指导数据到主机的计划被称为 routing,并且包裹在这个上下文中经常是指
datagrams。为了方便处理,datagrams 交
换由一个简单的协议管理,它独立于硬件使用的 IP 或者 Internet 协议。在章节,
我们将会更详细的谈到 IP 和 routing 中
的一些事项。
IP 的主要益处是它将物理上相异的网络转化为月个亿显然统一的网络。这被被
称为内部网络,它的结果“meta-network”
被称为一个 internet.请注意,这里一个 internet 和那个 internet 之间的细微区别。
后者是一个特殊的全球的 internet 的
名字。
当然,IP 还需要一个独立硬件的地址计划。这通过分派给每个主机一个唯一的
32-bit 的数字来实现,被称为 IP 地址。一个
IP 地址经常被写为有 4 个小数的数字,每个有 8-bit 位,由点隔开。例如,quark
可能有一个 IP 地址是 0x954C0C04,它可以被
写为 这种格式还被称为 dotted quad 符号。
你将会注意到,我们现在由个不同类型的地址:第一个是主机名,象 quark,然
后是 IP 地址,最后是硬件地址,如
6-byte Ethernet 地址。所有这些都需要相匹配,所以当你输入登录到 quark 的时
候,可以给网络软件 quark 的 IP 地址;
当 IP 处理任何数据到物理系 Ethernet 的时候,它需要找到相对应于 IP 地址的
Ethernet 地址,这似乎有些混乱。
我们在这里不准备在继续了,进一步的内容将在章节中提到。现在,可以完全记
起这些查找地址的步骤被称为主机名决议,
用于引导主机名到 IP 地址和地址决议,用于引导后面的部分到硬件地址。
网络管理员指南-1.网络介绍 网络 -5)通过并联线上的 IP
本文出自: 作者: Andrew Anderson
在连续线上,一个被叫作 SLIP 或者 Serial Line IP 的一个``de facto''标准经常会
用到。一个 SLIP 的
修改被称为 CSLIP,或者是压缩的 SLIP,并且使用 IP 标题压缩来使连续线提供
的相当低的带宽更好的使
用。一个不同的连续协议是 PPP,或者是点到点协议。PPP 比 SLIP 有更多的特
征,包括一个谈话阶段的
连接。然而,使用 SLIP 的主要优势是这不仅限于传输 IP datagrams,但是它不是
设计用来传输任何类型
的 datagrams。
网络管理员指南-1.网络介绍 网络 -6)用户 Datagram 协议
本文出自: 作者: Andrew Anderson
当然,TCP 不是 TCP/IP 网络中唯一的用户协议。尽管象 rlogin 一样适合于应用
程序,它对于象 NFS 这样的应用程序
仍然有上层的限制。相替代的,就使用了 TCP 的同属协议,称为 UDP,或者是
User Datagram Protocol.象 TCP 协议
一样,UDP 同样允许一个应用程序在远程机的一个特定的端口上同一个服务器
联系。,但是不会为此建立一个连接。
相反,你可能需要使用它来发送单个数据包到目标服务器,也就是它的名字。
假设你已经从部门的中心 NFS 服务器 galois 上逐级安装了 TeX 路径,并且你想
要浏览描述如何使用 LaTeX 的文件。你
打开你的编辑器,它首先阅读整个文件。然而可能会花费太多的时间与 galois 建
立一个 TCP 连接,发送文件,并再
次退出连接。相反的,一个连接要求到送到 galois,它把文件制成几个 UDP 数
据包来发送,这样就会迅速得多。但
是,UDP 不能处理文件的丢失或者是损坏。这些都由应用程序来决定—在这个
例子中就是由 NFS 来决定。
网络管理员指南-1.网络介绍 网络 -7)端口的更多信息
本文出自:. 作者: Andrew Anderson
端口可以被看作是网络连接的接触点。如果一个应用程序想要提供一个特定的服
务器,它就会将自己连接到
一个端口并等待客户(这也称为端口上的 listening)。一个想要使用这个服务器
的客户在它的本地主机上
分配出一个端口,并在远程主机上连接到服务器端口。
端口的一个重要特性是当一个连接在客户和服务器之间建立的时候,服务器的另
外一个副本可能会连接到服
务器端口然后等待更多的客户。例如,这允许同一个主机上同时有几个远程注册,
它们都使用同样的端口 513。
TCP 可以在这些连接的两端互相转告,因为它们来自于不同的端口和主机。例如,
如果你从 erdos 两次记录到
quark,第一个 rlogin 客户将使用本地端口 1023,而第二个端口将使用端口
1022。然而二者在 quark 上都将连
接到同样的端口。
这个例子显示端口被当作集合点使用。在那里一个客户连接一个指定的端口来获
得一个特定的服务。为了使
一个客户得知正确的端口号码,两个系统的管理员就这些号码的标志需要达成一
个协议。对于广泛使用的服务,
例如 rlogin,这些数字需要进行中心管理。这是由 IETF(或者是 Internet Engineeri
ng Task Force)完成的,
它有规律的释放一个标题为 Assigned Numbers 的 RFC。在其它东西中间,它描
述分配给 well-known services 的
端口号码。Linux 使用一个定位服务器名称为数码的文件,称为/etc/services。它
将在部分 中介绍。
尽管 TCP 和 UDP 的连接都依靠端口,但是如果这些数字发生冲突,它们仍然
没有什么作用。例如,TCP 的端口
513 需要区别于 UDP 的端口 513,。实际上,这些端口是两个不同的服务器的连
接点,称为 rlogin (TCP) 和 rwho (UDP)。
网络管理员指南-1.网络介绍 网络 -8)插槽集合
本文出自: 作者: Andrew Anderson
在操作系统中,上述中的软件所执行的所有任务和协议通常是核心的部分,并且
它是这样。在世界上普
通的编程接口大多数是 Berkeley Socket 库。它的名字来自一个流行的类比,该类
比将端口视作插座,并且
就象插入一样联接一个端口。它提供(约束( 2 ))呼叫给指定的一台远程主机,一
个运输协议,以及一个能连
结或听到的程序(使用联接( 2 ),听( 2 )和接受(2))。然而 socket 库很一般,因为它
不仅提供
一类 TCP/IP-based 插座( AF_INET 插座),而且处理到机器的本地连接的一个类
( AF_UNIX 类)。一些执行也
能处理其他的级别,象 XNS 一样(复印联网系统)协议,或 。
socket 库是标准的 libc C 库的部分。当前,它仅仅支持 AF_INET 和 AF_UNIX
插座,但是努力为 Novell
的联网协议给予一体的支持,以便最终一个或一个以上的插座类别为这些可以被
增加。
网络管理员指南 -1.网络介绍 - 4.网络
本文出自: 作者: Andrew Anderson
考虑全球程序者的努力结果,没有全球网络的支持就是不可能的。因此在早期的
发展阶段许多人开始使用网络
资源提供程序就不值得大惊小怪了。一个 UUCP 安装的运行是从最开开始起步
的,并且在从 1992 年秋天开始的以
TCP/IP 为基础的网络上进行。在那时 Ross Biro 和其他的创立者建立了现在的 N
et-1。
在 Ross 与 1993 年退出发展行动之后,Fred van Kempen 开始了在一个新的安装
上的工作,他重新撰写了代码的主
要部分。这个正在进行的 努力被称为 Net-2。第一个公共发布-- Net-2d 是在 1992
年的夏天(作为 核心的
一部分),并且开始由几个人保护个扩展,最显著的是 Alan Cox 的 Net-2Debugge
d。在对代码的大量的调试和实
践之后,他在出版 以后将名字改为 Net-3。这是当前包含在官方核心发布的
网络代码的版本。
Net-3 为一个宽阔的 Ethernet boards 提供设备驱动。如 SLIP(为通过连续线发送
网络交通),和 PLIP(对于平行
线)。使用 Net-3,有一个 TCP/IP 的安装,它在一个本地的网络环境中表现非常
好,它显示的工作状态可以击败一
些商业 PC 机。发展的趋向是必要的稳定以可靠的 Internet 主机上运行它.
除了这些设备之外,还有几个正在进行的项目可以增加更多的功能,一个 PPP 的
驱动(点到点协议,在连续线上发送
网络交通的另一种方法)当前是在 Beta 阶段,并且为 ham 无线电准备的 驱
动是在 Alpha 阶段。Alan Cox 还为
Novell's IPX 协议安装了一个驱动,但是对于一个完整的网络组套以兼容 Novell
的努力被暂时停止,因为 Novell
不愿意提供必要的文件。另外一个有希望的工作是 samba,它是由 Andrew Tridgel
l 撰写的一个对于 Un*x 的 NetBIOS
服务器。
网络管理员指南 -1.网络介绍 - 4.网络 - 1)发展的不同方向
本文出自: 作者: Andrew Anderson
同时,Fred 继续发展,继续到 Net-2e ,大部分特征被联网层的设计给修改了。在
写的时候, Net-2e 仍然
是 Beta 软件。关于 Net-2e 大多数值得注意的是 DDI 的结合,设备驱动器接口。
DDI 提供统一的存取和配置
方法提所有联网设备和协议。
联网的 TCP/IP 的另一个执行来自 Matthias Urlichs ,它为 Linux 和 FreeBSD
写出一个 ISDN 驱动器。
为此,他在核心中综合一些 BSD 联网代码。
对于可预见的未来,然而, Net-3 似乎要在这里留下来。Alan 当前在由火腿收音
机业余运动员使用了的
协议上进行一个执行的工作。无疑地,为核心被发展为"模块"的代码也带
给网络代码带来新的推动力。
模块允许你在运行时间时把驱动器加到核心。
尽管这些不同的网络实现都努力提供一样的服务,在核心和设备水平上,他们之
间有主要的差别。因此,你不
能设置从 Net-2d 或 Net-3 中用实用程序运行一个 Net-2e 核心的一个系统,并且
反之毅然。这仅仅适用于相当
仔细处理核心内部的命令;应用程序和普通联网命令,例如 rlogin 或在他们的任何
一个上被运用的远程登录命令。
但是,你不应该担心所有这些不同的网络版本。除非你正在参予活跃的开发,否
则,你不必担心你运行哪个
TCP/IP 代码的版本。官方的核心版本总是被一套在核心中的兼容联网代码的联
网工具伴随。
网络管理员指南 -1.网络介绍 - 4.网络 - 2)哪里可以得到编码
本文出自: 作者: Andrew Anderson
网络编码的最新版本可以从各种地方由匿名的 FTP 得到。官方 Net-3 的 FTP 网
站是 ,
由 sunsite()提供。最新的 Net-2e 修补
工具和二进制可以从得到。Matthias Urlichs' BSD-derived 网络编码可以从
得到。
%E5%BE%97%E5%88%B0%E3%80%82
最新的核心可以在 al/701...PLE/Linus 发现,
sunsite 和 提供这个路径。
网络管理员指南 -1.网络介绍 - 5.维护你的系统
本文出自: 作者: Andrew Anderson
通过这本书,我们将主要讨论安装和配置问题。然而,管理是比-多的部分。在
设置一种服务以后,你也必须
让它运行。对于他们的大多数,仅仅少量的照顾将是必要的,但是有一些,类似
邮件和新闻,要求你施行日常工作以
保持你系统的不断更新。我们将在以后的章中讨论这些任务。
维护的绝对最小量是定期为错误条件和不平常的事件检查系统和每个申请记录
文件。通常,你想要通过写一些行
政的位置写手迹并且周期性地从 cron 运行他们来这样做。一些主要应用的来源
分区,类似 smail 或 C 新闻,包含如
此的手迹。你仅需要制定他们适合你的需要和偏爱。
来自你的 cron 工作的任何东西的产量应该被邮寄给一个行政的帐目。通过缺省,
许多应用程序将发送误差报告,
用法统计,或给根帐目的记录文件摘要说明。如果你经常作为根登录,这仅仅说
得通;一个更好的想法是把根的邮件
提交给建立一个邮件别名的个人帐号,它被描述在章--。
然而你要小心地设置你的地点,Murphy 的法律保证一些问题将最后出现。因此,维
护一个系统也意味会得到抱怨。
通常,人们期望系统主管至少能作为根,经由电子邮件被到达,但是也有另外的
地址通常用来到达一个人,他负责一
个维护的特殊方面。例如,关于一个故障邮件设置的抱怨通常被邮寄给 postmaster ;
并且有新闻系统的问题可以被报
导到 newsmaster 或 Usenet 。到 hostmaster 的邮件应该被重寄到负责主机的基
本网络服务的人,如果你运行一个
名字服务器,邮件应被重寄给 DNS 名字服务器。
网络管理员指南 -1.网络介绍 - 5.维护你的系统 -1)系统安全
本文出自: 作者: Andrew Anderson
%E5%8F%91%E7%8E%B0%EF%BC%8C
在一个网络环境下系统管理的另外一个非常重要的方面是保护的的系统和用户
不受侵犯。疏忽的系统管理给不怀好
意者可乘之机:攻击的范围从密码猜测到 Ethernet 探听,毁坏包含从假的的邮件
信息到数据的丢失或者是对你的用
户秘密的威胁。我们将讨论一些可能进入的内容的特殊的问题,以及一些常用的
抵御方法。
本章将讨论处理系统安全的例子和基础技术。当然,题目不能涵盖所有你可能面
对的所有的安全问题。它们只是描
述可能发生的一些问题。因此,阅读一本有关安全的书籍是非常必要的,特别是
在一个网络系统中。极力推荐
Simon Garfinkel 的 ``Practical UNIX Security'' (see [])。
系统的安全来自于好的系统管理。这包括所有权的检查以及所有重要文件和路径
的进入许可。、监特权帐户的使用
等等。例如,COPS 程序将检查你的文件系统和命令配置文件中不经常使用的许
可或者其它的不规则。使用一个有特
定规则的用户密码套组使其不容易猜测也是一个聪明的做法。例如影子密码套组
要求一个密码至少有 5 个字母,并且
要同时包含上面和下面的数字。
当使一个服务可以应用于网络,确定要给它一个“最小特权,”表示你不允许它代
表做你不许可的事情。例如,你只
有在根或者是其它优先的帐户真正需要的时候才将 setuid 程序安装到它们上去。
同样的,如果你只需要使用一个有很
大限制的应用程序,不要犹豫,把它限制在你的特殊应用程序允许的范围内。例
如,如果你想要允许无磁盘主机从你
的机器启动,你必须提供 TFTP(小文件传送服务)这样,在使用没有被限制的
时候它们可以从/boot 路径下下载基础
配置文件。这不是你想要的,为什么不限制 TFTP 服务到/boot 路径呢?
根据同样的考虑,你可能想要限制特定的服务到用户使用特定的主机,表达来自
于你的本地网络。在章节-,我们将介
绍 tcpd,它可以在许多类型的网络应用中做这个工作。
另外一个重要的点是要避免“危险的”文软件。当然,任何你所使用的软件都可能
是危险的,因为软件可能含有错误,
它们是聪明的人想要获得进入你的系统的许可。象这样的事情发生,并且没有完
全的保护措施。这个问题对免费的软件
和商业化产品的影响是相同的。然而,那些要求特殊特权的程序本身比其他程序
更为危险,因为如何循环漏洞都可以有
严重的后果。如果你在为网络目的安装一个 setuid 程序,你需要双北小心,不要
漏掉文件中的任何内容,这样你就不会
节外生枝。
你可以不指定什么时候你的警觉失败,忽略你曾经如何谨慎。这样,你需要确定
你尽早检查入侵者。检查一个系统记录
文件是一个好的开始,但是入侵者可能非常聪明,删除所有他或者她可能留下的
任何明显的痕迹。然而,象 tripwire 这
样的工具可以让你检查重要的文件中的内容或者是许可是否被修改过。在后续的
运行中,checksums 被重新计算并与保存
的内容相比较以检查是否曾被修改。
网络管理员指南 网络事件 -1>网络接口
本文出自: 作者: Andrew Anderson
我们现在将转向当连接你的机器到一个包含处理 IP 地址,主机名字, 有时是路
由事件的 TCP/IP 网络的时候你将遇到的细节。
本章给你为了了解你设置要求的内容的背景,而下一章将介绍处理它们的工具。
网络接口
为了隐蔽可能被用于一个联网环境中的设备的差异,TCP/IP 通过被存取的硬件定
义一个抽象的接口。这个接口提供一
套操作,这套操作对于所有硬件类型是一样的,并且基本上处理发送和接收文件包。
对于你想要为联网使用的每个外部设备,一个相应的接口必须在核心中。例如,
以太网接口被称为 eth0 和 eth1 ,
并且 SLIP 接口作为 sl0 , sl1 ,等等。当你想要命名一台特别的物理设备到核心
时,这些接口名字被用于配置目的。在那
以外,他们没有任何意义。
可用于联网的 TCP/IP,一个接口必须被分配一个 IP 地址,当与世界其他部分进行
交流时,这个 IP 地址作为它的辨认进行服
务。这个地址与上面被提及了的接口名字不同;如果你把一个接口比作门,那么
地址象钉在它上的名字板一样。
当然,有另外的设备参数可以被设置;其中之一是能被特殊硬件设备处理的数据包
的最大尺寸,也被称为最大的转移单位,
或 MTU 。其他的属性将以后介绍。
网络管理员指南 网络事件 -2>IP 地址
本文出自: 作者: Andrew Anderson
就象在先前的章提及了的那样,联网 IP 协议理解的地址是 32 位的数字。每台
机器必须被分配到联网的环境
唯一的一个数字。如果你正在运行没有与另外的网络有 TCP/IP 通路的一个本地
的网络,你可以根据你的个人偏
爱分配这些数字。然而,对于在因特网上的地点,数字被一个中央的权威,网络
信息中心,或 NIC 分配。
为了更容易的读,IP 地址被分为叫做八位字节的四个8位数字。例如,
有 0x954C0C04
的一个 IP 地址,它作为 被写。这格式经常被提交给作为由符号连接
的四个小于 255 的数字代表 IP 地址。
为这个标志的另外一个原因是 IP 地址被切分进一个网络数字,它被包含在最重
要的八位字节中,和一台主机数字,它是
剩余物。当为 IP 地址申请到 NIC 时,你没有为你计划使用的每个单个的主机
分配一个地址。相反,你被给出一个网络数字,
并且被允许根据你的偏爱在你的网络上在这个范围以内分配所有的有效的 IP 地
址到主机。
取决于网络的大小,主机部分可以需要更小或更大。容纳不同的需要,这里有几种
网络种类,定义不同 IP 地址的切开。
类别 A。类别 A 通过 包含网络 。网络数字被包含在第一个八
位字节中。这提供给一个 24 小点主机,
大约允许 百万主机。
类别 B。类别 B 通过 包含网络 ;网络数字在第二个八位字
节中。这允许每个有 65024 的主机
16320 张网。
类别 C。类别 C 网络范围从 到 ,与网络数字包含在第三
个八位字节中。这允许有直到 254 位主
机的将近 2 百万个网络。
类别 D , E ,并且通过 掉进 范围的 F 地址是试验性的,
或为未来使用被保留并且不指定任何网络。
如果我们回到先前章中的例子,我们发现那 , quark 的地址,参考在
类别 B 网络 的主机 。
你可能注意到了,在上面的表中不是所有可能的值被允许在主机部分中的每个八
位字节。因为有八位字节的主机数字,所
有 0 或所有 255 为特殊的目的被保留。所有的主机部分位是零的一个地址参考
网络,并且主机部分所有的位的地址是 1 的被
称为一个广播地址。这同时在指定的网络上参考所有的主机。这样,
.255 不是一个有效的主机地址,但是在网络
上参考所有的主机。
也有两个网络地址被保留, 和 。第一个被称为缺省线路,后者 loop
back 地址。缺省线路有时使用 IP
路线数据的方式,它将被在下面处理。
网络 为 IP 通路被保留到你的主机。通常,地址 将在你的主机
上被分到一个特殊的接口,所谓的
loopback 接口,它象一个关上的电路一样行动。来自 TCP 或 UDP 被传递给它的
任何 IP 包将被返回到他们,好像它刚从一些
网络到达了。这允许你开发并且测试曾经没有使用一个“真实”网络的联网软件。
另外一个有用的应用程序是你什么时候想要
使用在一台独立的主机上的联网软件。这就象它发出的声音一样很平常;例如,
许多 UUCP 地点根本没有 IP 连接,但是仍然不
过想要运行 INN 新闻系统。对于合适的操作,INN 要求 loopback 接口。
网络管理员指南 网络事件 -3>地址解析
本文出自: 作者: Andrew Anderson
既然你已经看了 IP 地址怎么被完成,你可能正想知道他们怎么在一个以太网上
被使用到地址不同的主机。
不管怎么说,以太网协议通过一个六-八位字节数字识别主机,该数字通常和一个
IP 地址绝对什么都不是,它是
不是这样呢?
正确。那是机制被需要到以太网地址之上印射 IP 地址的原因。这是所谓的地址
解析协议,或 ARP 。事实上,
ARP 根本没被限制到以太网,但是也用于例如火腿收音机之类的另外类型的网
络上。这个想法内在的 ARP 确实是
当人们必须在 150 个人中寻找 X 先生时,大多数人们所做的事情:他们到处走动,
呼唤他的名字,确信如果他在那里
他将做出回应。
当 ARP 想要找到一个给出的 IP 地址相应的以太网地址时,它使用以太网的一
个特征“广播,”一个数据包在此
同时在网络上被邮寄到所有的位置。ARP 发送了的广播数据包为 IP 地址包含一
个询问。收到主机的各个位置把这比
作它自己的 IP 地址,并且如果它匹配,返回一个 ARP 答复至询问的主机。询问
的主机现在能从答复中提取发送者的
以太网地址。
当然你可能想知道一台主机怎么可以在整个世界众多以太网中发现它需要的主
机,并且这为什么应该是一个以太网。
这些问题都包含什么被称为路由,也就是在一个网络发现一台主机的物理地点。
这将是下节的话题。
有片刻的时间,让我们更多地谈论一些 ARP。一旦一台主机发现了一个以太网
地址,它在它的 ARP 缓存中存储它,
因此,它不必询问它下一次它想要发送一个数据包到主机。然而,永远坚持这个
信息,是不明智的;例如,远程主机的以
太网卡片可能因为技术的问题被代替, ARP 入口变得无效。迫使另外一个询问 IP
地址,在 ARP 缓存的入口因此在一段
时间后被丢弃。
有时,找到与一个给出的以太网地址被联系了的 IP 地址,也是必要的。当一台无
盘的机器想要在网络上从一个服务
器启动时,这发生,它在本地的区域网络上是相当普通的一种状况。一个无盘的
顾客,然而,实际上没有自己的信息--除
了它的以太网地址!因此它基本上做的东西是,广播包含一个请求启动服务者告
诉它它的 IP 地址的一条消息。为这有另
外一个的协议,命名的颠倒地址解析协议,或 RARP 。与 BOOTP 协议一起,
它为引导在网络上的无盘的顾客服务以定义一个程序。
网络管理员指南 网络事件 -4>IP 路由 -1)IP 网络
本文出自: 作者: Andrew Anderson
当你给某人写信的时候,你 通常在信封上输入一个完整的地址。注明国家,省
会,邮编等等。在你把它放入
油箱之后,邮递服务将递送它到目的地:它将会被发送到指定的国家,它的国家
服务将分发邮件到正确的省会
个地区等等。这种逐级方式的好处是明显的:当你发送邮件的时候,本地邮递管
理者只是粗略的知道信将要发
送到哪去,但是不需要担心在指定的国家信如何传送。
IP 网络建筑在一个相类似的方式上。整个 Internet 包含一系列的网络编号,称为
autonomous systems。每一个
这样的系统在编号和主机之间运行任何路径,因此递送一个 datagram 的任务就
简化为查找到目标主机网络,就
是说,当 datagram 被处理到任何在特定的网络的主机上的时候,进一步的程序
有网络自己完成
网络管理员指南 网络事件 -4>IP 路由 -2)子网
本文出自: 作者: Andrew Anderson
这结构被切开 IP 地址进入一台主机和网络部分反映,象上面解释的那样。由缺省,
目的地网络从 IP 地址的
网络部分被导出。这样,有相同的 IP 网络数字的主机应该在一样的网络内被发现,
并且反过来也如此。
它在网络内提供一个类似的计划也是有意义的,因为它可能由许多它自己几百个
更小的网络组成,最小的
单位是象以太网一样的物理的网络。因此, IP 允许你细分一个 IP 网络进入若干
子网。
一个子网负责从部分 IP 网络把数据包发送到 IP 地址的某个范围。就象类 A, B ,
或 C ,它被部分 IP 地址的
网络认明。然而,网络部分现在由主机部分扩展到包括一些位。被解释为子网数
字的位的数字被所谓的子网面具,
或 netmask 给出 。这也是一个 32 位的数字,它为部分 IP 地址的网络部分指定位
面具。
图:子网一个类 B 网络
格劳乔·马克思大学的校园网络是这样的一个网络的一个例子。它有一个 class-B
网络 数字,
并且它的 netmask 是 。
内部, Gmu 的校园网络由若干更小的网络组成,例如各种各样的部门的 LANs 。
因此 IP 地址的范围被拆散进 254
张子网, 通过 。例如,理论的物理的部门被分配了 149
. 。校园脊梁是由它自己
的权利的一个网络,并且被给出 。这些子网分享一样的 IP 网络数字,
然而第三个八位字节用于在他们之
间区分。这样他们将使用 的一个子网面具。
图显示 , quark 的地址,当地址作为一个平常的 class-B 网络被拿时,
并且当用 sub-netting 使
用时,它如何被解释。值得注意的是 sub-netting(当产生子网的技术被叫时)仅仅
是网络的一个内部的部门。经常,子
网被创造反映存在的边界,他们是物理的(在两个以太网之间),行政的(在两个部门
之间),或地理的,并且这些子网的权威
被代表为一些有联系的人。然而,这结构仅仅影响网络的内部行为,并且对外面
的世界完全不可见。
网络管理员指南 网络事件 -4>IP 路由 -3)网关
本文出自: 作者: Andrew Anderson
子网不只是一个组织的长处,它还经常是硬件边界的结果。在一个给出的物理网
络上的一个主机的观点,例如一
个 Ethernet,是非常有限的:它可以直接对话的唯一的主机是那些在网络连接的
机器。所有其它的主机只有通过网
关访问。一个网关是一个同时连接到一个或者多个物理网络的主机并且它被设置
为在其中进行交换。
如果一个主机在一个本地的物理网络上,为了使 IP 容易辨识,不同的物理网络
必须属于不同的 IP 网络。例如数字
在数学 LAN 上为主机保留。当发送一个 datagram 到 quark,erdos 上
的网络软件立即从 IP 地址上查找,
,它是在一个不同的物理网络上的主机的目的地。于是只能从一个网关
进行访问(默认为 sophus)
sophus 本身被连接到两个分别的 sophus:数学系和校园中枢,它们各自通过一个
不同的界面访问 eth0 和 fddi0。现
在我们附值的是什么 IP 地址?我们是否需要给出一个在子网 ,或者
是 ?
回答是:两个都需要。当在数学 LAN 上与一个主机交谈,sophus 需要使用一个
的 IP 地址,并且当与一个中
枢交谈的时候,他需要使用 .
因此,一个网关为它所在的每一个网络上分配一个 IP 地址。这些地址—--连同相
应的网络覆盖一起被连接到子网访问
时通过的界面。于是,为 sophus 准备的界面的地图和地址需要象这样:
----------------------------------------
+-------+-------------+----------------+
|iface | address | netmask |
+-------+-------------+----------------+
+-------+-------------+----------------+
|eth0 | | |
|fddi0 | | |
|lo | | |
+-------+-------------+----------------+
+-------+-------------+----------------+
最后部分描述 lo 的循环界面,它在上面有介绍
图-显示 Groucho Marx 大学的一部分网络布局(GMU)。同时在两个子网上的
主机显示在两个地址上。
图:Groucho Marx 大学部分地图布局。
通常,你可以忽略附加一个地址到一个主机和到它的界面之间的微小区别。对于
只在一个网络上的主机,即使是严格的
对话,你通常需要选择拥有这个和那个 IP 地址的主机。Ethernet 界面有这个 IP
地址。然而,这个区别只有当你选择一个
网关的时候才真正重要。
网络管理员指南 网络事件 -4>IP 路由 -4)路由表
本文出自: 作者: Andrew Anderson
我们现在集中讨论当递送一个 datagram 到一个远程网络的时候 IP 如何选择使
用网关。
我们在以前已经看到,当为 quark 给出一个 datagram 的时候,erdos 检查确切不
在本地网络上的地址。于是,
发送它到默认网关 sophus,他现在基本上面对的是同一个任务。Sophus 发现 quar
k 没有在任何它直接连接到的
网络上,因此它还需要找到另外一个网络进行转发。正确的选择是 niels,就是
通向物理系的网关。之后 sophus
需要一些信息连同一个适合的网关合作一个目标网络。
IP 为此使用的常规信息基本上是一个连接网络到接触他的网关的表格。一个抓
住所有路径(默认路径)也必须经
常被支持;这是与网络 合作的网关。所有到一个未知网络的包裹通过默
认路径发送。在 sophus 上,这个
表格可能象这样:
-----------------------------------------
+-----------+-------------+------------+
|Network | Gateway | Interface |
+------------+-------------+------------+
+------------+-------------+------------+
| | - | fddi0 |
| | | fddi0 |
| | | fddi0 |
| | - | eth0 |
| | | fddi0 |
|... | ... | ... |
| | | fddi0 |
+------------+-------------+------------+
+------------+-------------+------------+
sophus 直接连接到一个网络的路径不需要一个网关,因此,它们显示一个网关进
入为``-''。
路径表格可以通过各种方法建立。对于小的 LANs,它通常有效通过手工并使用
根时间中的路径命令来反映的 IP 的
方法建立(参考章节-)。对于较大的网络,它们通过路由 daemons 被建立个调
节。它们在中心主机上运行并路由
信息在网络成员之间到计算“可视”路径。
根据网络的大小,将会使用不同的路由协议。 对于自制系统中的路径(例如 Grouc
ho Marx 校园),会使用
internal routing protocols。最突出的一个是 RIP, the Routing Information Protocol
,它是由 BSD 路由的 daemon
安装的。对于自动系统中间的路由,需要使用如 EGP 这样的外部路由协议或者
是 BGP(边界网关协议);它们连同 RIP
都被安装到 Cornell 大学登录的 daemon 中。
网络管理员指南 网络事件 -4>IP 路由 -5)公制值
本文出自: 作者: Andrew Anderson
基础在 RIP 的动态路由选择最好的路径到一些目标主机或者建筑在一系列“跳跃”
基础上的网络,就是,
网关的一个 datagram 需要在达到它之前通过。路径越短,RIP 速率越高。使用 16
或者更多跳跃的非常长的
路径被认为是无用的,并且被抛弃。
要内部使用 RIP 管理路由信息到你的本地网络,你需要在所有主机上运行 gated。
在启动时间,gated 检查石
油的活动网络界面。如果多于一个活动界面(不计算循环回来的界面),假设主
机正在几个网络中交换包裹,
并将交换和预测路由信息。否则它只是被动接受任何 RIP 更新和本地路由表格更
新。
当从本地路由表格预测信息时,gated 从与路由表格进入一起的称为米制值中计
算路径的长度。这个米制数值由
系统管理员在配置路径并需要反映实际使用路径的花费的时候设置。因此,路径
的米制到主机的子网直接连接到
恒定为零,而一个通过两个网关的路径需要各有一个米制。但是,注意,当你不
使用 RIP 或者 gated,就不需要
使用米制。
网络管理员指南 网络事件 -5>Internet 控制信息协议
本文出自: 作者: Andrew Anderson
IP 有一个连带的协议我们在上面还没有提到。它就是 Internet 控制信息协议(IC
MP),它被核心网络代码使用
来交流错误信息和其他类似的主机。例如,假设你又在 erdos 中,并想要以 quark
为单位远程登录到端口 12345,
但是端口上没有程序等待使用。当这个端口的第一个 TCP 包到达 quark,网络层
将发现它并立即返回一个以“端口
无法达到”开头的 ICMP 信息到 erdos。
有许多 ICMP 辨认的信息,许多都是在错误条件下处理的。但是,有一个非常有
趣的称为 Redirect message(重新
发送信息)的信息。它由路由模块当发现另外的主机正在使用它作为网关的时候
被产生,即使有更短的路径。例如,
在启动可能没有完成的 sophus 的路径表之后,包含到数学网络的路径,到 FDDI
主干,以及在
Groucho Computing Center's gateway (gcc1)中指出的默认路径的任何包裹。因
此,任何 quark 的包裹会被发送到
gcc1 而不是通向物理系的网关 niels。当收到这样一个 datagram 时候,gcc1 将注
意到这是路径选择的错误,并将转发
包裹到 niels,同时返回一个 ICMP 重寄信息到 sophus 说明它到超级路径。
现在,这看来是一个非常聪明的方法需要手工设置除了大多数基本路径以外的任
何内容。但是注意它依靠动态路径
方案,RIP 或者 ICMP 重寄信息,不总是一个好主意。ICMP 重寄 RIP 提供你很
少或者在一些路由信息实际可信的时候没
有选择。这允许恶意不付任何代价就打断了你整个网络交通,甚至危害其他。由
此,有一些版本的网络代码处理重寄
信息影响到整个网络路径,就象它们只是重寄到主机路径。
网络管理员指南 网络事件 -6>域名系统 -1)主机名决议
本文出自: 作者: Andrew Anderson
主机名决议
正如上面介绍的,TCP/IP 网络地址考虑到了 32 位的数字。但是你很困难记住它
们。因此,主机通常被称
为是“常规”名字,如客人或者陌生人。于是应用程序的责任就是查找对应这个名
字的 IP 地址。这个程
序称为主机名决议。
一个想要找到一个给定的主机名对应的 IP 地址的应用程序不需要提供它自己的
路径来寻找一个主机和 IP 地址。
而是依靠字库功能的数字透明的做,称为 gethostbyname(3) 和 gethostbyaddr(3)。
传统上,这些以及一些相
关的程序在一个单独的称为 resolver library 的字库中组合,它们是标准 libc. Collo
quially 的一部分。这个
功能集合因此被称为“抉择者(the resolver)”。
现在,在一个小的象 Ethernet 的网络上,或者甚至是一组,保留定位主机名到地
址不困难。这个信息经常在一
个名字是/etc/hosts 的文件中。当添加或者移动主机时,或者再指定地址的时候,
你所要做的就是在所有主机
上更新主机。非常明显,这将比包含多于一个的手动机器给网络添加更多麻烦。
解决这个问题的一个方法是 NIS,Network Information System(网络信息系
统),由 SUN 微系统出品,俗称 YP
或者黄页。NIS 存储主机文件(和其它信息)在一个主要主机的数据中。从那里
客户可以按照需求恢复它。同时,
这个方式只使用于象 LANs 这样的中型网络,因为他关系到中心维护整个主机数
据,并分发它到所有服务器。
在 Internet 上,地址信息最初存储在一个单独的 数据中。这个文件
被保存在网络信息中心,或者 NIC,
并且必须被下载并被所有参与的站点安装。当网络成长,这个方法会出现许多问
题。除了经常涉及的
安装管理,装载分发它的服务器变成很多。甚至更严重的问题是所有名字必须使
用 NIC 注册,它必须确定没有名字
被使用两次。
这就是在 1984 年为什么一个新的解决方法产生,Domain Name System(域名系
统)。DNS 由 Paul Mockapetris 设计,
同时修改了两个问题。
网络管理员指南 网络事件 -6>域名系统 -2)进入 DNS
本文出自: 作者: Andrew Anderson
进入 DNS
DNS 组织主机名在一个等级域中。一个域是诗歌站点的集合,与---类似。因为
他们形成一个正确的网络(例如所
有机器在一个校园,或者所有主机在 BITNET),因为他们都属于一个特定的组
织(如美国政府),或者因为他们
简单的在地理上接近。例如,大学以 EDU 域组合,每一个大学或学院使用分别
的在它们主机所包含的域之下的子域。
Groucho Marx 大学可以给出 域,而数学系的 LAN 分配为
。在系级别的网络域名附加
在它们的主机名字上;因此 erdos 成了 。这称为 fully quali
fied domain name(完全合
格域名),或者 FQDN,它在世界范围唯一辨识这个主机。
表-显示名字空间的一个部分。输入在这个树结构的根部。它由一个单独的点指
示,被适当的称为 root domain(根域),
和周围所有其它的域。为了指明一个主机名是一个完全合格域名,而不是一个与
一些(暗指)的本地域名,它有时同
一个拖长的点一起写。这明显指出名字的最后组成是根域。
在名字等级中依靠它,一个域名可能被称为最高水平,第二水平,或者第三水平。
发生更多的子划分,但是不常见。
有一些最高水平你可能经常见到:
edu (Mostly US) educational institutions like universities, etc.
com Commercial organizations, companies.
org Non-commercial organizations. Often private UUCP networks are
in this domain.
net Gateways and other administrative host on a network.
mil US military institutions.
gov US government institutions.
uucp Officially, all site names formerly used as UUCP names without
domain, have been moved to this domain.
技术上,这些的前 4 个属于 Internet 的美国部分,但是你可能在这些域中看到非
美国的站点。这对于网络域来说特别真实。
但是 mil 和 gov 只用在美国。
美国之外,每个国家通常使用一个顶级域,它命名在 ISO-3166 指定的国家代码
两个数字之后。例如 Finland 使用 fi 域,法
国使用 fr,德国使用 de,澳大利亚使用 au 等等。下面的顶级域,每一个国家的
NIC 免费在他们想要的方法中组织主机名。
例如,澳大利亚有类似与国际顶级域的第二水平域,名字是 , 等等。
其它象德国,不使用这个多余的水平,
而是比较长的名字直接指定到运行一个特出域的组织。例如,不经常看到主机名
类似. Chalk,
它在德国有效。
当然,这些国家域名不表示一个在那个域之下的主机实际上就在那个国家中,它
只是表示主机同那个国家的 NIC. A Swedish
制造商的一个在澳大利亚的分支注册,并仍然把它所有的主机同 se 顶级域一起
注册。
现在在一个域名等级中组织名字空间精细的解决了名字的唯一问题。DNS 一个
主机名字必须只在它的域中是唯一的来给它一个
同全球其它所有主机都不同的名字。进而,完全合格名字非常容易记忆。由他们
自己掌握,这些已经是非常好的原因来拆分
一个大的域为许多子域。
但是 DNS 为你做更多的事情:它允许你通过一个子表它的管理者的权利。例如,
在 Groucho 计算机中心的维护者可能为每一个
系建立一个子域;我们上面已经遇到了数学和物理子域。当他们发现物理系网络
太大并且在外部无秩序管理时候,(之后,
物理学家被认为是一些无秩序的人),他们可能通过控制 域
到这个网络的管理员来简单的跳过。这些将
自由使用他们想要的主机名,并从他们喜欢的风格的网络中分配 IP 地址,不需
要外部介入。
最为结尾,名字空间分裂为区域,各分布在一个域中。注意一个区域和一个域之
间的细微区别:域 包含在
Groucho Marx 大学的所有主机,而区域 只包含由计算机中心直接管
理的主机,例如在数学系中。在物理系中的主
机属于一个不同的区域,名字是 。在表-,一个区域的开始由一
个画到域名的圈标记。
网络管理员指南 网络事件 -6>域名系统 -4)域名服务器
本文出自: 作者: Andrew Anderson
掌握一个域上主机的所有信息的名字服务器称为对这个区域有权威,并且有时指
定为主名字服务器。任何在这个
区域要求一个主机将最终归于这些主名字服务器中的一个。
要避免一个区域连贯的图象,它的主服务器必须非常同步。这通过使它们中的一
个成为主服务器来达到,它从数据
文件中装载他的区域信息,并使其它二级服务器定时从主服务器传送区域数据。
有几个名字服务器的原因是分配工作装载,另外一个是冗余。当一个名字服务器
在一个良好的方式上失败的时候,
如破坏或者丢失它的网络连接,所有的询问将返回到其它服务器。当然,这个方
法不保证你来自产生错误回复到所
有 DNS 要求的服务器故障,例如,来自服务程序本身的软件问题。
当然你还可以考虑运行一个名字服务器,它不对任何域有权威。这种类型的服务
器没有用,它仍然可以为运行在本
地网络上的应用软件引导询问。并且缓冲存储信息。它就被称为 caching-only serv
er(只缓冲服务器)。
网络管理员指南 网络事件 -6>域名系统 -5)DNS 数据库
本文出自: 作者: Andrew Anderson
我们上面已经看到 DNS 不只是处理主机的 IP 地址,还在名字服务器上交换信息。
事实上可能有一系列不同类型的 DNS 数据。
一个单一的来自 DNS 数据库的信息称为一个 resource record(来源记录),或
者 RR。每一个记录有一个类型的合作,描
述它代表的数据类型,和它属于的网络类型。后者跟随不同地址方案的需求,
如 IP 地址(IN 类),或者 Hesiod 网络的地址
(在 MIT 使用),和更多。旧的来源记录类型是一个用 IP 地址联合一个完全合
格域的记录。
当然,一个主机可能有多于一个的名字。但是,它们中的一个必须是官方的,或
者是真实的主机名,而其它的是前面提到
的化名。区别是真正的主机名有一个记录合作,而其它的只有一个类型 CNAME
的记录在真正主机名字上。
我们将不讲解所有记录类型,而是保留它们到后面的章节。但是最好在这里给你
一个简短的例子。表-显示一个域数据的一
部分,它为 区域装载到名字服务器。
除了 A 和 CNAME 记录,你可以在文件顶部看到一个特殊的记录,有几行。这
是 SOA 来源记录,信号为 Start of Authority(授
权开始),它掌握区域上服务器授权的普通信息。例如,它包含所有记录的默认
生存时间。
注意例子文件中的所有不是由一个点结尾的名字需要插入相应的 域。
在 SOA 记录中的特殊名字``@''由它自己指
定到域名。
我们上面已经看到 域的名字服务器需要知道物理区域,这样它们可
以指定询问到它们的名字服务器。这通常通
过一系列记录达到:给服务器 FQDN 的 NS 记录,和一个与一个地址合作的记录。
因为这些记录是一起掌握名字空间的记录,它
们通常称为 glue records(胶水记录)。它们是记录的唯一例子,在那里一个专
利区实际具有在子区域中的信息。为
准备、指定到名字服务器的胶水记录显示在图-。
网络管理员指南 网络事件 -6>域名系统 -6)颠倒查找
本文出自: 作者: Andrew Anderson
图 5 。来自为物理部门的 文件的一篇摘录。
Physics Department.
;
; Authoritative Information on
@ IN SOA {
.
.
1034 ; serial no
360000 ; refresh
3600 ; retry
3600000 ; expire
3600 ; default ttl
}
;
; Name servers
IN NS niels
IN NS .
. IN A
;
; Theoretical Physics (subnet 12)
niels IN A
IN A
nameserver IN CNAME niels
otto IN A
quark IN A
down IN A
strange IN A
...
; Collider Lab. (subnet 14)
boson IN A
muon IN A
bogon IN A
...
比较于查找属于一台主机的 IP 地址,发现到一个相应地址的规范的主机名字,有
时是合乎需要的。这被称为颠倒印射,
并且被若干网络服务用于验证一个顾客的身份。当使用一个单个的主机文件时,
颠倒查找简单地包含为拥有可怀疑的 IP 地址
的一台主机查找文件。用 DNS ,名字空间的彻底的搜索是不可能的,当然。相反,
一个特殊的域被创建, ,它包
含在一个回复的点空铅标志中的所有的主机的 IP 地址。例如, 的一
个 IP 地址对应于名字
。连接这些名字到他们的规范的主机名字的资源记录类
型是 PTR 。
图 6 .来自为 GMU 的 文件的一篇摘录。
;
; Zone data for the zone.
@ IN SOA {
.
.
233 ; serial no
360000 ; refresh
3600 ; retry
3600000 ; expire
3600 ; default ttl
}
....
;
; Glue records for the zone
physics IN NS .
IN NS .
IN A
IN A
...
创造权威的一个地区通常意味着它的主管被给出他们在其上如何把地址分到名
字的完整的控制。因为,他们通常在他们的
手中有一个以上 IP 网络或子网,在 DNS 地区和 IP 网络之间有一个一对多的印
射。物理部门,例如,组成子网
, ,和 。
作为后果,在 域中的新地区必须与物理地区一起被创造,并且在部
门中代表网络主管:
, ,和 。否
则,在 Collider 实验室中
安装一台新主机将要求他们联系他们的父母域,把新地址进入他们的
地区文件。
为子网 12 的地区数据库在图-中被显示。在他们的父母地区的数据库中的相应
的粘和记录在图-中被显示。
图 7 .来自为子网 12 的 文件的一篇摘录。
;
; the domain.
@ IN SOA {
.
.
233 360000 3600 3600000 3600
}
2 IN PTR .
4 IN PTR .
5 IN PTR .
6 IN PTR .
图 8 .来自为网络 的 文件的一篇摘录。
;
; the domain.
@ IN SOA {
.
.
233 360000 3600 3600000 3600
}
...
; subnet 4: Mathematics Dept.
IN PTR .
IN PTR .
IN PTR .
...
; subnet 12: Physics Dept, separate zone
12 IN NS .
IN NS .
. IN A
. IN A
...
这一点的一个重要的后果是,地区仅仅能作为 IP 网络的超集被创造,并且,甚至更
严重,这些网络的 netmasks 必须在字
节边界上。在格劳乔·马克思大学的所有的子网有 的一个 netmask
,一个 地区在此能为每
张子网被创造。然而,如果 netmask 是 ,为子网 创
建地区将是不可能的,因为没有方法告
诉 DNS 域在权威的两个地区被切开,主机名字范围从 1 通
过 127,和 128 通过 255 ,分别地。
网络管理员指南 -3.设置网络硬件 -1>设备,驱动器,诸如此类
本文出自: 作者: Andrew Anderson
直到现在,我们已经谈论了一下网络接口和 一般的 TCP/IP 版本,但是没有确切
讲述当在核心中的“联网的代码”
存取一硬件时,发生什么。为这,我们必须谈一点关于接口和驱动器的概念。
首先,当然,自己有硬件,例如以太网板:这是一片 Epoxy ,在他们上有愚蠢的数字的
大量微小的芯片,坐在你的 PC
的槽边。这是我们通常称为一台设备。
为你能使用以太网板,特殊的功能必须存在于你的核心中,它理解这台设备被存
取的特别的方法。这些是所谓的设备
驱动器。例如,为在功能是很类似的以太网板的若干商标有设备驱动程序。他们
作为“贝克尔系列驱动器”被知道,依照
他们的作者命名了,唐纳德·贝克。一个不同的例子是,D 连接驱动器,他处理一
个纳入一个并行端口的 D 连接的袖珍适配器。
但是,当我们说一个驱动器“处理”一台设备时,我们意味着什么?让我们回到在
上面我们检验了的那个以太网板。驱动程
序必须能在某种程度上与外设的板上的逻辑进行交流:它必须发送命令和数据到
板上,当板交付被收到了驱动程序中的任何
数据时。
图:驱动器,接口,和硬件之间的关系。
在 PC 机中,这个通讯通过被印射到在板上寄存器等等的 I/O-存储器的一个区
域发生。所有核心发送到板上的命令
和数据必须通过这些寄存器。 I/O 存储器通常由给它的启动或基本地址被描述。
以太网板的典型的基本地址是
0x300 ,或 0x360 。
通常,你不必须担心任何硬件问题,例如基本地址,因为核心在启动时间尝试检测
一个板的地点。这被称为自动探测,
它意味着核心读若干记忆地点,并且比较被读的数据,查看某个以太网板是否被
安装。然而,可能它不能自动地检测的以太
网板;这种情况有时是有的,便宜的以太网卡不相当于来自另外的制造商的标准
板的克隆。另外,核心将在启动时间试着检测
一个以太网设备。如果你正在使用不止一个板,你必须明确地把这个板告诉核心。
你可能必须告诉核心的另外一个如此的参数大概是中断请求频道。当他们需要被
照顾时,硬件部件通常打断核心,例如,
当数据到达了时,或一个特殊的条件发生时。在 PC 机中,中断可能发生在通
过 15 标记了 0 , 1 ,和 3 一个 15 中断频道。
被分到一个硬件部件的中断号码被称为它的中断请求号码,或 IRQ 。
象章--中描述了的那样,核心通过一个所谓的接口存取一台设备。接口提供一个抽
象的功能集合,它与越过硬件的所有类
型是一样,例如噶送或接收一个数据包。
接口借助于名字被认明。这些是在核心内部被定义了的名字,并且不是在 /dev
目录中的设备文件。典型的名字是
eth0 , eth1 ,等等,为以太网接口。到设备的接口的任务通常取决于设备在其中被
设置的顺序;例如安装的第一个以太网板
将成为 eth0 ,下一个将是 eth1 ,等等。这条规则的一个例外是 SLIP 接口,它动
态地被分配;即,无论何时一个 SLIP 连接被
建立,一个接口被分到连续的端口。
在图中被给出的图片试图显示硬件,驱动设备和接口之间的关系。
当启动时,核心显示它检测了什么设备,以及它安装了什么接口。下列是一幅典
型的启动屏幕的一篇摘录:
这显示核心用启用的 TCP/IP 被编了,并且为 SLIP , CSLIP ,和 PPP 的驱
动程序包括了。下面的第 3 行说,一个 D 连接
袖珍的适配器被检测,并且作为接口 dl0 被安装了。如果你有以太网卡的一种
不同的类型,核心将通常打印以 eth0 开始的行,
由检测的卡的类型列在后面了。如果你把一张以太网卡片安装了,但是看不见任
何如此的信息,这意味着核心不能适当地检测你
的板。这在以后的节中被处理。
网络管理员指南 -3.设置网络硬件 -2>核心配置
本文出自: 作者: Andrew Anderson
大多数分区与启动硬盘一起为 PC 硬件的所有普通类型工作。这意味着,在那
些磁盘上的核心设置了你将决不
会需要的各种驱动程序,但是因为核心的部分不能被交换出去,它浪费宝贵的系
统存储器。因此,你通常滚动你自己
的核心,仅包括你实际上需要或想要的那些驱动器。
当运用一个系统时,你应该对建造一个核心很熟悉。这个的基础在马特·威尔士
的“安装和开始”指南中被解释,
它也是文档工程系列的部分内容。在这节中,我们将因此仅仅讨论影响联网的那
些配置选择。
当运行制做设置时,你将首先被问一般的配置,例如你是否想要核心数学模拟,等
等。这些问题之一是,你是否想要
联网支持的 TCP/IP 。你必须用 y 回答这个问题,使其得到有联网能力的一个
核心。
--------------------------------------------------------------------------------
在 版本和更高版本中的核心选择
在一般的选择部分是完全的以后,配置将继续问你各种各样的特征,例如 SCSI 驱
动器等。后面的列表问题处理联网
支持。配置选择的准确集合,因为进行中的发展而经常的流动。大多数 和
的核心版本提供的一张典型的选择列
表看起来像这样(评价以斜体字被给出):
不管在方括号中显示的宏名字,如果你想要使用联网设备的任何类型,你必须用 y
回答这个问题,不考虑这是否是
以太网, SLIP ,或 PPP 。当用 y 回答这个问题时,以太网类型设备的支持自
动地被启用。为网络驱动程序的另外类
型的支持必须独立被启用:
这些问题涉及支持的各种连接层协议。 SLIP 允许你越过连续的线传输 IP 数据
包。压缩的头选择为 CSLIP 提供支
持,一项技术压缩 TCP/IP 头小到 3 个字节。注意到,这个核心选择不自动地打
开 CSLIP ,它仅仅为它供必要的核心功能。
PPP 是越过连续的线发送网络传输的另外一个协议。它比 SLIP 更灵活,并且
不对 IP 有限,但是一旦它被实现,
将也支持 IPX 。当 PPP 支持仅仅最近被完成了,这个选择不能在你的核心中
存在。
PLIP 提供一个方法越过平行端口连接发送 IP 数据包。它主要是用于连接运用 D
OS 的 PC 机。
下列问题从各种各样的供应商处理以太网板。当越来越多的驱动器正在被开发,
你可能看见被加到了这节的问题。
如果你想要建造一个你能在很多不同的机器上使用的核心,你能启用不止一个驱
动器。
最后,在文件系统一节中,配置手迹将问你,你是否想要为 NFS 的支持,联网的文
件系统。 NFS 让你出口文件系统
到若干主机,它让文件出现好像他们在被纳入了主机的一个平常的硬盘上。
--------------------------------------------------------------------------------
在 版本和更高版本中的核心选择
以 开始,它为 IPX 增加了 alpha 支持,配置过程稍微变化了。总的来说,
一般的选择节现在问你是否需
要联网支持。它很快地被一些问题在其他联网的选择上跟随。
使用联网的 TCP/IP ,你必须用 y 回答这个问题。如果你用 n 回答,然而,你将
仍然能用 IPX 支持编辑核心。
如果你的系统在两个以太网之间充当一道网关,或在以太网和一个 SLIP 连接之
间充当一道网关,等等,你必须启
动这个选择。尽管它由缺省启用这个不受伤害,你可能想要停用这个,作为所谓
的防火墙设置一台主机。防火墙是被连
接到两个或两个以上联网的主机,但是不在他们之间发送传输。他们通常用于提
供来自一个拥有因特网的网络公司的用
户,这个因特网以最小的风险存取到内部的因特网。用户将被允许登录防火墙并
且使用因特网服务,但是因为任何到来
的连接不能穿过防火墙,公司的机器将阻止外面的攻击。
这个选择与 PC/TCP 的一些版本在一个障碍附近工作,为 基于 DOS 的 PC 机的
商业的 TCP/IP 实现。如果你启用这个
选择,你将仍然能与正常的机器交流,但是该行为可能在慢连接上受伤。
这个功能启用 RARP ,颠倒地址解析协议。当启动时, RARP 被无盘的顾客和
X 终端用来询问他们的 IP 地址。仅当你
计划服务这种顾客时,你应该启用 RARP 。网络实用程序的最新的文件包( net-0
.32d )包含被称为允许你把系统加到
RARP 缓存的 rarp 的一个小的实用程序。
当在 TCP 上发送数据时,核心必须在把它给 IP 之前拆散溪流成为若干个文件
包。例如一个以太网,对于能在一个
本地的网络上被到达的主机,更大的文件包将比为数据必须通过长途连接的主机
更多地被使用。如果你不启用 SNARL,核
心将假设仅仅那些网络是本地的,它实际上有一个接口到那里。然而,如果你在
格劳乔·马克思大学看类别 B 网络,整个
的类别 B 网络是本地的,但是大多数主机接口仅到一个或两个子网。如果你启
用 SNARL,核心将假设所有的子网是本地的,
并且当在校园中与所有的主机谈话时,使用大文件包。
如果你确实想要为被发送到特定的主机的数据使用更小的文件包(因为,例如,数
据通过一个 SLIP 连接),你能使用线
路的 mtu 选择做到这一点,它在这章的结尾被简短的讨论。
Nagle 的规则是一个启发式避免发送特别地小的 IP 包,也被称为 tinygrams 。 Tiny
grams 通常被交互联网工具创造,
它输送单个按键,例如远程登录或 rsh 。 Tinygrams 能在低带宽连接上变得特别
地浪费,象 SLIP 一样。 Nagle 算法试图
在一些情形下面通过阻止 TCP 数据的传播来避免他们。如果你有得到掉落的文
件包的严重问题,你可能仅想要停用
Nagle 的算法。
这为 IPX 启用支持,运输协议由 Novell 联网使用。它仍然在发展,并且还不确
实是有用的。这个的一个好处将是,
你有一天能用基于 IPX 的 DOS 实用程序交换数据,并且通过一个 PPP 连接在
你的基于 Novell 的网络之间发送通途。为
Novell 联网的高级协议的支持然而不在眼前,为这些的说明仅仅在可怕的费用和
在一个不揭发协议下面是可得到的。
以 核心开始,支持另外一种驱动器类型,虚拟驱动器。下列问题出现在设备
驱动器一节的开头。
虚拟驱动程序确实不做很多,但是在独立的或 SLIP 主机上是相当有用的。它基
本上是一个化装的 loopback 接口。
有这种接口的原因是,在做 SLIP 但是没有以太网的主机上,你想要有一个总是
忍受你的 IP 地址的接口。这在 sectionin
章-中更详细的被讨论。
网络管理员指南 -3.设置网络硬件 -2>漫游网络设备
本文出自: 作者: Andrew Anderson
核心支持为各种各样类型的设备的很多硬件驱动器。这节给出可得到的驱动器家
族的简短概述,
并且为他们使用的接口名字。
在里面的接口有很多标准的名字,它被列出在下面。大多数驱动器不仅支持一个
接口,在此情况下,
接口被标记,象 eth0 , eth1 ,等等。
lo
本地的 loopback 接口。它被用于测试目的,象一些网络应用一样。它工作起来象
一个关闭的电路,即使被
写给它的任何数据包将立即返回给主机的联网层。在核心中总是存在一台
loopback 设备,并且有多或有
少只有一点感觉。
ethn
第 n 张以太网卡片。这是为大多数以太网板的通用的接口名字。
dln
这些接口存取一个 D 连接 DE-600 袖珍的适配器,另外一个以太网设备。它是有
点特殊,因为 DE-600 通过一
个平行端口被驱动。
sln
第 n 个 SLIP 接口。 SLIP 接口顺序连接连续的线,他们在此为 SLIP 被分配;
即,为 SLIP 被设置的第一个
连续的线成为 sl0 ,等等。核心支持直到 4SLIP 接口。
pppn
第 n 个 PPP 接口。就象 SLIP 接口一样,一旦它被变换到 PPP 模式,一个 PPP
接口与一根连续的线被联系。
目前,直到 4 个接口被支持。
plipn
第 n 个 PLIP 接口。PLIP 在平行线上输送 IP 数据包。直到 3 PLIP 接口被支
持。他们由 PLIP 驱动程序在系
统启动时间被分配并且到平行端口之上被印射。
为另外的接口驱动器在未来可以被加进,象 ISDN ,或 ,另外的名字将被
介绍。为 IPX 的驱动程序
( Novell 的联网协议),和 (由火腿收音机业余运动员使用了)被开发,但是仍
然在内部测试阶段。
在下节中,我们将讨论使用被描述在上面的驱动器的细节。
网络管理员指南 -3.设置网络硬件 -3>以太网安装
本文出自: 作者: Andrew Anderson
当前的网络代码支持以太网卡的各种各样的商标。大多数驱动器被唐纳德·贝克
写出( becker@ ),
他为基于国家的 Semiconductor-8390 薄片写了驱动器的一个家庭;这些作为贝克
尔系列驱动器为人所知了。也有来自 D 连
接的为一些产品的驱动程序,在他们之中 D 连接袖珍适配器允许你通过一个平行
端口存取一个以太网。为这的驱动器被
Bj?rn Ekwall 写 ( bj0rn@ ). DEPCA 驱 动 器 被 大 卫 ·C 写
( davies@ )。
--------------------------------------------------------------------------------
以太网布线
mailto:becker@
mailto:bj0rn@
mailto:davies@
如果你第一次在你的生活中正在安装一个以太网,关于电缆的一些话语在这里可
能是有序的。以太网关于合适的电缆
是非常挑剔的。电缆必须与一个 50 欧姆的电阻器在两端终止,并且你不必有任何
分支(即, 三个连接在一个星形状上的电缆)。
如果你正在使用一个用 T 型的 BNC 连接的劝说电报,这些连接必须直接在板的
接头上被捻在一起;你不应该插入一个电缆分割。
如果你与一个粗电缆网安装联接,你必须通过一个收发器配属你的主机(有时被
称为以太网附属物单位)。你能插收发器
进 15 个大头针 AUI 端口直接在你的板上,但是可能也使用一根防护的电缆线。
--------------------------------------------------------------------------------
支持板
支 持 的 板 的 一 张 完 全 的 表 在 每 月 由 保 罗 · 格 特 马 克 邮 寄 了 到
的以太网答疑中是可得到的。
有 Linux 支持了的越为人所知道的板的一张表。在答疑中的实际的表大约三倍
长。然而,就算你发现你的板在这张表中,
首先检查答疑;有时这里有关于操作这些卡片的重要的细节。一种状况是,一些
基于 DMA 以太网板使用同样的 DMA 频道,就象由
缺省作为 Adaptec 1542 的 SCSI 控制器一样。除非你移动他们中的一个到一条
不同的 DMA 频道,你将为以太网板上弦,在
你的硬盘上写文件包数据给任意的地点。
3c503 和 3c503/16 被支持的 3Com EtherLink ,它是 3c507 和 3c509 。 3c501
也被支持,但是太慢,不值得买。
Novell Eagle NE1000 和 NE2000 ,和许多种类。 NE1500 和 NE2100 也被支持。
Western Digital/SMC WD8003 和 WD8013
(同 SMC Elite 和 SMC Elite Plus 一样)被支持,以及更新的 SMC 16 Ultra。 Hewlett
Packard HP 27252 , HP 27247B ,
和 HP J2405A. D 连 接 DE-600 袖 珍 适 配 器 , DE-100 , DE-200 , 和
DE-220-T.也为 DE-650-T 有一个修补工具包,它是一张
PCMCIA 卡片( 4 ) DEC DE200 ( 32K/64K K ), DE202 , DE100 ,和 DEPCA
rev E。 Allied Teliesis AT1500 和 AT1700 。
--**- Emacs : (基本)--17%--------------------------------
使用这些卡片之一,你可能从主要的分区之一使用一个预先编译的核心。这些通
常有为他们建造在里面的驱动器。从长远
来看,然而,滚动你自己的核心是好一些的,并且仅在你实际上需要的那些驱动器
中编辑。
--------------------------------------------------------------------------------
以太网自动探索
在启动时间,以太网代码将试着定位你的板并且决定它的类型。卡片为在下列地
址和下列顺序中被探查:
------------------------------------------------------
+--------------+-------------------------------------+
|Board | Addresses probed for |
+--------------+-------------------------------------+
|WD/SMC | 0x300, 0x280, 0x380, 0x240 |
|SMC 16 Ultra | 0x300, 0x280 |
|3c501 | 0x280 |
|3c503 | 0x300, 0x310, 0x330, 0x350, 0x250, |
| | 0x280, 0x2a0, 0x2e0 |
|NEx000 | 0x300, 0x280, 0x320, 0x340, 0x360 |
|HP | 0x300, 0x320, 0x340, 0x280, 0x2C0, |
| | 0x200, 0x240 |
|DEPCA | 0x300, 0x320, 0x340, 0x360 |
+--------------+-------------------------------------+
+--------------+-------------------------------------+
到自动探索代码有两个限制。一个,它不能适当地认出所有的板。这为普通板的
一些更便宜的复制是特别真实的,
而且也为一些 WD80x3 板。第二问题是核心目前将不为超过一个板自动探查。
这是一个特征,因为它被假定你想要控制哪个
板被分配哪个接口。
如果你正在使用超过一个板,或如果自动探索没能检测你的板,你必须明确地告
诉核心关于卡的基础地址和名字。
在 Net-3 中,你能使用两个不同的计划完成这个。一个方法是,改变或增加信息
给在包含驱动程序的所有信息的核源
代码的 drivers/net/ 文件。只要你对联网的代码熟悉,这被推荐。一个更
好的方法是在启动时间向核心提供这个
信息。如果你使用 lilo 启动你的系统,你能通过指定他们通过 中的搜索
路径选择传递参数给核心。通知核心关于
一台以太网设备,你能传递下列参数:
前四个个参数是数字的,最后一个是设备名字。所有数字的价值是可选的;如果他
们被省略或设定到零,核心将试着通过
探测它来检测价值,或使用缺省价值。
第一个参数设置被分到了设备的 IRQ 。由缺省,核心将试着自动检测设备的 IRQ
频道。3c503 驱动器有一个特征,它选
择一个来自列表 5 , 9 , 3 , 4 的免费 IRQ,并且设置板使用这行。
base_addr 参数给出板的 I/O 基本地址;零的价值告诉核心去探查被列在上面的地
址。
剩下的两个参数可以不同地被不同的驱动程序使用。因为分享记忆板例如
WD80x3,他们指定分享记忆区域的开始和结束地址。
另外的卡片通常使用 param1 去设置被显示调试信息的水平。通过 7 的 1 的价值
表示增加冗长的水平,同时 8 一起关掉他们;0 表
示缺省。3c503 驱动程序使用 param2 选择内部的 收发器(缺省)或一个外部的收
发器(1 的值)。前者使用板的 BNC 接头;后者
使用它的 AUI 端口。
如果你有两个以太网板,你能自动检测一个板,并且用 lilo 通过第二板的参数。
然而,你必须保证驱动器不能首先偶然发
现第二个板,另外一个根本不会被登记。你通过递给 lilo 一个储备选择做这,它明
确地告诉核心避免探查被第二个板占用的 I/O
空间。
例如,做作为 eth1 在 0x300 上安装第二个以太网板,你将把下列参数传递给核心:
reserve=0x300,32 ether=0,0x300,eth1
当为一些设备探查时,储备选择保证没有驱动程序存取板的 I/O 空格。你可以
也使用核心参数为 eth0 不考虑自动
探索: reserve=0x340,32 ether=0,0x340,eth0
完全关掉自动探索,你能指定 base_addr 的参数- 1 : ether=0,-1,eth0
网络管理员指南 -3.设置网络硬件 -4>PLIP 驱动器
本文出自: 作者: Andrew Anderson
PLIP 代表平行线 IP ,并且当你只想要联接两台机器时,它是到网络的一个简
单方法。它使用一个平行
端口和一个特殊电缆,完成 10kBps 的速度到 20kBps 。
PLIP 原来被 Crynwr 公司开发。它的图案是相当天真的(或,如果你比较喜欢,
黑客):很长时间,在 PC 机
上的平行端口仅用于单向性的打印机端口;即,八数据线仅能被用来从 PC 机发送
到外部的设备,然而并非另外的
方法。PLIP 为输入使用端口的五地位线在这附近工作,它限制它仅仅作为半位元
组转移所有的数据(一半字节)。
操作的这个模式被称为模式零 PLIP 。今天,这些单向性的端口似乎不再被很多
地使用。因此,也有使用完整的8
位接口的一个 PLIP 扩展称为模式 1。
当前,仅仅支持模式 0 。不同于 PLIP 代码的更早的版本,它现在试图从 Crynwr
中使用 PLIP 来实现兼容,
象在 NCSA 远程登录上的 PLIP 驱动器一样。使用 PLIP 连接两台机器,你需要
一根特殊的电缆,作为
“Null Printer 或“ Turbo Laplink ”电缆在一些店中被卖。你能,然而,相当容易使
使自己作成一个。附录
显示你怎么去做。
PLIP 驱动器几乎为无数的人工作。它当前被 Niibe Yutaka 维持。如果编了进核
心,它为每个可能的打印机
端口安装一个网络接口,与平行端口 lp0 相应的 plip0 ,lp1 相应的 plip1 ,等等。
到端口的接口印射是当前这个:
--------------------------------
+-----------+-----------+------+
|Interface | I/O Port | IRQ |
+-----------+-----------+------+
|plip0 | 0x3BC | 7 |
|plip1 | 0x378 | 7 |
|plip2 | 0x278 | 5 |
+-----------+-----------+------+
+-----------+-----------+------+
如果你用一个不同的方法设置了你的打印机端口,你必须在核来源中的 drivers/n
et/ 中改变这些价
值,并且创造一个新核心。
这个印射不意味着,然而,你不能象往常一样使用这些平行端口。仅当相应的接口
被设置起来时,他们被
PLIP 驱动器存取。
网络管理员指南 -3.设置网络硬件 -5>SLIP 和 PPP 驱动程序
本文出自: 作者: Andrew Anderson
SLIP (连续的线 IP ),并且 PPP (点对点的协议)是为在一个连续的连接上发送 IP
包的一个广泛地被使
用了的协议。很多协会提供拨号的 SLIP 和 PPP 存取在因特网上的机器,这样提
供 IP 连接到私人(一些东西刚买得起)。
运行 SLIP 或 PPP ,没有硬件修正是必要的;你能使用任何连续的端口。因为连
续的端口配置不对联网的 TCP/IP
特定,一个分开的章将讲述这个。请参见有更多信息的一章。
网络管理员指南 -3.设置网络硬件 -5>SLIP 和 PPP 驱动程序
本文出自: 作者: Andrew Anderson
SLIP (连续的线 IP ),并且 PPP (点对点的协议)是为在一个连续的连接上发送 IP
包的一个广泛地被使
用了的协议。很多协会提供拨号的 SLIP 和 PPP 存取在因特网上的机器,这样提
供 IP 连接到私人(一些东西刚买得起)。
运行 SLIP 或 PPP ,没有硬件修正是必要的;你能使用任何连续的端口。因为连
续的端口配置不对联网的 TCP/IP
特定,一个分开的章将讲述这个。请参见有更多信息的一章。
网络管理员指南 -4.设置串联硬件 -1>MODEM 连接的联络软件
本文出自: 作者: Andrew Anderson
有谣言说,有一些人在网陆地中,他们仅仅拥有一台 PC 机并且没有钱花在一
个 T1 因特网连接上。不过得
到他们的每日一定量的新闻和邮件,他们说是依靠 SLIP 连接, UUCP 网络,和
( Bbs)利用公共电话网络的告
示板系统。
这章打算帮助依靠调制解调器维持他们的连接的所有人。然而,有许多细节这章
不能细讲,例如怎么为拨入设
置你的调制解调器。所有的这些话题将被格雷格·汉金斯在即将来临的连续的答
疑中讲述,在一个常规的基础上
被邮寄到 。
--------------------------------------------------------------------------------
为调制解调器连接的通讯软件
有很多可得到的通讯文件包。他们中的许多都是允许一个用户拨号进入另外一个
的计算机的终端程序,好像她
在一个简单的终端前面坐着似的。传统型的终端程序是 kermit 。它是,然而,有
点勇士。有可得到的更舒适的程序
支持电话号码的一本字典,为打电话并且记载进远程计算机系统的手迹语言,等等。
他们之一是 minicom ,它靠近以前
的 DOS 用户可能习惯使用的一些终端程序。也有 基于 X 的通讯文件包,例如 sey
on 。
另外,很多基于 BBS 的文件包对于想要运行一个告示系统的人是可得到的。这些
包裹的在 /pub/Linux/system/Network
中的 能被发现。
除了终端程序,也有非交互地使用一个连续的连接把数据传输到或来自你的计算
机的软件。这个技术的优点是,自动
地下载一些千字节不花很长时间,它使你在一些邮箱中在线阅读你的邮件,并且
浏览可能带你有趣的文章的告示板。在另一
方面,因为你通常得到的无用的信息的负担,这要求更多的磁盘存储。
这种通讯软件的摘要是 UUCP 。它是从一台主机拷贝文件到另外一台主机的一
个程序全套,在一台远程主机上执行程序,
等等。它经常用于在私人的网络上传输邮件或新闻。伊恩·泰勒的 UUCP 包,它
也在下面运行,在下一章被描述。另外的非交
互的通讯软件是,例如,在整个 Fidonet 中使用。喜欢 ifmail 的 Fidonet 应用程序
的端口也是可得到的。
SLIP ,连续的行因特网协议,有点在里面之间,允许交互和非交互的使用。许多人
使用 SLIP 在他们的校园网络或一些
其它类型公用 SLIP 上面拨号运行 FTP 会议,等等。SLIP 也可以用于为 LAN-TO-
LAN 联结的永久的或半永久的连接,尽管这确实
仅仅与 ISDN 是有趣的。
网络管理员指南 -4.设置串联硬件 -2>串联设备的介绍
本文出自: 作者: Andrew Anderson
安装设备驱动程序一个核心提供存取连续的设备典型地被称为 ttys 。这是 Telety
pe 的一个缩写,它用于 Unix 早
期的终端的主要制造商之一。术语现在用于任何基于特性的数据终端。通过整个
这章,我们将只使用术语参考核心设备。
区分 ttys 的三个类 虚拟)控制台,假终端(类似到一根双向的管子,例如 X11 由
申请使用了),以及连续的设备。
后者也作为 ttys 被数,因为他们在一个连续的连接上允许交互的会议;来自一根电
话线上的一个难相连的终端或一台远
程计算机。
Ttys 有能被设置使用 ioctl ( 2 )系统呼叫的可配置的参数。他们的许多仅仅适
用于连续的设备,因为他们需要更
灵活地处理连接的变化类型。
最突出的线参数是线速度和同等值。但是也有在上面和下面情况特征之间转化的
标志,运输返回为线输出,等等。
tty 驱动器也可以支持让设备驱动器表现完全不同的各种各样的线学科。例如, SL
IP 驱动程序为借助于特殊的线学科
被实现。
有关于怎么测量一根线的速度的歧义。正确术语是小点率,它与每秒位中被测量
了线的转移速度相联系(或 bps 缩写)。
有时,你听见人们参考它作为波特率,它是不正确的。两个术语是,然而,不可互换。
波特率参考一些连续设备的一个物理特征,
也就是在其搏动的钟率被传输。位率表示在两个点之间一个存在的连续的连接的
一个当前的状态,也就是每秒被转移的位的平
均数字。知道两个价值通常是不同的,是重要的,因为大多数设备编码每电子脉
冲超过一个。
网络管理员指南 -4.设置串联硬件 -3>存取串联设备
本文出自: 作者: Andrew Anderson
象在一个系统中的所有的设备一样,连续的端口通过设备专辑文件被存取,在 /de
v 目录定位了。
有两种连续的设备文件与连续的驱动程序相关联,并且对于每个端口,从他们的
各个中有一个设备文件。
取决于它被存取由的文件,设备将有不同地表现。
第一种用于无论何时端口被用于拨号时;它有主要数字 of-4 ,并且文件被称为 tty
S0 , ttyS1 ,等等。
第二种用于当通过一个端口拨号时;文件被称为 cua0 ,等等,并且有一个主要的数
字 of-5 。
次要的数字对于两种类型是相同的。如果你通过 COM4 在端口 COM1 之一上
有调制解调器,它的次要的
数字将是 COM 加 63 的端口数字。如果你的安装与那个不同,例如,当使用
支持多重连续线的一个板时,
请参考 Serial Howto 。
假设你的调制解调器在 COM2 上。这样它的次要的数字将是 be-65 ,并且它的
主要的数字为外面拨号将
是 5 。应该有一个有这些数字的设备 cua1。在 /dev 目录中列出连续的 ttys 。
列 5 和 列 6 应该显示出
主要的和次要的数字,分别地:
$ ls -l /dev/cua*
crw-rw-rw- 1 root root 5, 64 Nov 30 19:31 /dev/cua0
crw-rw-rw- 1 root root 5, 65 Nov 30 22:08 /dev/cua1
crw-rw-rw- 1 root root 5, 66 Oct 28 11:56 /dev/cua2
crw-rw-rw- 1 root root 5, 67 Mar 19 1992 /dev/cua3
如果没有如此的设备,你将必须创造一个:成为超级用户和类型
# mknod -m 666 /dev/cua1 c 5 65
# chown /dev/cua1
< /pre>
一些人建议使 /dev/modem 成为到你的调制解调器设备的一个符号的连接,以便
临时的用户不必须记得
那些 un-intuitive cua1 。然而,你不能在一个程序上使用调制解调器,并且真实的
设备文件名字在另外一个程序中。
这是因为这些程序使用所谓的锁文件到设备被使用的信号。由习惯,为 cua1 的
锁文件名字,例如,是 LCK ... cua1 。
为一样的端口使用不同的设备文件意味着程序将没能认出对方的锁文件,并且两
者将同时使用设备。作为结果,两个应
用程序根本不工作。
网络管理员指南 -4.设置串联硬件 -4>串联硬件
本文出自:http:// 作者: Andrew Anderson
当前支持使用 RS-232 标准的各式各样的连续的板。RS-232 是当前为在 PC 世
界中对于连续的通讯
的最普通的标准。它象为同步一样,为传输单个的位使用很多电路。附加的线可
以被用于发送一个传输存
在的信号(由调制解调器使用了),并且握手。
尽管硬件握手是可选的,它是很有用的。它允许两个位置的任意一个发送它是否
准备收到更多的数据
的信号,或是否另外的位置应该暂停直到接收装置被完成处理到来的数据。用于
这个的线被称为“清除发送”
(CTS)和“准备发送”( RTS ),分别地,它说明硬件握手的口语名字,也就是“ RTS/CT
S ”。
在 PC 机中, RS-232 接口通常被来自国家的 半导体-16450 芯片的一块 UART
芯片驱动,或其中的一个
更新的版本,NSC-16550A。一些标记(最值得注意的是用 Rockwell 芯片组装备了
的内部调制解调器)也使用被
规划为表现好像他们是 16550 的完全不同的芯片。
16450 和 16550 之间的主要的差别是,后者有 16 个字节的一个 FIFO 缓冲区,
然而前者仅仅有一个 1 字
节缓冲区。这使 16450 合适为加快到 9600 波特,因为更高的速度要求一块 16550
兼容机芯片。除这些芯片以外,
也支持 8250 芯片,它是为 PC-AT 的原来的 UART 。
在缺省配置中,核心检查通过 COM4 的四个标准的连续端口 COM1 。这些将通
过 67 被分配设备较小的数字 64 ,
如上所述。
如果你想要适当地设置你的连续的端口,你应该与 手迹一起安装特德·措
的 setserial 的命令。
这个手迹应该在系统启动时间从 /etc/rc 中被调用。设置核心连续的设备使用 sets
erial 。一个典型的
手迹看起来像这样:
# /etc/ - serial line configuration script.
#
# Do wild interrupt detection
/sbin/setserial -W /dev/cua*
# Configure serial devices
/sbin/setserial /dev/cua0 auto irq skip test autoconfig
/sbin/setserial /dev/cua1 auto irq skip test autoconfig
/sbin/setserial /dev/cua2 auto irq skip test autoconfig
/sbin/setserial /dev/cua3 auto irq skip test autoconfig
# Display serial device configuration
/sbin/setserial -bg /dev/cua*
请参考与 setserial 一起解释参数的文档。
如果你的连续的卡没被检测,或 setserial bg 命令显示不正确的设置,你将必须通
过明确地供应正确的值
强迫配置。Rockwell 芯片组装备了内部调制解调器的用户被报导经历过这个问
题。如果,例如, UART 芯片被报
导是一个 NSC-16450 ,而事实上它是 NSC-16550-compatible 时,你必须为不好
的端口改变配置命令到
/sbin/setserial /dev/cua1 auto irq skip test autoconfig uart 16550
类似的选择存在于力量 COM 端口,基本地址,和 IRQ 设置。请参考 setserial (
8 )手册页。
如果你的调制解调器支持硬件握手,你应该保证启用它。尽管它是吃惊的,大多
数通讯程序不试图由缺省
启用这个;相反你必须手动地设置它。这最好在 手迹中被施行,使用 stty
命令:
$ stty crtscts < /dev/cua1
检查硬件握手是否有效,使用 $ stty -a < /dev/cua1
这为那台设备给你所有标记的地位;被显示出的一个标记的前面有一个减号,例
如- crtscts,意味着
标记被关掉了。
网络管理员指南 -5.设置 TCP/IP 网络 -1>建立 PROC 文件系统
本文出自: 作者: Andrew Anderson
在这章,我们将通过所有必要的步骤在你的机器上建立联网的 TCP/IP。以 IP 地
址的赋值开始,
我们将通过 TCP/IP 联网接口的配置方法慢慢的进行我们的工作,并且介绍一些
解决你的网络安装
问题时便利的工具。
这一章中讲述的大多数任务,你通常仅仅做一次。以后,当一个新系统加到你的
网络时,或当你
全部重新设置系统时,你仅需触摸大多数配置文件。一些命令用于设置 TCP/IP ,
然而,系统每次被启
动时,它必须被执行。这通常被来自系统 /etc/rc 手迹调用他们来完成。
通常,这个过程的网络特定的部分在被称为 或 的一个手迹中被包含。
有时,你将
也看到两个命名为 和 的手迹 ,前者在此初始化联网的核心部分,
同时后者开始基
本的联网服务和应用。通过下列,我将遵守后者概念。
在下面,我将讨论 施行了的行动,当应用在以后的章被讲述时。在完成
这章以后,你应
该建立了适当设置在你的计算机上联网上的 TCP/IP 命令的顺序。然后,你应该
与你的命令在
中代替任何样品命令,保证 在开始时间被执行,并且重新启动你的机器。
与你喜爱的分区一
起来的联网的 rc 手迹应该给你一个好例子。
--------------------------------------------------------------------------------
建立 proc 文件系统
Net-2 版本的一些配置工具依靠为与核心交流的 proc 文件系统。这是一个接口,
它允许通过一个
象文件系统一样的机制存取到核心运行时刻的信息。当安装时,你能象任何另外
的文件系统一样列出它
的文件,或显示他们的内容。典型的项目包括包含系统负载平均数,或 meminfo
的 loadavg 文件 ,它显示
出当前的核心存储器和交换用法。
对于这一点,联网的代码增加网目录。它包含很多文件,这些文件显示象核心 AR
P 表格, TCP 连接
状态,和路由表格一样的事情。大多数网络管理工具从这些文件中得到他们的信
息。
proc 文件系统(或作为它的 procfs 也被知道)通常在系统启动时间在 /proc 上被
安装。最好的方法
是把下列行加到 /etc/fstab :# procfs mont point:none /proc proc defaults 并且
从你的 /etc/rc
手迹执行“mount/proc ”。
procfs 现在被缺省设置进大多数核心。如果 procfs 不在你的核心中,你将得到
一条消息象这样“安
装: fs 类型 procfs 没有被核心支持”。然后,你将必须重新编译核心,并且当要
求 procfs 支持时,回
答“是”。
网络管理员指南 -5.设置 TCP/IP 网络 -2>安装二进制代码
本文出自: 作者: Andrew Anderson
如果你正在使用前文件包分区之一,它很可能包含主要的联网应用程序和有一套
联贯样品文件的实用程序。
你可能必须获得并且安装新的实用程序的唯一的情况,此时你安装一个新的核心
版本。当他们偶尔在联网层的核
心中包含变化,你将需要更新基本的配置工具。这至少包含重新编译,但是有时
你也可能被要求获得二进制代码
的最新的集合。这些通常与核心一起被散布,在被称为 的一个档
案中, XXX 在此是版本数字。
匹配的版本- 是 ,最新的核心的写法( 以及以后的)要求 。
如果你想要自己编辑并且安装标准的 TCP/IP 联网应用,你能从大多数 FTP 服务
者获得来源。有来自 Net-BSD
或其他来源的或多或少的修改的程序版本。其他的应用程序,例如 Xmosaic , xar
chie ,或 gopher 和 IRC 顾客
必须分别地被获得。如果你遵循指令,他们大多数不在其内。
为 Net-3 的官方的 FTP 地点是 ,在 system/Network/sunacm.
下面由 反
应了.最新的 Net-2e 修改工具包和二进制代码从 中是可得到的。 Matthias Urlichs
的 BSD 导出的
联网代码能在 /pub/system/linux/netbsd 中从 被得到。
网络管理员指南 -5.设置 TCP/IP 网络 -3>设置主机名
本文出自: 作者: Andrew Anderson
如果不是所有的,网络应用程序依靠本地的已经被设置到一些合理值的主机的名
字。这通常在
启动过程中被执行主机名命令做完。设置主机名命名,它被调用作为
使用没有任何为此的域名的不合格的主机名是普通的实践。例如,在虚拟的酿酒
厂的主人可能
被称为 , ,等等。这些是他们的官员,充分合格
的域名。他们
的本地的主机名仅是名字的第一部件,例如谷。然而,当本地的主机名经常被用于
查一下主机的 IP
地址,你必须保证解决图书馆能查一下主机的 IP 地址。这通常意味着你必须在 /et
c/hosts 中进入名
字(见下面)。
一些人建议使用 domainname 命令将核心的域名的想法设置到 FQDN 的剩余部
分。这样你能从
主机名和 domainname 联合产量再得到 FQDN 。然而,这最好仅是正确的一半。 do
mainname 通常用
于设置主机的 NIS 域,它可能与你的主机拥有的 DNS 域完全不同。 NIS 在章--
中被介绍。
网络管理员指南 -5.设置 TCP/IP 网络 -4>分配 IP 地址
本文出自: 作者: Andrew Anderson
如果你为独立的操作在你的主机上设置联网的软件(例如,能运行 INN 网络新闻
软件),你能安全
地跳过这节,因为你将需要一个只为 loopback 接口的 IP 地址,它总是 。
象以太网一样,有了真实的网络事情变得更复杂一些。如果你想要把你的主机连
结到一个存在
的网络,你必须要求它的主管在这个网络上给你一个 IP 地址。当都由你自己建
立网络时,你必须象
下面描述的那样自己分配 IP 地址。
在一个本地的网络以内的主机通常从一样的逻辑的 IP 网络分享地址。因此你必
须分配一个 IP 网
络地址。如果你有几个物理的网络,你要么必须分配给他们不同的网络数字,要
么使用 sub-netting
切开你的 IP 地址范围成若干子网。
如果你的网络没被连结到因特网,你可以自由的选择任何(合法的)网络地址。你
仅仅必须保证从
类别 A,B,或 C 中选择一个一个,否则事情将很可能不正常地工作。然而,如果
你在不久的将来打算上
因特网,你现在应该获得一个官方的 IP 地址。继续下去的最好的方法是要求你
的网络服务供应商帮助你。
如果你就想要获得一个网络数字,以防你可能某天上因特网,从 hostmaster@inter
上请求一张
网络地址申请表。
操作若干以太网(或另外的网络,一旦一个驱动程序是可得到的),你必须切开你的
网络进入子网。注意
到,只要你有不止一个广播网络,那么 sub-netting 被需求;点对点的连接不数。
例如,如果你有一个以太网,
一个以上到外界的 SLIP 连接,你不需要到你的网络的子网。对此的原因在章--中
被解释。
作为一个例子,酿酒厂的网络管理器为一个类别 B 网络数字适用于 NIC,并且
被给出 。
容纳两个以太网,她决定作为附加的子网位,使用主机部分的八位。为主人部分
留下另一个八位,允许在每个
子网上的 254 位主人。她然后把子网 1 分到酿酒厂,并且给酿酒厂数字 2 .他
mailto:hostmaster@
mailto:hostmaster@
们的各自的网络地址是这样
和 。子网面具是 。
vlager ,它是在两个网络之间的网关,在他们俩上被分配一个主机数字 1,它给它 IP
地址 并
且 ,分别地。图表显示两张子网,和网关。
注意到,在这个例子中,我正在使用类别 B 网络使事情简单;类别 C 网络将是
更现实主义的。用新联网
的代码, sub-netting 不对字节边界有限,这样甚至一个类别 C 网络可以被切开
进若干子网。例如,你能为网
络面具使用 2 位主机部分,,给你四个可能的在每个上有 64 位主机的子网。
网络管理员指南 -5.设置 TCP/IP 网络 -5>记录主机和网络文件
本文出自: 作者: Andrew Anderson
在你将你的网络变成子网后,你应该为使用 /etc/hosts 文件的主机名分辨率的一些
简单的
种类做准备。如果你为地址解析使用 DNS 或 NIS ,你必须把所有的主机放在
主机文件中。
就算你想要在正常的操作期间运用 DNS 或 NIS ,你不过想要在 /etc/hosts 中
拥有所有主
机名的一些子集。为一个,甚至当没有网络接口正在运行时,你想要有名字分辨
率的一些种类,
例如在启动期间。这不仅便利,而且也允许你在你的 手迹中使用符号的主
机名。这样,
当改变 IP 地址时,你仅仅必须拷贝一个更新的主机文件到所有的机器并且重新
启动,而非独立地
编辑很多 rc 文件。通常,你将把所有本地的主机名和地址放在主机中,如果被使
用,增加任何网
关和 NIS 服务器。
另外,在起始测试期间,你应该保证你的 分辨器仅仅使用来自主机文件的信息。
你的 DNS 或
NIS 软件可以与样品文件一起使用,该样品文件被使用时可能产生奇怪的结果。
当查找一个主机的
IP 地址时,让所有的应用程序只使用 /etc/hosts ,你必须编辑 /etc/ 文
件。评价以关
键词顺序的开始的任何行,这个顺序前以一个杂乱信号开始,并且插入行
分辨率库的配置将在章--中被详细介绍。
主机文件每行包含一个入口,由为主机名的一个 IP 地址,一个主机名,和别名列
表的一个选择
组成。域由空格或标签被分开,并且地址域必须以列开始。跟随一个杂乱信号(#)
的任何东西被认
为是一个评价并且被忽略。
主机名能是充分合格的,或相对本地的领域合格的。对于谷,你将通常进入充分
合格的名字,
,并且在主机文件中由它自己谷,以便它被它的官员名字和更短
的本地名字知晓。
这是在虚拟的酿酒厂的一个主人文件可能看起来的一个例子。两个特殊的名字被
包括,
vlager-if1 和 vlager-if2,它们为在 vlager 上被使用了的两个接口给出地址。
#
# Hosts Virtual Brewery/Virtual Winery
#
# IP local fully qualified domain name
#
localhost
#
vlager
vlager-if1
vstout
vale
#
vlager-if2
vbeaujolais
vbardolino
vchianti
就象一台主机的 IP 地址,你有时也想为网络数字使用一个符号的名字。因此,主
机文件有
一个被称为/etc/networks 的共同体,它定位联网名字到联网数字,并且反过来也
如此。在虚
拟的酿酒厂,我们可以象这一样,安装一个网络文件:
# /etc/networks for the Virtual Brewery
brew-net
wine-net
网络管理员指南 -5.设置 TCP/IP 网络 -6>为 IP 的接口配置 -1)Loopback 接口
本文出自: 作者: Andrew Anderson
为 IP 的接口配置
在先前的章解释了安装你的硬件以后,你必须使这些设备让人知道到联网软件的
核心。一些命令被
用来设置网络接口,并且初始化路由表格。这些任务通常在每次系统被启动的时
候从 手迹被
施行。为这的基本的工具被称为 ifconfig (在那儿“如果”代表接口),并且线路。
ifconfig 被用来使一个接口可接近到联网层的核心。这包含一个 IP 地址和另外的
参数的赋值,并且
激活接口,也被知道作为“收起.”在这里变得活跃意味着,核心将通过接口发送和
接收 IP 数据包。调用
它的最简单的方法是
它把 ip 地址分到接口并且激活它。所有的另外的参数被设置到缺省价值。例如,
缺省子网面具从 IP 地
址的网络类被导出,例如为类别 B 地址的 。 ifconfig 在这章的结尾被
详细地描述。
线路允许你增加或把线路从核路由表格移开。它能被调用作为
在此增加和 del 参数决定是否增加或删除线路指向。
--------------------------------------------------------------------------------
Loopback 接口
被激活的第一个接口是 loopback 接口:
# ifconfig lo
偶尔,你将也看见被使用的虚拟的主机名 localhost 而不是 IP 地址 。 ifconfig 将
在主机名中查找名
字,在这个主机中一个入口被宣布作为 的主机名:
# Sample /etc/hosts entry for localhost
localhost
看一个接口的配置,你调用给它接口名字作为参数的 ifconfig:
$ ifconfig lo
lo Link encap Local Loopback
inet addr Bcast [NONE SET] Mask
UP BROADCAST LOOPBACK RUNNING MTU 2000 Metric 1
RX packets 0 errors 0 dropped 0 overrun 0
TX packets 0 errors 0 dropped 0 overrun 0
象你能看到的, loopback 接口被分配了 的一个 netmask ,因为
. 是一个 A 类
地址。象你能看到的,接口不设置一个广播地址,它通常对于 loopback 不是很有
用。然而,如果你在你的主
机上运行 rwhod 后台程序,你可能必须设置 loopback 设备的广播地址,以便 rwho
有序的工作。设置广播
在下面的节--中被解释“关于 ifconfig ”。
现在,你几乎能开始玩你的 mini 网络了仍然没有的东西是,在路线表格中的一个
入口告诉 IP 它可以作为
到目的地 的线路使用这个接口。这被敲打完成
# route add
再有,你能使用 localhost 而不是 IP 地址。
下次,你应该检查任何事情都工作正常,例如使用 ping。ping 是一台声纳设备的联
网的等价物,并且被用
来证实一个给出的地址实际上是可达到的,并且测量发生再发送一个数据包给它
和返回时的延期。为这被要求
了的时间经常被作为双程的时间。
# ping localhost
PING localhost (): 56 data bytes
64 bytes from : icmp seq=0 ttl=32 time=1 ms
64 bytes from : icmp seq=1 ttl=32 time=0 ms
64 bytes from : icmp seq=2 ttl=32 time=0 ms
^C
--- localhost ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0/0/1 ms
象这里显示出的那样,调用 ping 时,除非被用户打断了,它将继续发送文件包。
上面的 C 标记我们按
Ctrl-C 的地方。
上面的例子显示为 的文件包被适当地发送了,并且一个答复几乎即时
地回到了 ping。这
显示你成功地建立了你的第一个网络接口。
如果你从 ping 中得到的产量不相似于上面显示出的那样,你有麻烦了。检查任何
错误,他们是否显示
一些文件没适当被安装。检查你使用的 ifconfig 和线路二进制代码与你运用的
核心版本兼容,并且,首先,
核心与启动的联网被编辑了,(你从 /proc/net 目录的存在看这个)。如果你得到
一条错误消息说“不能到
达的网络”,那么,你可能有线路命令错误。保证你使用同你给出 ifconfig 的一样
的地址。
上面被描述了的步骤,对于在一台独立的主机上使用联网应用程序已足够。在把
上面的行加到
并且保证两个 手迹从 /etc/rc 被执行以后,你可以重新启动你的机器并且
试一试各种各样的应用。
例如,“远程登录 localhost ”应该建立一个远程登录连接到你的主机,给你一个登录
提示符。
然而, loopback 接口作为在联网书中的一个例子,或作为在开发期间的一张试验
床都是有用的,但是实
际上被一些应用程序在正常的操作期间使用。因此,你总是必须设置它,不考虑你
的机器是否被纳入一个网络。
网络管理员指南 -5.设置 TCP/IP 网络 -6>为 IP 的接口配置 -2)以太网接口
本文出自: 作者: Andrew Anderson
设置一个以太网接口与 loopback 接口一样处理得很好,当你正在使用 sub-netting
时,它只要求几个参数。
在虚拟的酿酒厂,我们把子网的 IP 网络,它原来是一个 B 类网络,放进 C 类子网。
让接口认出这个, ifconfig
咒语将看起来像这样:
# ifconfig eth0 vstout netmask
这分配 eth0 接口 vstout 的 IP 地址( )。如果我们省略了 netmask ,
ifconfig 将演绎来自 IP
网络类别的 netmask ,它将导致 的一个 netmask 。现在一个快速检
查显示出:
# ifconfig eth0
eth0 Link encap 10Mps Ethernet HWaddr 00:00:C0:90:B3:42
inet addr Bcast Mask
UP BROADCAST RUNNING MTU 1500 Metric 1
RX packets 0 errors 0 dropped 0 overrun 0
TX packets 0 errors 0 dropped 0 overrun 0
你能看到 ifconfig 自动地设置广播地址( Bcast 域在上面)到通常的值,它是设有
主机位的主机网络数字。
另外,消息转移单位(以太网的最大的大小构成的核心将为这个接口产生)被设置
了到 1500 个字节的最大价值。所
有的这些价值能以特殊的选择被制服,这一点以后再描述。
相当类似 loopback 的情况,你现在必须安装一个通知核心关于能通过 eth0 被
到达的网络的路由入口。对于虚拟
的酿酒厂,你将调用线路作为
# route add -net
最初,这看起来有一点象魔力,因为它真的不清楚线路怎么检测哪个接口被通过。
然而,诡计是相当简单的:核心
检查到目前为止被设置了所有接口,并且比较目的地地址( 在这种情况
中)到接口地址的网络部分(那是,
逐位以及接口地址和 netmask )。唯一匹配的接口是 eth0 。
现在,网络选择是什么?因为线路能处理到网络的路线和到单一主机的线路,因
此这被使用(就象上面看到的本
地的主机)。当被给出的地址以有点的铅标志,通过看主机部分位数,它试图猜测它
是一个网络还是主机名。如果地址
的主机部分是零,线路假设它表示一个网络,否则它把它作为一个主机地址。因
此,线路将认为 是一个
主机地址而非一个网络数字,因为它不能知道我们使用 sub-netting。因此,我们必
须明确地告诉它,它表示一个网络,
给它-网旗帜。
当然,上面的线路命令敲打起来有点乏味,并且它对拼写错误很敏感。一条更方
便的途径是使用我们在上述
/etc/networks 上定义了的网络名字。这使命令更可读;甚至-网络标志现在能被省
略,因为线路现在知道,
表示一个网络。
# route add brew-net
既然你完成了基本的配置步骤,我们想要保证你的以太网接口确实正在良好地运
行。从你的以太网选择一台
主机,例如 vlager ,和类型
# ping vlager
PING vlager: 64 byte packets
64 bytes from : icmp seq=0. time=11. ms
64 bytes from : icmp seq=1. time=7. ms
64 bytes from : icmp seq=2. time=12. ms
64 bytes from : icmp seq=3. time=3. ms
^C
PING Statistics----
4 packets transmitted, 4 packets received, 0% packet loss
round-trip (ms) min/avg/max = 3/8/12
如果你没有看见类似这个的任何产量,那么一些东西被打破,显然。如果你遇见
不平常的文件包损失率,这
是一个硬件问题的提示,象坏了或失踪的终止者一样,等等。如果你根本没收到
任何文件包,你应该与 netstat 检
查接口配置。由 ifconfig 显示了的文件包统计数据应该告诉你任何文件包是否
在接口上被发送了。如果你也能访
问远程主机,你应该走向那台机器并且也检查接口统计数据。这样,你能确切地
决定文件包在哪儿掉落。另外,如果
两台主机有正确的路由入口,你应该与线路一起显示路由信息。当没有任何参数
被调用时,线路打印出完整的核心
路由表格(- n 选择仅仅让它作为有点的空铅打印地址,而不是使用主机名):
# route -n
Kernel routing table
Destination Gateway Genmask Flags Metric Ref Use
* UH 1 0
* U 1 0
下面的这些领域的详细意思在节--中被解释。标记栏包含为每个接口设定的标记
的列表。 U 总是为活跃的接口
被设置,H 说目的地地址表示一台主机。如果 H 标志被设置为一条你希望的一
条网络线路,然后,你必须用线路命令
指定-网络选择。检查你进入了的一条线路是否被使用,检查第二栏到最后一栏中
使用的域是否在两个 ping 咒语之间增加
网络管理员指南 -5.设置 TCP/IP 网络 -6>为 IP 的接口配置 -3)通过一道网关的路
由
本文出自: 作者: Andrew Anderson
在先前的一节,我仅仅讲述了在一个单个的以太网上建立一台主机的情况。相当
经常,然而,
一个人遇见通过网关连结到对方的网络。这些网关可以简单地连接两个或两个以
上的以太网,但
是可以提供到外界的一个连接,因特网。以便使用一道网关的服务,你必须提供附
加的路由信息到
联网的层。
例如,虚拟的酿酒厂和虚拟的酿酒厂的以太网通过如此的一道网关被连接,也就是
主机 vlager 。
假设 vlager 已经被设置,我们仅仅必须把另外的入口加到 vstout 的路由表格,这个
表格告诉核心它
能通过 vlager 在酿酒厂的网络上到达所有的主机。线路的适当的咒语被显示在
下面; gw 关键词告
诉它下一个参数表示一道网关。
# route add wine-net gw vlager
当然,在你想要与之谈话的酿酒厂网络上的任何主机必须有为酿酒厂的网络的一
个相应的路由入口,
否则你将仅仅能从 vstout 发送数据到 vbardolino o ,但是后者归还了的任何回答
将走进小位桶。
这个例子仅仅描述在两个独立的以太网之间的开关文件包的一道网关。现在假设
vlager 也有一
个连接到因特网(即,通过一个附加的 SLIP 连接)。然后,我们希望把除酿酒厂以
外的到任何目的地网
络的数据包被传递给 vlager 。这被为 vstout 的使它成为缺省网关来完成:
# route add default gw vlager
网络名字缺省是为 的一篇速记,它表示缺省线路。你不必须把这个名字加
到 /etc/networks ,
因为它被建造进线路。
当你看见高包损失率时,当在一个或一个以上网关后面 pinging 一台主机时,这可
以提示在一个很拥
挤的网络上。文件包损失不由于技术的缺乏,由于在提交主人上的暂时的过量负
担,它让他们推迟或甚至掉
落到来的数据包。
网络管理员指南 -5.设置 TCP/IP 网络 -6>为 IP 的接口配置 -4)配置一个网关
本文出自: 作者: Andrew Anderson
设置一台机器在两个以太网之间交换文件包是相当直接的。假设我们回到 vlager ,
它用两个以太网板装备,
每个正在被连结到两个网络之一。你所要做的就是独立设置两个接口,给他们他
们的各自的 IP 地址,并且那是。
使用被显示在下面的方法,在两个接口上增加信息到主人文件,是相当有用的,
因此我们也有他们的方便的名字:
vlager
vlager-if1
vlager-if2
建立两个接口的命令的顺序是:
# ifconfig eth0 vlager-if1
# ifconfig eth1 vlager-if2
# route add brew-net
# route add wine-net
网络管理员指南 -5.设置 TCP/IP 网络 -6>为 IP 的接口配置 -5)PLIP,SLIP 和 PPP
接口
本文出自: 作者: Andrew Anderson
当使用一个 PLIP 连接连结两台机器时,事情与当使用一个以太网时你必须做的
事情有点不同。前者是所谓的
点对点的连接,因为他们包含仅仅两台主机(“点”“),与广播网络对比。
作为一个例子,我们在经由 PLIP 被连结到 vlager 的虚拟的酿酒厂,考虑一些
雇员的膝上计算机。膝上计算
机自己被称为 vlite ,并且仅一平行端口。在启动时间里,这个端口将作为 plip1
被登记。激活连接,你必须设置
使用下列命令的 plip1 接口:
# ifconfig plip1 vlite pointopoint vlager
# route add default gw vlager
第一个命令设置接口,告诉核心这是一个点对点的连接,与远程方面有 vlager 的地
址。第二个安装缺省线路,作为
网关使用 vlager 。在 vlager 上,一个类似的 ifconfig 命令有必要激活连接(线
路咒语不被需要):
# ifconfig plip1 vlager pointopoint vlite
有趣的点是,在 vlager 上的 plip1 接口不必有一个分开的 IP 地址,但是可能也
被给出地址 。
现在,我们从膝上计算机设置了路由到酿酒厂的网络;仍然失去的是,从酿酒厂的
主机的任何东西发送到 vlite
的一个方法。一个特别麻烦的方法是,把一条特定的线路加到作为一道网关命名
vlager 到 vlite 的每台主机的路由表格:
# route add vlite gw vlager
当面临暂时的线路时,一个更好的选择是使用动态的路由。这样做的一个方法是
使用 gated ,一个路由后台程序,你
将必须安装在网络上的每台主机,以便动态地散布路由信息。最容易的方法,然
而,是使用代理 ARP 。用代理 ARP ,
vlager 将通过发送它自己的以太网地址为 vlite 回答到任何 ARP 的询问。这的
效果是为 vlite 的所有的文件包将在
vlager 上作好准备,它然后把他们提交给膝上计算机。我们将在下一节回到代理 A
RP 。
未来的 NET-3 版本将包含一个称为 plipconfig 的工具,它将允许你设置打印机端
口的 IRQ 去使用。以后,这可能甚至
被一个更一般的 ifconfig 命令代替。
=======================================
SLIP 和 PPP 接口
尽管 SLIP 和 PPP 连接仅仅是简单的象 PLIP 连接一样的点对点的连接,有更多
关于他们的内容需要讲述。通常,
建立一个 SLIP 连接包含通过你的调制解调器在一个远程地点上面拨号,并且设
置连续的线到 SLIP 模式。 PPP
使用于类似的情况。为建立一个 SLIP 或 PPP 连接需要的工具将在 chaptersand-
中被描述
网络管理员指南 -5.设置 TCP/IP 网络 -6>为 IP 的接口配置 -6)虚拟接口
本文出自: 作者: Andrew Anderson
虚拟接口确实是有一些异国情调,但是相当有用。它的主要好处是有独立的主机,
并且机器的唯一 IP
网络连接是一个拨号的连接。事实上,后者大部分时间是独立的主机,也。
用独立的主机的窘境是他们仅仅有一台单个的网络设备是活跃的, loopback 设备,
它通常被分配地址
。在一些场合上,然而,你需要发送数据到本地主机的“官方”IP 地址。
例如,认为膝上计算机是
vlite ,它为这个例子的持续时间从任何网络被断开了。在 vlite 上的一个应用程
序,可能现在想要在一样的
主机上发送一些数据到另外的应用程序。在 /etc/hosts 中查一下 vlite 产出
的一个 IP 地址,
因此申请试着发送到这个地址。当 loopback 接口是当前唯一的在机器上的活跃
的接口,核心不知道这个地址
实际上指它自己!作为后果,核心丢弃数据包,并且返回一个错误给申请。
这是虚拟设备交换的地方。它通过简单地服务作为改变 loopback 接口的自我主
义来解决窘境。在 vlite
的情况中,你将简单地给它地址 并且增加指向它的一条主机线路。
然后,为 的每
个数据包将局部地被交付。合适的符咒是:
# ifconfig dummy vlite
# route add vlite
网络管理员指南 -5.设置 TCP/IP 网络 -7>关于 ifconfig
本文出自: 作者: Andrew Anderson
有很多到 ifconfig 的参数,比我们在上面描述的要多。它的正常的符咒是这样:
接口是接口名字,地址是被分到接口的 IP 地址。这既可以是在空铅标志中的一
个 IP 地址,或是一个 ifconfig 将在
/etc/hosts 和/etc/networks 中查查找的一个名字。-网络-主机选择强迫 ifconfig 把
地址当作网络数字或主机地址,
分别地。
如果 ifconfig 仅用接口名字被调用,它显示那个接口的配置。当没有任何参数被
调用时,它显示你到目前为止设
置了的所有的接口;一个选择-a 迫使它也显示出不活跃的接口。以太网接口 eth0
的样品符咒可以看起来像这样:
MTU 和米制的域显示为那个接口的当前的 MTU 和米制的价值。米制的价值传
统地被一些操作系统用于计算一条线
路的费用。还不使用这个价值,但是为相容性定义它。
RX 和 TX 线显示出多少个文件包被收到了或免费地发送错误,多少错误发生了,
多少个文件包被掉落,可能因为低记忆,
以及多少由于溢出而被丢失。当文件包到来的速度快于核心能满足的最后中断,
接收装置溢出通常发生。 ifconfig 打印
的标志值,差不多对应于它的命令行选择的名字;他们将被解释在下面。
下列是 ifconfig 与在方括号中被给出的相应的标志名识别的参数的一张表。简
单地打开一个特征的选择也允许再次
被关掉,通过前面选择名字的一个破折号(--)。
上
这标记一个接口“上”,即,可接近到 IP 层。当一个地址在命令行上被给出时,这
选择被暗示。它也可以被用来再
次使用一个接口,该接口暂时被取下使用下选择。(这选择对应于标志 UP RUN
NING。)
下
这标记一个接口“下”,即,进不去到 IP 层。这有效地通过接口停用任何 IP 通路。
注意,这不删除自动地使用这
个接口的所有的路由入口。如果你永久地取下接口,如果可能的话,你应该删除
这些路由入口并且提供可选择的路由。
netmask 面具
这分配一个子网面具被接口使用。它可以既作为由 0x 领先了的一个 32 位的十六
进制的数字被给出,也可以作为十进制
的数字的 一个有点的空铅。它仅包含两台主机。这个选择需要被设置,例如, SLIP
或 PLIP 接口。
piontopoint
这选择被用于仅包含两台主机的点对点的 IP 连接的地址。这选择需要被设置,
例如, SLIP 或 PLIP 接口。
(如果一个点对点的地址被设置了, ifconfig 显示 POINTO-POINT 标志。)
广播地址
广播地址通常被设置主机部分的所有的位从网络数字完成。一些 IP 实现使用一
个不同的计划;这个选择适应这些
奇怪的环境。(如果一个广播地址被设置了, ifconfig 显示 BROADCAST 标
志。)
米制的数字
这个选择可以被用来把米制的价值分到为接口被创造了的路由表格入口。这个米
制被路由信息协议使用(RIP),为
网络建造路由表格。( 8 )被 ifconfig 使用的米制的缺省是一个零值。如果你不运
行一个 RIP 后台程序,你根本不需要这
个选择;如果你这样做,你将不需要改变米制的价值。
mtu 字节
这设置最大的传播单位,它是八位字节的最大数字,接口能在一宗交易中处理。
对于以太网,MTU 缺省为 1500;对于
SLIP 接口,这是 296 。
arp
这是对广播网络的一个特定的选择,例如以太网或文件包收音机。它启用 ARP
的使用,地址解析协议,检测被纳入
网络的主机的物理地址。对于广播网络,由缺省开始。
- arp
在这个接口上停用 ARP 的使用。
promisc
把接口放在混杂的模式中。在一个广播网络上,这让接口收到所有的文件包,不
考虑它们是否为另外的主人被预定。
这允许使用文件包过滤器等的一个网络通路的分析,也被称为以太网窥探。通常,
这是努力获得不容易得到的网络问题
的一项好技术。在另一方面,这允许攻击者为口令掠过你的网络的通路,并且做
另外的不干净的事情。对这类攻击的一
种保护,只是不让任何人插入他们的计算机进入你的以太网。另外的选择是,使
用安全的认证协议,例如 Kerberos ,
或 SRA 登录全套( 9 )(这个选择对应于标志 PROMISC )
- promisc
关掉混杂的模式。
allmulti
多点传送地址是,到不必在同样的子网上的一组主机的某种广播。多点传送地址
还没被核心支持。(这选择对应
于标志 ALLMULTI 。)
- allmulti
关掉多点传送地址。
网络管理员指南 -5.设置 TCP/IP 网络 -8>用 netstat 检查 -1)显示路由表格
本文出自: 作者: Andrew Anderson
下次,我将为检查你的网络配置和活动转到一个有用的工具。它被称为 netstat 并
且事实上是几种工
具混合体的一个集合。我们将在下列节讨论它的每个功能。
--------------------------------------------------------------------------------
显示路由表格
当用-r 标志调用 netstat 时,它用我们与线路一直在做这个的上面的方法显示核心
路由表格。在
vstout 上,它产生:
# netstat -nr
Kernel routing table
Destination Gateway Genmask Flags Metric Ref Use
* UH 1 0
* U 1 0
UGN 1 0
- n 选择使 netstat 打印地址作为有点的空铅 IP 地址,而非符号的主机和联网名
字。当你想要在网络
上避免地址查找时,这是特别有用的(例如,到一个 DNS 或 NIS 服务者)。
第二行 netstat 的产量显示出路由入口指向的网关。如果没有网关被使用,一个
星号被打印。栏三显
示线路的“概论”。当给一个给出的 IP 地址发现一条合适的线路时,核心通过所有
的路由表格入口,在把它比
作线路的目标之前,取走 bitwise AND 地址和 genmask 。
第四列显示描述线路的各种各样的标志:
G
线路使用一道网关
U
被使用的接口在上面。
H
仅一个单个的主机能通过线路被到达。例如,这是为 loopback 入口 的
情形 。
D
如果表格入口被一个 ICMP 产生了,这被设置重定向消息(见节 )。
M
如果表格入口被一个 ICMP 修改,这被设置重定向消息。
Ref 行 netstat 的产量显示出参考这条线路的数字,即,多少其它的发送(例如,通
过网关)依靠这条线
路的存在。最后两列显示路由入口被使用了次数,以及数据包被传递给发送的接
口。
网络管理员指南 -5.设置 TCP/IP 网络 -8>用 netstat 检查 -2)显示接口统计
本文出自: 作者: Andrew Anderson
当调用了-i 标志,为当前设置的网络接口的 netstat 将显示统计。如果,另外,-a 选
择被给出,它将打
印在核心中现有所有接口,不仅是当前被设置了的那些。在 vstaout 上,从 netstat
的产量将看起来像这样:
$ netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DR
P TX-
lo 0 0 3185 0 0 0 3185 0 0
eth0 1500 0 972633 17 20 120 628711 217 0
MTU 和 MET 域为那个接口显示当前的 MTU 和米制的价值。 RX 和 TX 列
显示出多少文件包被收到了或播
免费地被发送错误( RX-OK/TX-OK ),损坏( RX-ERR/TX-ERR ),多少文件包被掉
落( RX-DRP/TX-DRP ),以及多
少文件包由于溢出被丢失(RX-OVR/TX-OVR)。
最后列显示出为这个接口被设置了的标志。这些是长标志名字的一个特性版本,
当你用 ifconfig 显示
接口配置时,被打印。
B
一个广播地址被设置了。
L
这个接口是一台 loopback 设备
M
所有的文件包被收到(混杂的模式)。
拖车被避免。
O
ARP 为这个接口被关掉。
P
这是一个点对点的连接。
R
接口正在运行。
U
接口在上面。
网络管理员指南 -5.设置 TCP/IP 网络 -8>用 netstat 检查 -3)显示连接
本文出自: 作者: Andrew Anderson
Netstat 支持一套选择,去显示活跃或被动的插座。选择- t ,- u ,- w ,和- x 显
示活跃的 TCP ,
UDP ,RAW,或 UNIX 插座连接。如果你另外提供-a 标志,插座正在等的一个连接
(即,听)也被显示。这将给
你当前在你的系统上正在运行的所有的服务器的一张表。
调用 netstat 在 vlager 上的 -ta 生产:
$ netstat -ta
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (State)
tcp 0 0 *:domain *:* LISTEN
tcp 0 0 *:time *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 vlager:smtp vstout:1040 ESTABLISHED
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 localhost:1046 vbardolino:telnet ESTABLISHED
tcp 0 0 *:chargen *:* LISTEN
tcp 0 0 *:daytime *:* LISTEN
tcp 0 0 *:discard *:* LISTEN
tcp 0 0 *:echo *:* LISTEN
tcp 0 0 *:shell *:* LISTEN
tcp 0 0 *:login *:* LISTEN
这显示大多数服务器简单地等一个到来的连接。然而,第四行从 vstout 显示出
一个到来的 SMTP 连接,
并且第六行告诉你有一个出去的远程登录连接到 vbardolino 。
使用它自己的-a 标志将显示来自所有家庭的所有的插座。
网络管理员指南 -5.设置 TCP/IP 网络 -9>检查 ARP 表格
本文出自: 作者: Andrew Anderson
在一些情况中,看或甚至改变核心的 ARP 表格的内容,是有用的,例如,当你
怀疑一张
副本因特网地址是为一些断断续续的网络问题的原因的时候。 arp 工具象这些
一样用于这些
事情。它的命令行选择是
所有的主机名参数可以是符号的主机名字,或是在有点的空铅标志中的 IP 地址。
第一个符咒显示为 IP 地址或指定的主机的 ARP 入口,或所有主机知道是否主机
名被给出。
例如,在 vlager 上调用 arp 可以生成
它显示 vlager、vstout 和 vale 的以太网地址 。
使用-t 选择,你能限制显示指定到硬件的类型。这可能是 rther, ax25 ,或
pronet ,代
表的 10Mbps 以太网, ,并且 表示环型设备,分别地。
- s 选择永久地被用来把主机名的以太网地址加到 ARP 表格。 hwaddr 参数指
定硬件地址,
它由被期望的缺省是一个以太网地址,指定作为六个十六进制的字节,由冒号分
开。你可能也将
为其他硬件类型设置硬件地址,使用- t 选择。
可能要求你手动地把一个 IP 地址加到 ARP 表格的一个问题是,当为了一些原
因 ARP 询问为
远程主机失败的时候,例如,当它的 ARP 驱动程序是错误的,或在网络上有另
一个主机它错误地
认为它自己是那个主机的 IP 地址。在 ARP 表格中的难配线 IP 地址也是一个方
法(很激烈),它在你
的以太网上阻止你自己主机作为另外某人的姿势。
使用-d 开关调用 arp 删除联系到给出的主机的所有 ARP 入口。这可以被用来强
迫接口重新尝试
在令人怀疑的 IP 地址中获得以太网地址。当一个错误配置的系统广播了错误的
ARP 信息时,这是有
用的(当然,在这之前你必须重新设置打破的主机)。
- s 选择可以也被用来实现代理 ARP 。这是一种特殊的技术,在那儿一台主机,
即网关,作为到
另外的主机的一道网关的行为命名为 fnord ,假装那两个地址参考一样的主机,也
就是门。它这样做,
为指向它自己的以太网接口的 fnord 出版一个 ARP 入口。当一台主机发送一
个 ARP 需求给 fnord 时,
门将返还包含它自己的以太网地址的一个答复。然后,查询的主机将发送所有的
数据包到门,它充分
负责地把他们提交给 fnord 。
这些曲解可能是必要的,例如,当你想要从有一个打破的不能理解路线的 TCP 执
行的一台 DOS 机器
中存取 fnord 时。当你使用代理 ARP 时,它将在 DOS 机器看来好像 fnord
在本地的子网上,因此它
不必知道怎么通过一道网关发送。
代理 ARP 的另外一个很有用的应用程序是,当你的主机之一暂时充当一道网关
到一些另外的主机
时,例如通过一个拨号的连接。在一个先前的例子中,我们已经遇见了仅仅有时
通过一个 PLIP 连接被连
结到 vlager 的膝上计算机 vlite 。当然,只要你想要提供代理 ARP 的主机地址
在作为你的网关的相同
的 IP 子网上,这就工作。例如, vstout 能在酿酒厂子网上为任何主机代理 ARP
( ),但是
不为在酿酒厂子网上的一台主机工作( )。
为 fnord 提供代理 ARP 的合适的符咒被给在下面;当然,被给出的以太网地址必
须是那个门。
代理 ARP 入口可以通过调用再被移开:
网络管理员指南 -6.名字服务和解决配置 -1>决定器集合 -1) 文件
本文出自: 作者: Andrew Anderson
名字服务和解决配置
如在章节-中讨论,TCP/IP 网络可能依靠不同的方法来转化名字到地址。最简单
的方法,不进行通路上的
任何修改,名字空间被分离为区域是一个保存在/etc/hosts 中的逐级表。这只对小
的 LANs 有用,它由一个
单独的管理者运行。否则没有 IP 与外界交通。主机文件的格式已经在章节-中介
绍。
替代的,你可能使用 BIND—Berkeley 国际域名服务,来决定主机名字到 IP 地址。
配置 BIND 可能是一个实际
的杂务,但是你必须做。网络布局上的改变尽早做。象在许多其他 ish 系统上一
样,在名字服务器上通过称
为 named 的一个程序来提供。在开始,他装载一组管理文件到它的缓冲,并等
待来自远程或者本地用户处理
器的询问。设置 BIND 有不同的方法,不是都要求你的在各自主机上运行一个名
字服务器。
本章只能给你一个粗略的如何操作一个名字服务器的概况。如果你计划在一个多
于只是一个小 LAN 和一个
Internet 拨号的环境使用 BIND,你需要找到一本 BIND 的好书,例如 Cricket Liu
的``DNS and BIND''。对于
当前的信息,你可能还想要检查包含在 BIND 来源的版本注解。还有一个 DNS
问题的新闻组称为
。
--------------------------------------------------------------------------------
决定器集合
当讨论到“决定器”,我们不是指任何特殊的应用,而是决定器字库,一个功能的
集合,它可以在标准 C 字
库中找到。中心路径是 gethostbyname(2) 和 gethostbyaddr(2),它们寻找所有属
于一个主机的 IP 地址,
反之亦然。他们可能被配置来简单在主机上查找。询问一些名字服务器,或者使
用 NIS 的主机数据(网络信
息服务)。其它应用,象 smail,可能包含不同的为其他这些的驱动,需要特殊
关注。
--------------------------------------------------------------------------------
文件
控制你的决定器的中心文件是 。他保存在/etc 并告诉决定器使用哪个服
务器,以及它们的顺序。
在 上的选项必须发生在分开的行。区域可以用空格分开(spaces 或
tabs)。一个(#)介绍一个注
解延伸到下面新行。
下面的选择可选:
order
决定器尝试的顺序。有效的选择是:
· bind 询问名字服务器
· hosts 在/etc/hosts 中寻找
· nis NIS 查询
任何或者它们的全部可以被指定,他们在行中的顺序决定尝试的服务器。
multi
开或关作为选择。这决定如果一个在/etc/hosts 中的主机被允许有几个 IP 地址,
它通常被指定为
``multi-homed''。这个标志对于 DNS 或者 NIS 询问没有影响。
nospoof
如前面章节介绍的,DNS 允许你使用 in- domain 寻找属于一个 IP 地址
的主机名。由名字服务器进行
的尝试支持一个称为``spoofing''的假名。要防范它,如果原始 IP 地址实际同获得
的主机名字合作,决定器可
以配置到来检查。如果不是,名字被拒绝并返回一个错误。这个行为在设定 nospo
of 打开时候是被打开。
Alert
这个选择作为争论开或关,如果开,任何欺骗尝试(看上面)将导致决定器记录
一个信息到 syslog 工具。
Trim
这个选择使用一个域名作为一个争论。它将在查找之前被从主机名中移动。这对
于主机进入是有用的,在那里
你可能只是想要指定主机名而不需要本地域,因此允许在/etc/hosts 中的查找成功。
整理选择积累,使它可能
考虑你的主机被本地话化到几个域。
Vlager 的一个样本如下:
# /etc/
# We have named running, but no NIS (yet)
order bind hosts
# Allow multiple addrs
multi on
# Guard against spoof attempts
nospoof on
# Trim local domain (not really necessary).
trim .
网络管理员指南 -6.名字服务和解决配置 -1>决定器集合 -2)决定器环境变量
本文出自: 作者: Andrew Anderson
从 的设置可能被使用一组环境变量来覆盖。它们是:
RESOLV HOST CONF
它指定一个文件被阅读代替/etc/。
RESOLV SERV ORDER
代替 .中给出的顺序选择。服务器作为主机、bind 和 nis 给出,由一个空
格、逗号、句号或者分号分割。
RESOLV SPOOF CHECK
决定使用 spoofing 的量度。关闭后完全失效。值警告和关闭警告启动 spoof 检查,
但是打开记录和关闭。一个*值
打开 spoof 检查,但是留下记录工具指定在 .中。]
RESOLV MULTI
一个开关值用来覆盖来自 t .的多种选择。
RESOLV OVERRIDE TRIM DOMAINS
这个环境指定一个整理域列表,它被添加到 给出的内容中。
网络管理员指南 -6.名字服务和解决配置 -1>决定器集合 -3)
本文出自: 作者: Andrew Anderson
当设置 resolver 库去为主机查找使用 BIND 名字服务时,你也必须告诉它哪个名
字服务器使用。
为这有一个分开的文件,叫的 。如果这个文件不存在或是空的, resolver
假设名字服
务器在你的本地的主机上。
如果你在你的本地的主机上运行一个名字服务器,你必须将它独立地放在上面,
就象在下列节中被
解释的一样。如果你在一个本地的网络上并且有机会使用一个存在的名字服务器,
这是首选的。
在 中最重要的选择是名字服务器,它给出一个名字服务器的 IP 地址
去使用。如果你通
过若干次给出的名字服务器选择来指定若干名字服务器,他们在给出的顺序中被
尝试。因此你首先放下
最可靠的服务器。当前,有三个名字服务器被支持。
如果没有名字服务器选择被给出, resolver 试图在本地的主机上与名字服务器
联接。
另外的两个选择,域和搜索处理缺省域,如果 BIND 不能用第一个询问来解决它,
这些域被附加到主机
名之上。搜索选择指定被尝试的域名的一张表。列表项目被空格或制表符分开。
如果没有搜索选择被给出,一张缺省搜索表通过自己使用域名,从本地的域名被
构造,附加所有的父
母域到根。本地的域名可以通过使用领域陈述被给出;如果没有被给出, resolver
通过
getdomainname(2) 系统呼叫获得它。
如果这个声音令你糊涂,为虚拟的酿酒厂考虑这个样品 文件:
# /etc/
# Our domain
domain
#
# We use vlager as central nameserver:
nameserver
当解决名字谷时, resolver 将查一下谷,并且失败, ,和 vale
.com 。
网络管理员指南 -6.名字服务和解决配置 -2>命名运行 -1) 文件
本文出自: 作者: Andrew Anderson
命名运行
在大多数机器上提供域名服务的程序通常被命名了(读为 name-dee )。这原来是
被开发了的、为 BSD 提供
名字服务到顾客的一个服务器程序,并且可能到其它的名字服务器。当前在大多
数安装上被使用了的版本
似乎是 。新版本, ,目前被外部测试,并且应该不久就
可得到。
这节要求理解一些域名系统工作的方法。如果下列讨论对你来讲都不明白,你可
能要再读 gif 这一章,它对
于 DNS 的基础知识有一些更多的信息。
命名通常在系统引导时间时被启动,并且一直运行到机器再次停止。它从一个叫
/etc/ 的配置文
件中获得它的信息,并且包含数据映射的各种各样的文件印射域名到地址等等。
后者被称为地区文件。这
些文件的格式和语义将在下一节被解释。
运行命名,简单地进入
# /usr/sbin/named
在提示符。命名的愿望来,读 文件和任何地区在那里被指定了的文件。
它在 ASCII 中写它的进
程身份到 /var/run/ ,从主要的服务器下载任何地区文件,如果必要,并且
为 DNS 询问的端口 53
上开始听。
--------------------------------------------------------------------------------
文件
文件通常很小并且包含一些其他的小东西,但是到掌握文件的指示
器包含地区文件信息,以及
到其他名字服务者的指示器。在引导文件中的注释以一个分号开始并且扩大到下
一个新行。在我们在更多的
详细讨论 的格式以前,我们将看一下在图中被给的 vlager 样品文
件。
Figure: The vlager.
;
; /etc/
;
directory /var/named
;
; domain file
;---------------------------------------------------
cache .
primary
primary
primary
缓存和在这个例子被显示出的主要的命令装载信息进入命名。这个信息来自第二
个参数中被指定了的主人文件。
他们包含 DNS 资源记录的文本表示,我们将在下面看到。
在这个例子中,我们为三个域设置了作为主要名字服务器的命名,在文件末尾由
主要的语句显示了。这些行的第
一行,例如,指示命名为 充当一个主要的服务者,从文件 中
找到地区数据。目录关键词告
诉它所有的地区文件位于 /var/named 中 。
缓存入口是很特殊的,并且应该出现在所有运行一个名字服务器的机器上。它的
功能有两个:它指示命名启用它
的缓存,并且从指定的缓存文件中装载根命名服务器提示(在我们的例子中的 na
)。我们将在下面回到名
字服务器提示。
这有你能在 中使用的最重要的选择的一张表:
目录
这个指定地区文件居住的一个目录。文件的名字可以相对这个目录被给出。若干
目录可以由再三地使用目录被指定。
根据 Linux 文件系统标准,这应该是 /var/named 。
主要
这个作为一个参数得到一个域名和一个文件名字,声明本地服务器对于命名的域
有权威。作为一个主要的服务器,
从给出的主人文件装载地区信息。通常,这里总是在每个引导文件中至少有一个
主要的入口,也就是为网络
的倒转映射,它是本地的 loopback 网络。
次要的
这个语句作为一个参数的域名,一张地址表,和一个文件名。它声明本地服务器
为指定领域的一个次要的主人服
务器。一个次要的服务器也在域上保持权威的数据,但是它不从文件中收集它,
但是试图从主要的服务器下载它。
至少一个主要服务器的 IP 地址必须这样被给在命名的地址表上。本地的服务器
将依次联系他们每一个直到它成功
地转移地区数据库,然后它被存储在作为 第三个参数被给出的备份文件中。如果
主要的服务器没有反应,地区数
据会从从备份文件中重新得到。然后命名将试图在常规的间隔中更新地区数据。
这解释在下面,它与 SOA 资源
记录类型相关联。
缓存
这个作为参数得到域和一个文件名。这个文件包含根服务器提示,那是指向根名
字服务器的一张记录表。仅仅 NS
和一个记录将被认出。域参数通常是根域名“.”。
这个信息是绝对关键命名:如果缓存语句不在引导文件中发生,命名根本将不开
发本地的缓存。这将严重地退化执
行和增加网络负担,如果查询的下一个服务器不在本地的网上。而且,命名将不
能到达任何根命名服务器,这样它
除了那些权威则不会解决任何地址。这条规则的一个例外是当使用运送服务器时
( cf forwarders 选择在下面)。
forwarders
这个语句作为一个参数得到一张地址表。这张表上的 IP 地址指定一张可查询的
命名服务器表,如果它不能从它的本
地缓存解决询问。他们有序的经过实验,直到他们中的一个对查询做出反应。
奴隶
这个陈述使名字服务器成为一个奴隶服务器。就是说,它决不会自己执行递归的
询问,只是把他们提交给
forwarders 语句被指定了的服务器。
有两个选择我们将不在这里描述,是 分类表 和领域。另外,有两条指令可以在地
区数据库文件中被使用。这些是
$INCLUDE 和 $ORIGIN。因为他们很少被需求,我们也将不在这里描述他们。
网络管理员指南 -6.名字服务和解决配置 -2>命名运行 -2)DNS 数据库文件
本文出自: 作者: Andrew Anderson
DNS 数据库文件
象 一样主文件由 named 包含,经常有一个与他们合作的域,称为 origin。
这是同缓冲
一起指定的域名和主命令。在一个主文件中,你被允许指定域和与这个域相关的
主机名。一个在
配置文件中给出的名字如果以一个单一的点结尾,被认为是绝对的。否则被认为
与来源有关。所
有来源本身指定使用``@''。
包含在一个主文件中的所有数据被分离为 resource records(来源记录),或者简
短的 RRs。它们
组成通过 DNS 的最小信息单位。每一个来源记录有一个类型。例如,一个记录
定位一个主机名到一
个 IP 地址,并且一个 CNAME 记录与一个主机的 化名合作记录它的官方主机
名。作为一个例子查看
页上的表。它为虚拟混合显示 主文件。在主文件中的来源记录代表
分享一个共同的格
式,它是:
[domain] [ttl] [class] type rdata
区域 被空格或者 tab 分割。如果一个打开的支撑发生在第一个新闻线之前,一
个进入可能继续通过
几个行。并且最后区域跟随着一个关闭的支撑/任何在一个分号和一个新闻线中
的内容被忽略。
域名
这是进入应用的域名。如果没有给定域名,RR 就假定应用到以前的 RR 域中。
Ttl
为了强制分解器在一个特定时间后放弃信息。每一个 RR 联合一个“生命时间”或
者简短的 ttl。Ttl
区域以秒钟指定时间。在它被从服务器恢复的时候信息合格。这是一个十进制数
字含有至多 8 位。如
果没有 ttl 值给出,它默认 SOA 记录之前的最小区域值。
Class(分类)
这是一个地址分类,象为 IP 地址的 IN,或者在 Hesiod 分类中的目标 HS。对于
TCP/IP 网络,你需要制作
这个 IN。如果没有给出分类区域,先前的 RR 分类被假定。
Type(类型)
这描述的是 RR 的类型。最常见的类型是 A, SOA, PTR, 和 NS。下面的部分
描述 RR 的 var- ious 类型。
Rdata
这包含与 RR 合作的数据。这个区域的格式依靠 RR 的类型。下面,将分别描述
每一个 RR。
下面是一个未完成的 RR 列表,用在 DNS 主文件。这有一些更多的东西,我们
将会解释。他们是实验性的
并且通常很少使用 SOA。
这描述一个专家区域(SOA 意思是“开始权威”)。它代表跟随 SOA RR 的记录
包含为域准备的权威信息。
每一个主文件由一个主描述包含必须为这个区域包含的 SOA 记录。来源数据包
含下面的区域。
Origin(原始)
这是为这个域准备的主名字的真实主机名字。它通常给出一个完整的名字。
Contact(联络)
这是负责维护域的人员的 email 地址。含有`@'字符被一个点代替。例如,如果
在 Virtual Brewery 的负
责的人员在吵架,于是区域将包含 。
serial
这是区域文件的版本号,表示为一个单一的十进制数字。当数据被更改到区域文
件,这个数字必须被增
加。序列数字被服务器二级名用来分辨当区域信息更改的时候。要设置到数据,
二级服务器要求主服务
器的 SOA 记录有特定间隔。并比较序列数字袄缓冲的 SOA 记录。如果数字改变,
二级服务从主服务器转送
整个区域的数据。
Refresh(刷新)
这指定以秒钟间隔的 sec- ondary 服务器需要在检查主服务器的 SOA 记录之间
等待的间隔。同时,这是一
个十进制的数字至多 8 位。通常,网络布局不会经常更改,因此这个数字必须指
定一个为较大网络准备的
大约一天的间隔。甚至是为更小的网络。
Retry(重试)
这个数字决定在一个 sec- ondary 服务器如果一个要求或者一个区域刷新失败的
时候上必须重试连接主服
务器的间隔。它必须是很低,否则一个暂时的服务器失败或者网络问题可能导致
二级服务器浪费网络资源。
一小时,或者一个半小时,可能是好的选择。
Expire(到期)
这按秒钟指定如果还没有连接到主服务器的时候,在服务器最终需要放弃所有区
域数据的时间。它必须通
常非常大。Craig Hunt ([ GETST "hunt-tcpip" ])建议为 42 天。
Minimum(最小值)
--------------------------------------------------------------------------------
这是来源记录的默认 ttl 值,它不会清楚的指定为一个。这要求其它名字服务在
一个特定时间之后放弃 RR。
但是它不会时间做任何事。在它之后一个二级服务器尝试连接区域信息最小值必
须是一个大值。特别是对
于 LAN,在那里,网络布局总是不变的一个大约一周或者一个月的值通常是个
好的选择。为了防止单一的 RR
可能更多的改变,你仍然指定给它们不同的 ttl。
A 这余割一个主机名字合作一个 IP 地址。来源数据区域包含点分割的地址。对
于每一个主机,必须只有一个
记录。在一个记录中使用的主机名被看成官方或者是真实的主机名字。所有的其
它的主机名字是化名并且必
须使用一个 CNAME 记录被定位到真实名字。
NS
这指定到一个子区域的主服务器。对于为什么一个人必须有 NS 记录的解释,查
看部分 3。6。记录数据区域包
含名字服务器的主机名字。要分解主机名字,需要另外一个记录,称为胶水记录,
它给名字服务器的 IP 地址。
CNAME
这为一个主机连同他的真实主机名字合作一个化名。真实主机名字是一个主文件
提供的,化名被简单的有一
个 CNAME 记录连接到那个名字,但是没有他们自己的任何记录。
PTR
这个记录的类型用来在 in- 域中与主机名字合作名字这被用来转换 IP
地址的 map- ping 到主机名字。
给出的主机名字必须是真实的主机名字。
MX
这个 RR 宣布为一个域的邮件交换器,有邮件交换器的 rea- sons 在章节 14 的 14
. 部分被讨论。一个 MX 记录
的语法是:
[domain] [ttl] [class] MX preference host
为域准备的邮件交换器的主机名字。每个邮件交换器有一个内部的与它合作的参
数,一个需要递送邮件到域
邮件传输代理将尝试为这个域含有一个 MX 记录的所有主机直到成功。有最低
值的参数被首先尝试,之后按照
顺序增加参数值。
HINFO
这是在系统硬件和软件提供信息的记录。它的语法是:
[domain] [ttl] [class] HINFO hardware software
软件区域辨认由这个主机使用的硬件。有特定的常规来指定它。一个真实名字的
列表在“代表数字”
(RFC 1340).中被给出,如果区域包含任何的空白,它必须被双引号括起来,软
件区域明明有系统使用的操作
系统。同样,需要从“代表数字”RFC 中选择个亿 有效的名字。
网络管理员指南 -6.名字服务和解决配置 -2>命名运行 -3)记录主文件
本文出自: 作者: Andrew Anderson
图 ,和在酿酒厂为一个名字服务器给出的样品文件,位于 vlager 上。由于所讨
论的网络的性质(单个的 LAN ),
例子是相当直接的。如果你的要求是更加复杂,并且你不能得到命名,由可瑞凯
特.刘和保罗·阿尔比茨([])得到
“DNS 和 BIND”。
由图样中显示的 缓存文件为一个根名字服务器提示记录。一个典型的
缓存文件通常描述一打名字服务器,
等等。你能为根域获得名字服务器的当前列表,使用这章结尾中描述的 nslookup
工具。
Figure: The file.
;
; /var/named/ Cache the brewery.
; We're not on the Internet, so we don't need
; any root servers. To activate these
; records, remove the semicolons.
;
; . 99999999 IN NS
; 99999999 IN A
; . 99999999 IN NS
; 99999999 IN A
Figure: The file.
;
; /var/named/ Local hosts at the brewery
; Origin is
;
@ IN SOA . (
.
16 ; serial
86400 ; refresh: once per day
3600 ; retry: one hour
3600000 ; expire: 42 days
604800 ; minimum: 1 week
)
IN NS .
;
; local mail is distributed on vlager
IN MX 10 vlager
;
; loopback address
localhost. IN A
; brewery Ethernet
vlager IN A
vlager-if1 IN CNAME vlager
; vlager is also news server
news IN CNAME vlager
vstout IN A
vale IN A
; winery Ethernet
vlager-if2 IN A
vbardolino IN A
vchianti IN A
vbeaujolais IN A
Figure: The file.
;
; /var/named/ Reverse mapping of
; Origin is .
;
@ IN SOA . (
.
1 ; serial
360000 ; refresh: 100 hrs
3600 ; retry: one hour
3600000 ; expire: 42 days
360000 ; minimum: 100 hrs
)
IN NS .
1 IN PTR localhost.
Figure: The file
;
; /var/named/ Reverse mapping of our IP addresses
; Origin is .
;
@ IN SOA . (
.
16 ; serial
86400 ; refresh: once per day
3600 ; retry: one hour
3600000 ; expire: 42 days
604800 ; minimum: 1 week
)
IN NS .
; brewery
IN PTR .
IN PTR .
IN PTR .
; winery
IN PTR .
IN PTR .
IN PTR .
IN PTR .
网络管理员指南 -6.名字服务和解决配置 -2>命名运行 -4)校验名字服务器安装
本文出自: 作者: Andrew Anderson
校验名字服务器安装
为检查你的名字服务器安装的操作,有一个好工具。它被称为 nslookup ,并且
可以被交互地使用和从
命令行中被使用。在后者方式中,你简单地调用它作为...并且它将查询服务器为
主机名在
中指定的名字。(如果这个文件命名超过一个服务器, nslookup 将在随机选择
一个)。
nslookup hostname
交互的模式,然而,是更激动的。除查一下单个的主机以外,你可以为 DNS 记录
的任何类型查询,并且为
域转移全部地区信息。
当没有参数被调用时, nslookup 将显示它使用的名字服务器,并且进入交互的
模式。在`>'提示符,你可
以打出它应该查询的任何域名。由于默认,它要求 A 级记录,包含那些联系到域
名的 IP 地址。
你可以通过发出“set type=type ”改变这种类型,这个类型是在上节所描述的记录
命名的资源之一,
或任何。
例如,你可能与它有下列对话:
$ nslookup
Default Name Server:
Address:
>
Name Server:
Address:
Non-authoritative answer:
Name:
Address:
如果你试着查询没有 IP 地址联系的一个名字,但是其他的记录被发现在 DNS
数据库中, nslookup 将有
一个错误回来,信息显示“没有发现类型 A 记录”。然而,你能通过发出“set type"
命令使它成为除类型
A 以外的记录查询。例如,得到 的 SOA 记录,你将发出:
>
*** No address (A) records available for
Name Server:
Address:
> set type=SOA
>
Name Server:
Address:
Non-authoritative answer:
origin =
mail addr =
serial = 930408
refresh = 28800 (8 hours)
retry = 3600 (1 hour)
expire = 1209600 (14 days)
minimum ttl = 86400 (1 day)
Authoritative answers can be found from:
nameserver =
internet address =
处于类似的情况,你能为 MX 记录查询,等等。使用类型 ANY,可返回关联一
个给出名字的所有的资源记录。
> set type=MX
>
Non-authoritative answer:
preference = 10, mail exchanger =
internet address =
Authoritative answers can be found from:
nameserver =
internet address =
在调试旁边的 nslookup 的一个实际的应用程序是为 文件获得当前根
名字服务器的列表。你能
通过查询所有关联根领域 NS 类型做到这一点:
> set typ=NS
> .
Name Server:
Address:
Non-authoritative answer:
(root) nameserver =
(root) nameserver =
(root) nameserver =
(root) nameserver =
(root) nameserver =
(root) nameserver =
(root) nameserver =
Authoritative answers can be found from:
(root) nameserver =
(root) nameserver =
(root) nameserver =
(root) nameserver =
(root) nameserver =
(root) nameserver =
(root) nameserver =
internet address =
internet address =
internet address =
internet address =
internet address =
internet address =
internet address =
internet address =
internet address =
internet address =
internet address = .
网络管理员指南 -6.名字服务和解决配置 -2>命名运行 -5)其它有用的工具
本文出自: 作者: Andrew Anderson
有一些工具能作为一个 BIND 管理员帮助你做好你的任务。在这里,我将简短描
述他们中的两个。请参
考为怎么使用他们这些信息的工具的文档。
hostcvt 是帮助你做好初始化 BIND 配置的一个工具,通过改变你的 /etc/hosts
文件成为命名主要文件。
它既产生向前(A)和颠倒的映射( PTR )入口,并且照顾别名等等。当然,它不会为
你做整个的工作,因为你
可能仍然想要在 SOA 记录上调节超时价值,例如,或增加 MX 记录等等。它仍然
可以帮助你节省一些阿司匹
林。 hostcvt 是部分的 BIND 来源,但是能也在一些 FTP 服务器上作为一个独
立的文件包被发现。
在建立你的名字服务器以后,你可能想要测试你的配置。(据我所知)仅仅为这个
的理想工具是 dnswalk ,
通过你的 DNS 数据库的一个 基于 perl 的文件包,寻找一般的错误并且证实信息
是一致的。dnswalk 最近
在 上被释放了,并且应该在转存这个组的所有的 FTP 地点
上可得到(如果你不知道
你附近这样的地点, 应该是个安全的赌注)。
网络管理员指南 -7.并联线 IP -1>通常的要求
本文出自: 作者: Andrew Anderson
并联线 IP
并联线的协议, SLIP 和 PPP ,为穷人提供因特网连接。除了一个调制解调器和
一个装备了 FIFO
缓存的连续板,不需要硬件。使用它不比使用一个邮箱更复杂,并且越来越多的
私人组织给每个
可付得起钱的人提供拨号 IP。
有可得到的 SLIP 和 PPP 驱动程序。 SLIP 有相当一会儿的时间在那里,并且
工作相当可靠。
一个 PPP 驱动器最近被迈克尔·卡拉汉和艾尔·隆耶尔开发了。它将在下一章被
描述。
--------------------------------------------------------------------------------
通常的要求
使用 SLIP 或 PPP ,当然,你必须设置基本的一些联网特征,就象前一章描述的
那样。至少,你必
须建立 loopback 接口,并且供应名字决定。当与因特网联接时,你当然想要使
用 DNS 。最简单
的选择是把一些名字服务器的地址放进你的 文件;一旦 SLIP 连接被
激活,这个服务
器将被查询。这个名字附近的服务器到你拨号的点,更好。
然而,这个答案不是最佳的,因为所有的名字查找将仍然通过你的 SLIP/PPP 连接。
如果你担心这所
耗费的带宽,你也能建立一缓存命名服务器。它确实不提供一个领域,但是仅为
你的主机上产生的
所有 DNS 询问充当一个继电器。这个计划的优点是它积聚缓存,以便大多数询问
必须一次发送到连续
行上。为缓存服务器的一个 文件看起来像这样:
; caching-only server
directory /var/named
primary ; loopback net
cache . ; root servers
除了这个 文件,你也必须用根名字服务器的一张有效的表设置
e 文件。这被描
述在 Resolver Configuration 一章的结尾。
网络管理员指南 -7.并联线 IP -2>SLIP 操作
本文出自: 作者: Andrew Anderson
通过特殊用户的帐号,拨号的 IP 服务者经常提供 SLIP 服务。在进入这样的帐号
以后,你没有掉
落进普通的位置;相反一个程序或位置手迹被执行,它为连续的行启用服务器的 S
LIP 驱动程序
并且设置适当的网络接口。然后你必须在你的连接后做相同的事。
在一些操作系统上, SLIP 驱动是一个用户空间程序;在下面,它是核的一部分,
它使核运行地更
快。然而,这要求连续的行明确地被变换到 SLIP 模式。这借助于一个特殊的 tty
行纪律来完成,
SLIPDISC 。当 tty 在正常的行纪律时( DISC0 ),它将仅用用户进程交换数据,使
用正常读( 2 )
和写( 2 )呼叫,并且 SLIP 驱动程序是不能的写到 tty 或从 tty 读。在 SLIPDISC
中,作用被颠
倒:现在任何用户空间进程阻止写到 tty 或从 tty 读,同时,在连续端口上进来的
所有数据将直接
被传递给 SLIP 驱动程序。
SLIP 驱动程序自己理解在 SLIP 协议上的很多变化。除了平常的 SLIP ,它也
理解 CSLIP ,它在
外面的 IP 包上执行所谓的凡·贾科布森头压缩。这显著地为交互的会议改进产量。
另外,这里有为
每个协议的 6 小点版本。
变换一个连续的行到 SLIP 模式的一个简单的方法是使用 slattach 工具。假设
你在 /dev/cua3
上有调制解调器,并且成功地登录 SLIP 服务器。然后你将执行:
# slattach /dev/cua3 &
这将交换 cua3 的行纪律到 SLIPDISC ,并且把它纳入 SLIP 网络接口之一。
如果这是你的第一个
活跃的 SLIP 连接,行将被纳入 sl0 ;第二个将被纳入 sl1 ,等等。当前的核支持
直到 8 的同时的
SLIP 连接。
slattach 选择的默认封装是 CSLIP 。你可以使用-p 开关选择任何另外的模式。
使用正常的 SLIP
(没有压缩),你将使用
# slattach -p slip /dev/cua3 &
另外的模式是 cslip , slip6 , cslip6 (为 SLIP 的 6 小点版本),并且适应适应的 SLIP 。
后者让
它到核去发现远程结束使用哪个 SLIP 封装的类型。
注意到,你必须使用作为你的同伴所使用的一样的封装。例如,如果 cowslip 使
用 CSLIP ,你也必
须这样做。错配的症状将是,到远程主机的砰将不会回收到任何信息包。如果另
外的主机砰你,你也
可以看见这样的消息“不能在你的控制台上建造 ICMP 头”。避免这些困难的一
个方法是使用适应
的 SLIP 。
事实上, slattach 不仅允许你启用 SLIP ,而且也允许使用连续行的其它协议,就象
PPP 或 KISS 一样
(另外的协议由火腿收音机人使用了)。更多细节,请参考 slattach ( 8 )手册页。
在行上转弯到 SLIP 驱动程序以后,你必须设置网络接口。再一次,我们使用标
准的 ifconfig 这样
做并且发送命令。从 vlager 假定,我们在被称为 cowslip 的一个服务者上面拨号
了。然后你将执行
# ifconfig sl0 vlager pointopoint cowslip
# route add cowslip
# route add default gw cowslip
第一个命令作为到 cowslip 的一个点对点的连接设置接口,同时,第二个和第三
个命令把线路加到
cowslip 并且使用 cowslip 默认线路作为一道通路。
当取下 SLIP 连接时,你首先必须移走通过使用有 del 选择路线的 cowslip 上的
所有路线,取下接口,
并且发送 slattach 挂断信号。然后,你必须再使用你的终端程序挂断调制解调器:
# route del default
# route del cowslip
# ifconfig sl0 down
# kill -HUP 516
网络管理员指南 -7.并联线 IP -3>使用 dip -1)一个例子
本文出自: 作者: Andrew Anderson
使用 dip
现在,那是相当简单的。但是,你可能想要自动化上面的步骤,以便你仅必须调
用执行被显示在上面的所
有步骤中的一个简单的命令。这是 dip 的作用。这种写法的当前的版本是 。
它被很多人大量地修正了,
这样你再也不能说出 dip 程序了。发展的这些不同的张力希望在一个未来版本中
被融合。
dip 为能为你处理调制解调器的一种简单的脚本语言提供一个翻译,变换线到 SL
IP 模式,并且设置接口。
这是非常原始和限制的,但是对大多数情况来讲已足够。dip 的一个新版本有一
天将可以展示一种更万用
的语言。
能设置 SLIP 接口,dip 要求根特权。它现在很诱人,使 dipsetuid 到根,以便所有
的用户能不必给他们根存
取就在一些 SLIP 服务器上面拨号。这是很危险的,因为建立假接口和用 dip 默认
线路可以极大地破坏你网
络上的路线。更坏的是,这将给你的用户有力量和任何 SLIP 服务器联接,并且
对你的网络运行危险的攻
击。因此,如果你想要允许你的用户在一个 SLIP 连接上面开火,为每个预期的
SLIP 服务器写小包纸程
序,并且让这些包纸调用建立连接的特定手迹的 dip。然后,这些程序能安全地
成为 setuid 根。
--------------------------------------------------------------------------------
一个例子
# Sample dip script for dialing up cowslip
# Set local and remote name and address
get $local vlager
get $remote cowslip
port cua3 # choose a serial port
speed 38400 # set speed to max
modem HAYES # set modem type
reset # reset modem and tty
flush # flush out modem response
# Prepare for dialing.
send ATQ0V1E1X1¥r
wait OK 2
if $errlvl != 0 goto error
dial 0123456789
if $errlvl != 0 goto error
wait CONNECT 60
if $errlvl != 0 goto error
# Okay, we're connected now
sleep 3
send ¥r¥n¥r¥n
wait ogin: 10
if $errlvl != 0 goto error
send Cvlager¥r
wait ssword: 5
if $errlvl != 0 goto error
#better not leave your password in ascii (thanx noud)
password
wait running 30
if $errlvl != 0 goto error
#to set up your remote and local IP
get $remote remote
print remote = $remote
if $errlvl != 0 goto error
wait to 3
get $local remote
print local = $local
if $errlvl != 0 goto error
# We have logged in, and the remote side is firing up CSLIP.
print Connected to $remote with address $rmtip
default # Make this link our default route
mode CSLIP # We go to CSLIP mode, too
# fall through in case of error
error:
print CSLIP to $remote failed.
一个样品手迹产生于图形-gif。它能被用来连接 cowslip,通过调用有手迹名字的
蘸作为参数:
# dip
DIP: Dialup IP Protocol Driver version (12/13/93)
Written by Fred N. van Kempen, MicroWalt Corporation.
connected to with addr
#
在连接 cowslip 并且启用 CSLIP 以后,蘸将从终端分离并进入背景。然后你能开
始在 CSLIP 连接上使用
正常联网的服务。要终止连接,用-k 选择简单地调用蘸即可。这样发送给蘸进程
一个挂断信号,在
/etc/ 中使用进程标识符蘸记录:
在蘸的脚本语言中,有一个美元标志前缀的关键词表示可变的名字。蘸有一个变
量的预先规定的集合,它
将被列在下面。例如, $remote 和 $local ,包含本地主机名和在 SLIP 连接中被
包含了的远程主机。
在样品手迹中最初的两个陈述是得到命令,它是蘸设置一个变量的方法。这里,本
地主机和远程主机名被分
别地设置到 vlager 和 cowslip 上。
下面五个陈述建立终端线和调制解调器。重新设置发送一个重新放置字符串到调
制解调器;给 Hayes 兼容的
调制解调器,这是 ATZ 命令。下一个陈述冲洗调制解调器的反应,以便在下面
很少几根线上的登录聊天室
能正常地工作。这个聊天室直接向前:它简单地拨 41988,cowslip 的电话号码,
并且使用口令 hey-jude
登录帐号 Svlager。等待命令使蘸等待作为它的第一个参数被给出的字符串;作为
第二个参数被给的数字
使等待超时,如果没有如此该字符串被收到,在那许多秒以后超时。散布在登录
过程中的如果命令,在执
行命令时,它检查没有错误发生。
在登录以后执行的最后的命令是默认的,它使 SLIP 连接成为到所有主机的默认
线路,而且模式,它在线上
启用 SLIP 模式并且为你设置接口和路线表。
网络管理员指南 -7.并联线 IP -4>在服务模式中的运行
本文出自: 作者: Andrew Anderson
设置你的 SLIP 客户是一个艰难的部分。做相反的工作,指定配置你的主机作为
一个 SLIP 服务器要简单得多。
做这个工作的一个方式是在服务器模式中使用提示。可以通过作为 diplogin 来调
用它来达到。它的主要的
配置文件是/etc/diphosts,它联合这个主机分配的地址的注册名。相替代的,你还
可以使用 SLIPLOGIN,
它是一个 BSD 演变来的工具,它是一个更为灵活的配置方案使你在一个主机连
接和断开连接的时候执行 SHELL
命令。它目前在 BETA
两个程序都要求你通过 SLIP 帐户设置一个注册帐户。例如,假定你提供 SLIP
设备到
ARTHUR DENT 在 DNET。BETA。COM,你可能通过添加下面的行到你的 PASS
WD 文件来建立一个名字为 DENT 的帐户:
dent:*:501:60:Arthur Dent's SLIP account:/tmp:/usr/sbin/diplogin
之后你可能是用 PASSWD 工具设置 DNET 的密码。
现在当 DENT 注册,DIP 将作为一个服务器启动,要查找他是否确实允许使用 SL
IP,他将在/ETC/DIPHOSTS 中
查找用户名字。这个文件详细介绍了每一个 SLIP 用户的访问权和连接参数。一
个 DENT 的样本进入会是这样:
dent:::Arthur Dent:SLIP,296
第一个句号分割开的区域是拥护注册必须使用的。第二区域可能包含一个另外的
密码(参照下面)。第三区
域是呼叫主机的主机名或者是 IP 地址。后面是一个信息区域没有任何特殊的意
义。最后一个区域描述连接参数。
这是一个符号分割的列表指定协议(当前是 SLIP 或者是 CSLIP),后面是
MTU。
当 DENT 注册时候,DIPLOGIN 从 DIPHOSTS 文件摘出他上面的信息。并且如
果第二行非空,提示是一个“外部安全密码”。
用户输入的相对于密码的是 DIPHOST。如果他们不相符,注册尝试被拒绝。
否则 DIPLOGIN 通过翻转并联行到 CSLIP 或者是 SLIP 模式来运行,并设置接口
和路径。这个连接直到用户断开并且
MODEM 断开的时候在停止。DIPLOGIN 于是返回行到不同的行命令并退出。
DIPLOGIN 要求超级用户权利。如果你没有 DIP 运行 SETUID 根,你需要使 DIP
LOGIN 有一个 DIP 的分别的复件而不是
一个简单的连接。于是 DIPLOGIN 可以安全的被 SETUID,而不会影响 DIP 本
身的状态。
网络管理员指南 -8.点到点协议-1>解开 P's
本文出自: 作者: Andrew Anderson
就象 SLIP 一样,PPP 是一个在连续的连接上发送 datagrams 的协议,但是它改进
了前者的许多不足,
它使得连接的各方讨论如 IP 地址和启动时最大的 datagram 的大小等选择,并为
用户提供授权。对于
这些能力中的每一个,PPP 都有一个单独的协议。在下面,我们将简短的介绍这
些 PPP 建立的的基础。
这个讨论非常不完整,如果你你想要知道 PPP 以外的内容,建议你 阅读 RFC-154
8 中有关于它的详细内
容和伴随它的 RFCs。
PPP 的最底部上高水平数据连接控制协议,其缩写是 HDLC,它定义了单个 PPP
结构周围的边界,并提供
了一个 16-bit 的检查和。与更为原始的 SLIP 封装相反,一个 PPP 结构比 IP 更能
够从其它的协议中抓住包,
例如 Novell's IPX, 或者 Appletalk。PPP 通过添加一个协议领域到可以辨认结构
所携带的包裹类型的
基础 HDLC 结构之中来达到这一点。
LCP 是连接控制 协议,他用在 HDLC 的顶部来讨论适合于数据连接的选项,例
如最大接受单位(MRU),
它陈述的是连接的一方所能够接收到的最大的 datagram 尺寸。
在 PPP 连接的配置阶段的一个重要步骤是客户授权。尽管这不是强制的,它确
实是拨号连接中的一个必
须的步骤。通常情况,所谓的主机(服务器)要求客户通过提供它所知道的一些
秘密的钥匙来授权。
如果呼叫者没有提供正确的密码,连接会被中断。在使用 PPP 的时候,授权工
作可以使用两种方法,它
们是呼叫者可以要求服务器自己授权。这些授权程序各自之间都是独立的。有两
个适用于不同类型的
授权的协议,它们将会在下面提到。他们称为密码授权协议(Password Authenticati
on Protocol),
或者是 PAP,和挑战握手授权协议(Challenge Handshake Authentication
Protocol),或者是 CHAP。
每个通过时局连接发送的网络协议,如 IP,AppleTalk,等等,都使用一个相应的
网络控制协议(NCP)
被动态配置。例如,要通过连接发送 IP datagrams,两个 PPP 都必须首先讨论他
们各使用哪个 IP 地址。
这使用的控制协议是 IPCP,是 Internet 协议控制协议。
网络管理员指南 -8.点到点协议-2>打开 PPP,运行 PPPD
本文出自: 作者: Andrew Anderson
打开 PPP
打开,PPP 功能上被分成两部分,一个在核心中的低水平 HDLC 驱动和处理各
种控制协议的用户空间
pppd daemon。当前发布的 PPP 版本是 ,,包括核心 PPP 模组,PPPD
和一个用于拨叫
远程系统的称为聊天的程序。
PPP 核心驱动由 Michael Callahan 撰写。PPPD 源自一个免费为 Sun 和 386BSD
机器安装的 PPP。它是
由 Drew Perkins 和其它人撰写的,并由 Paul Mackerras 保存。连接端口是 Al Long
year。
正象 SLIP 一样,PPP 使用一个特殊的线规则安装。为了使用一些连续的线作为
一个 PPP 的连接,你首
先象往常一样通过你的 modem 建立一个连接,然后传换线到 PP 模式。在这个
模式中,所有的输入数
据都要经过 PPP 驱动,它会检查输入的 HDLC 结构的有效性(每一个 HDLC 格
式运载一个 16-bit 的检查和),
打开并分派它们。当前,可以处理 PPP datagrams,随意使用 Van-Jacobson 标题压
缩。当支持 IPX 的时候,
PPP 驱动也将被扩展到处理 IPX 包。
核心驱动由 pppd 辅助,PPP daemon 可以在通过连接发送,它执行所有的初始化
和实际的网络交通之前
必须的授权阶段。PPPD 的动作通过使用一系列的选择可能是调整好的。因为 PPP
非常复杂,不可能在一
个单独的章节中介绍它的所有的内容。因此这本书无法涵盖 PPPD 的所有方面,
而只是给你一个介绍。
要想得到更多的信息最好找到手册页或者在 PPPD 发行来源中的 READMEs。如
果在阅读了这些材料之后你
的问题仍然存在,你需要 newsgroup 寻求帮助,在那里你可
以找到大多数有关 PPPD
发展的人。
--------------------------------------------------------------------------------
运行 PPPD
当你想要通过一个 PPP 连接连接到 Internet,你需要设置基础的网络能力如 loopb
ack 设备和 resolver。二
者都在前面的章节介绍过。关于通过一个连续的连接使用 DNS 还有一些问题,
请在 SLIP 一章中查找有关它
的讨论。
作为一个有关如何使用 PPPD 建立一个 PPP 连接的介绍例子,我们仍然假设你是
一个 vlager。你已经拨号到
PPP 服务器,c3po,并登录到 PPP 帐户。c3po 已经启动它的 PPP 服务器。退出通
信程序之后,你已经熟悉使用
拨号,你执行下面的命令:
# pppd /dev/cua3 38400 crtscts defaultroute
这将翻转连续的线从 cua3 到 PPP 模式并建立一个 IP 连接到 c3po.串口上的传输
速度将会是 38400bps. Crtscts
选择轮到在端口上硬件的握手,它的速度必须完全在 9600-bps 以上。
启动后 PPPD 要做的第一件事就是使用 LCP 同远程终端讨论几个连接的特征。
通常情况下,连接在讨论上的
PPPD 选择的默认设置将会开始工作,因此,我们对此不进行深入介绍。我们在
下面的部分中将回到 LCP 的
更为详细的内容。
开始的时候,我们仍然假设 c3po 不需要从我们这里要求任何的授权,所以配置
阶段是完全成功的。
于是,PPPD 将使用 IPCP 同它的同级讨论 IP 参量,也就是 IP 控制协议。因为我
们在上面没有指定任何特定的
IP 地址到 PPPD,这将试着使用通过让 resolver 查找本地主机名而得到的地址。
这两种方法都将会通报自己
的地址给对方。
通常情况,默认状态没有任何问题。即使你的机器在 Ethernet 上,你仍然可以使
用同样的 IP 地址在 Ethernet
和 PPP 的界面上。然而,PPPD 也允许你使用一个不同的地址,甚至要求你使用
一些特定的地址。这些选项会在
下面的部分中谈到。
在通过了 IPCP 设置阶段之后,PPPD 将准备你的主机网络层来使用 PPP 连接。
它首先配置 PPP 网络界面为一个
点到点的连接,为第一个 PPP 活跃的连接使用 ppp0,为第二个使用 ppp1,依次
类推。下面,它将会设置一个路
径表格入口,它在连接另外一端指定主机。在上面显示的例子中,PPPD 将、设
置默认的网络路径到 c3po,因
为我们给它的是默认的选择。这导致所有的 datagrams 到所有的主机而不是在你
的本地网络被发送到 c3po.有
许多 PPPD 支持的不同的路径方案,我们将在下面的章节中详细介绍
网络管理员指南 -8.点到点协议-3>使用选项文件
本文出自: 作者: Andrew Anderson
在 PPPD 解析它的命令行内容之前,它检查几个文件的默认选项。这些文件可能
包含正确的命令行命令,
散播到任意的行中。命令由它的标志引出。
第一个选择的文件是/etc/ppp/options,它在 PPPD 启动的时候总要被检查。使用它
来设置一些全球化的
默认是个好主意,因为它允许你在做许多危及安全事情的时候仍然保留你的用户。
例如,要使 PPPD 从同
级那里得到一些种类的授权(PAP 或者 CHAP),你需要添加 auth 选项到你的文
件。这个选项无法没用户
更改,所以就有可能使用任何的没有你的授权数据的系统中建立一个 PPP 连接。
在读取/etc/ppp/options 之后的其它选项文件是在用户根路径下的.ppprc。它允许
每一个用户指定他自
己的默认选择。
网络管理员指南 -8.点到点协议-4>使用 CHAT 拨号
本文出自: 作者: Andrew Anderson
在上面例子中可能因为不方便而影响你的一件事情是你需要在启动 PPPD 之前
手工建立连接。与 dip 不同的是,
PPPD 没有它自己的用于拨叫远程系统和登录的手稿语言,而是依靠一些外部的
程序或者 shell 手稿来做这项工
作被执行的命令可以作为连接命令行的选项提供给 PPPD。PPPD 会将命令行标
准输入输出到连续线。为此的一
个有用的程序将期望由 Don Libes 撰写。这是基于 Tcl 之上的非常强大的语言,
并且正是为这类的应用而设计的。
PPPD 包还带有一个类似的程序称为 chat,它使你可以指定一个 UUCP 类型的聊
天手稿。基本上,一个聊天手稿包
含一个我们盼望从远程系统中得到的可以交换顺序的行和我们所发送的回复。我
们将会分别的呼叫期盼和发送
的行。这是一个聊天手稿中的典型的摘录:
ogin: b1ff ssword: s3kr3t
它告诉聊天等待远程系统发送注册提示,并返回注册名的 b1ff。我们只是等待注
册:所以注册提示以大写或者
小写字母开头,或者混用都没关系。下面的行仍然是一个期待的行,它使聊天等
待密码提示,并发送我们的密
码回应。
这基本上是与聊天手稿有关的所有内容。当然,一个完整的拨叫到一个 PPP 服
务器的手稿也需要包含正确的 modem
命令。假设你的 modem 可以辨认 Hayes 命令组,服务器电话号码是 318714。与
c3po 建立连接的的完整的聊天是:
$ chat -v '' ATZ OK ATDT318714 CONNECT '' ogin: ppp word: GaGariN
通过定义,第一个串必须是一个期待的串,但是因为 modem 在我们踢它之前不
会说话,我们通过指定一个空的串
来跳过第一个期待。我们继续并发送 ATZ,这是一个 Hayes-compatible modems
的重新设置命令,并等待它的应答
(好)。下一个串同聊天的电话号码一起发送拨号命令,并期待 CONNECT 信
息的回应。这仍然会跟随一个空的串,
因为我们现在不想发送任何东西,但是最好等待注册提示。聊天手稿剩余部分所
做的工作与上面描述的相同。
-v 选择使聊天记录所有的动作到系统日志 daemon 的 local2 设备。
在命令行中指定聊天手稿需要承担一定的风险,因为用户可以使用 ps 命令查看
一个命令行的过程。你可以通过在
一个文件中输入聊天草稿来避免它,称为 dial-c3po。你使聊天从文件阅读文稿而
不是在命令行文件名之后给出一
个-f 选项。完成的 PPPD 咒语现在会是这个样子:
# pppd connect "chat -f dial-c3po" /dev/cua3 38400 -detach \
crtscts modem defaultroute
除了 指定拨号文稿的连接选择之外,我们添加两个选项到命令行:-detach,它告
诉 pppd 不要从控制板中分离并变
成为一个背景过程。Modem 的关键字使它在串口设备上执行一些 modem 指定的
动作,如在呼叫之前或者之后挂断电话。
如果你不使用这个关键字,PPPD 将不会监测端口的 DCD 线,也就不能在远程
端出乎意料的断开的时候发现。
上面显示的例子太简单,聊天允许更为复杂的聊天文稿。一个非常重要的特征是
它指定使用一个错误就取消聊天的
串的能力。典型的取消串是信息如:BUSY(忙)或者是(NO CARRIER)没有
信号,这些当拨叫的号码占线或者没人
应答时候 modem 经常出现的提示。为了让聊天立即辨认出这些,而不超时,你
可以在文稿开始的时候使用 ABORT 关键
词指定它们:
$ chat -v ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ...
使用一个类似的风格,你可以通过插入 TIEMOUT 选项为聊天文稿的局部更改超
时的值。详细的内容请查看聊天手册页。
有些时候,你还想得到部分聊天文稿中的一些类型的有条件执行。例如,当你没
有收到远端注册提示的时候,你可能
想要发送一个 BREAK。或者一个运载返回,你可以通过附加一个子文稿到一个
期望的串来达到这一点。它包括一系列
的发送和期待串,就象所有的文稿自身一样,它们由连字号割开。只有在它们所
附的期待串没有如期到达的时候子文
稿才会被执行
网络管理员指南 -8.点到点协议-5>调试你的 PPP 设置
本文出自: 作者: Andrew Anderson
在默认情况下,PPPD 将会记录任何的警告和错误信息到 syslog 的 daemon 设备。
你需要添
加一个路径到 。它会重新导入到文件,甚至是控制板,否则 syslog 会
简单的放
弃这些信息。下面的路径发送所有的信息到/var/log/ppp-log:
daemon.* /var/log/ppp-log
如果你的 PPP 设置没有立即工作,查看这些记录文件会首先给你有关什么出问
题的提示。如
果这没有帮助,你还可以使用调试选择打开额外的调试输出。这使 PPPD 记录所
有控制包发送
或者接收到 syslog 中的所有内容。所有的信息都将传到 daemon 设备中去。
最后最激烈的特征是通过引发 PPPD 的 kdebug 选择来启动核心级的调试。后面
是一系列的论述,
它是 bitwise 为单位或者是下面的值:1。为普通的调试信息,2。为所有进入 HDLC
框架的所有
内容,和 4,使驱动打印所有发出 HDLC 框架的内容。为了抓住核心调试信息,
你必须运行阅读
/proc/kmsg 文件的 syslogd daemon,或者是 klogd daemon。两种方法指导核心调
试到 syslog 的
网络管理员指南 -8.点到点协议-6>IP 配置选项
本文出自: 作者: Andrew Anderson
IPCP 用来在连接配置时间讨论一系列的 IP 参数。通常情况下,每一个同级可以
发送一个 IPCP 配置要求包,
包括它想要从默认中更改的值,以及是什么值。在接收上,远程终端按照顺序检
查每一个选择,然后接受
或者拒绝它。PPPD 给你关于它将要讨论的 IPCP 选择的许多控制。你可以在我
们将要在下面谈到的通过各种
命令行选择来调节。
选择 IP 地址
在一个 PPP 连接中的路径
--------------------------------------------------------------------------------
选择 IP 地址
在上面的例子中,我们已经让 PPPD 拨叫到 c3po 并建立了一个 IP 连接。之前没
有在两个连接的终端上选择一
个特殊的 IP 地址。而是在连接的两个终端上选择 vlager 地址作为本地的 IP 地址,
并且让 c3po 自己提供。然而,
有时对连接上一个或者另外一个终端上使用的地址进行控制是有用的。PPPD 支
持这上面的许多变化。
要得到特殊的地址,你通常要提供给 PPPD 下面的选项:
local addr:remote addr
在那里 local_addr 和 remote_addr 可能在 dotted quad 标注中指定,或者被作为
主机。这使得 PPPD 尝试使用
第一个地址作为它自己的 IP 地址,第二个作为它的同级的 IP 地址。如果同级在 IP
CP 讨论中拒绝它们中的任何
一个,就不会建立任何的连接。
如果你只想要设置本地地址,但是接受所有同级使用的地址,你只需要发送部分
的 remote_addr。例如,为了
使 vlager 使用 IP 地址 而不是它自己的,你可以在命令行给它
.。同样的如果只设置远程
地址,你需要保留 local_addr 区域为空白。在默认情况下,PPPD 将同你的用户
名一起使用地址。一些 PPP 服务
器动态的处理许多客户位置的指派地址:地址只有在拨入的时候被分配到系统,
并且在它们退出之后会被再次
要求当拨叫这样一个服务器的时候,你必须确定 PPPD 没有从服务器要求任何特
定的 IP 地址。但是最好接受服务
器要求你使用的地址。这意味这你必须指定一个 local_addr 选择。另外,你必须
使用 noipdefault 选择,它使
PPPD 等待同级提供 IP 地址而不是使用本地的主机地址。
--------------------------------------------------------------------------------
在一个 PPP 连接上的路径
在设置了网络接口之后,PPPD 通常将会只是设置一个主机路径到它的同级。如
果远程主机是一在个 LAN 上的,
你必然想要在你的同级后面连接到你的主机。就是网络路径必须被设置。
上面我们已经看到,PPPD 要求使用 defaultroute 选择来设置默认路径。如果你所
拨叫的 PPP 服务器将作为你的
Internet 网关,那么这个选择就会非常重要了。
相反的例子中,你的系统作为一个单独的主机的网关,也是相当容易达到的。例
如,在 Virtual Brewery 使用
一些雇员,它们的本地机器被称为 loner。在 vlager 中,我们现在可给 PPPD proxya
rp 选择,它将会为 loner 安
装一个代理 ARP 登录。这将自动使 loner 从 Brewery 和 Winery 的所有主机中获
得。
然而,事情不是经常象这样简单,例如,当连接两个本地网络的时候。这经常要
求添加一个指定的网络路径,
因为这些网络可能有它们自己默认的路径。另外,使两个同级使用 PPP 连接的
默认路径会建立一个循环,在其
中包装到未知的目的地会在同级中发出响声直到它们的存在时间到期。
作为一个例子,假定虚拟 Brewery 在一些其它城市中打开一个分支机构。子公司
使用 IP 网络数 运行
他们自己的一个 Ethernet。这是 Brewery 分类 B 网络的子网 3。他们想要通过 PPP
连接到 Brewery 的主 Ethernet 来
更新用户数据等等。同样,vlager 作为网关;它的同级称为 sub-etha 并且有一个
IP 地址 ..
当 sub-etha 连接到 vlager,它将使默认路径象平常一样指到 vlager。然而在 vlager
中,我们将需要为运行在
sub-etha 上的 subnet-3 安装一个网络路径。为了达到这个目的,我们使用 PPPD
的一个特征,而不需要讨论 ip-up
命令。这是一个位于/etc/ppp 的一个 shell script 或者程序,它会在 PPP 接口被设
置之后执行。当出现的时候,
有下面的参数:
ip-up iface device speed local addr remote addr
在这里 iface 命名所使用的网络接口,设备是串口设备文件使用的路径名(/dev/tty
if stdin/stdout 被使用),
并且速度就是设备的速度。local_addr 和 remote_addr 给出在 dotted quad 注释中
连接中两端的 IP 地址。在我们
的例子中,ip-up 手稿可能包含下面的代码部分:
#!/bin/sh
case $5 in
) # this is sub-etha
route add -net gw ;;
esac
exit 0
在一个相类似的风格中,/etc/ppp/ip-down 被用来在 PPP 连接被断开之后取消 ip-
up 的所有动作。
然而,路径计划还没有完成。我们在两个 PPP 主机上设置了路径表登录,然而
在两个网络上的主机不知道任何有
关 PPP 连接的信息。如果所有在附属网络的主机有它们自己默认的路径指到 sub
-etha,并且所有的 Brewery 主机
默认到 vlager 这就不是一个大问题。如果不是这样,通常你的唯一选择就是使用
象大门一样的一个路径 daemon。
在 vlager 上创建网络路径之后,路径 daemon 会通过附属的子网发送新的路径到
所有的主机。
网络管理员指南 -8.点到点协议-7>连接控制选择
本文出自: 作者: Andrew Anderson
以上,我们已经遇到了 LCP,也就是连接控制协议,它用来讨论连接的特征,并
测试连接。
两个被 LCP 讨论的最为重要的选择是最大的接收单位和异步特征控制地图,还
有一些其它
的 LCP 配置选择,但是它们太特殊,不在这里讨论。有关它们的描述请查阅 RFC-
1548。
异步特征控制地图,就是通常说的 async 地图,是在异步连接上使用的,这种连
接包括辨认
必须避开的控制特点的电话线(由一个指定的两位序列替代)。例如,你可能想
要避开用
于软件握手的 XON 和 XOFF 特征。,因为一些错误配置的 modem 可能在 XOFF
的接收中出现阻碍。
其它的后选包括 Ctrl-](telnet 逃脱性质)。PPP 允许你通过在 async 地图中指定
它们来使用
ASCII 码 0 到 31 的方式避开任何的字母。
Async 地图是一个 32-bit 宽的位图。它相对于 ASCII NUL 特征没有重要点而相
对于 ASCII 31 有
极大的重要点。如果一个点已经设置,代表相应的特征在通过连接发送它之前就
放弃了。最
初,async 地图设置到 0xffffffff,,也就是,将放弃所有的特征。
要告诉你的同级不需要放弃所有控制特征而只是它们中的一部分,你可以使用 as
yncmap 选择
指定一个新的 asyncmap 到 pppd。例如,如果只有^S 和 ^Q(ASCII 17 和 19,
通常为 XON 和
XOFF 使用)必须放弃,就使用下面的选择:
asyncmap 0x000A0000
最大的接收单位,或者是 MRU,告诉同级我们想要接收的 HDLC 框架的最大尺
寸。尽管这可能使
你想到 MTU 值(最大传输单位),二者的相似点很少。MTU 是一个核心网络
设备的参数,表述了
界面可以处理的最大框架大小。MRU 对于没有产生任何大于 MRU 框架的远程
终端来说不只是一个
设备,界面永远不能超过 1500 字节。
于是,选择一个 MRU 不在是一个连接的承受能力问题,而是哪一个可以提供最
好的产量。如果你
想要通过连接运行截面应用,设置 MRU 到 296 值是个好建议,因此,一个偶尔
比较大的包裹(如,
从一个 FTP 部分)不会使你的指针“跳动”。要告诉 pppd 要求一个 296 的 MRU,
你给出选择 mru 296。
然而,你没有放弃使用 VJ 标题压缩(它默认使用),小的 MRU 只有感觉。
Pppd 还识别一系列的 LCP 选择,它们设置商议过程中的所有行为,例如在连接
中断之前可以更改
的最大的数量的配置要求。除非你确切的知道你在做的事情,你需要放下它们。
最后,有两个选择应用 LCP 回声信息。PPP 指定两个信息,回声要求或者回声
应答。PPPD 使用这个
特征来检查一个连接是否仍然在操作。你可以通过使用 lcp-echo-interval 选择和
一个秒为单位
的时间来启动它。如果在间隔中没有从远程主机中接收到框架,PPPD 建立一个
回声要求,并等待
同级返回一个回声应答,如果同级没有产生一个应答,在一个特定数量的要求发
送完之后连接被
中止。这个数量可以使用 lcp-echo-failure 选择设置,默认下,这个特征同时启动。
网络管理员指南 -8.点到点协议-8>普通的安全考虑
本文出自: 作者: Andrew Anderson
一个错误配置的 PPP daemon 可能是一个破坏性的安全缺口。它可能与让别人将
机
器插入到你的 Ethernet(这是非常坏的事情)一样可怕。在着一部分,我们将会
讨论一些测量,它们可以确保你的 PPPD 配置的安全。
有关于 PPPD 的一个问题是配置网络设备和路径表,这需要有根特权。你将会经
常
使用运行 setuid 根来解决它。然而,PPPD 允许用户设置各种与安全有关的选项。
为了防止任何的攻击,一个用户可以通过操作这些选择来启动。建议你在全球
/etc/ppp/options 文件中设置一些默认的值,就象在部分-中显示的样本文件一样。
它们中的一部分,如证明选项,无法被用户覆盖,这样就提供了一个合理的防止
操纵的保护。
当然,你还需要保护自己不受你用 PPP 联系的系统的侵害。为了抵挡作为另外
一方
的主机,你还需要经常从你的同级中得到证明。另外,你不能允许外部主机使用
任
何他们选择的 IP 地址,而是需要至少将它们限制在几个选择之上。下面的部分
会处
理这个题目。
网络管理员指南 -8.点到点协议-9>PPP 的授权 -1)PAP 与 CHAP 的比较
本文出自: 作者: Andrew Anderson
相对于 PAP 的 CHAP,使用 PPP 的时候每个系统都可能要求它的同级两中授权
协议中的一种来
为它授权。这些是密码授权协议(PAP)。当一个连接已经建立时,每个终端都
可以向其它
终端进行授权,而不需要考虑它是呼叫者还是被呼叫者。下面我将松散地在我想
要区分被
授权系统还是授权系统的时候讨论有关客户和服务器的问题。一个 PPP daemon
可以通过仍然
发送另外一个 LCP 配置,要求辨认所需要的授权协议来要求授权。
PAP 基本上使用的与普通的注册程序相同的方法。客户通过发送一个用户名字和
一个(选择
性加密)密码到服务器,也就是与它的秘密数据相比较的服务器。这个技术容易
被窃听者攻
击,他们可能会通过在连续线上的偷听来获得密码,从而重复细碎的事情和错误
的任务。
CHAP 没有这不足。使用 CHAP 的时候,进行授权者(也就是说服务器)发送一
个随机产生的
“挑战”线连同它的主机名给客户。客户使用主机名来寻找正确的秘密,挑战和使
用单向散列
法功能加密线。结果同客户的主机名字一起返回给服务器。服务器现在执行同样
的计算,并在
它得出同样的结论的时候通知客户。
CHAP 的另外一个特点是它并不只是要求客户在设置时间对自己进行授权,而是
在有规律的间断
中发送挑战以确定客户没有被一个闯入者替代,例如可以只是转换电话线。
PPPD 保存 CHAP 和 PAP 分别在两个文件中,被分别称为 etc/ppp/chap-secrets 和 p
ap-secrets。通
过在月个亿 或者更多的文件中进入一个远程主机,你可以对于是否 CHAP 或
者 PAP 被用来同你的
同级