linux网络管理员手册.docx
《linux网络管理员手册.docx》由会员分享,可在线阅读,更多相关《linux网络管理员手册.docx(22页珍藏版)》请在冰豆网上搜索。
![linux网络管理员手册.docx](https://file1.bdocx.com/fileroot1/2023-1/9/64217e37-d4b2-40d3-b2b9-1935fd4e20be/64217e37-d4b2-40d3-b2b9-1935fd4e20be1.gif)
linux网络管理员手册
第一章网络绪论
1.1历史
连网的主意大概与电讯事业本身一样的久远。
考虑人们生活的石器时代,那时鼓可能已经用于在人们之间传递消息了。
假释穴居人A想邀请穴居人B进行一场互扔石块的游戏,但是他们互相之间居住得太遥远,以至B听不见A的击鼓声。
那么,A能够做些什么呢?
他可以
1)走到B的地方去,
2)使用一个更大的鼓,或者
3)询问C,C居住在他们中间的地方,来传递消息。
这最后一个办法就叫做连网。
当然,我们已经比我们祖先的原始嗜好和设备有了长足的进步。
现在,通过大量的线缆的集合,如光纤、微波、等等,我们用计算机进行相互间的对话来作星期六足球比赛的约会。
[1]下面,我们将涉及实现上述的手段和方法,但不考虑线缆,也不考虑足球的部分。
在本手册中,我们将讨论两种网络类型:
基于UUCP的,和基于TCP/IP的。
这是一些协议集和软件包,它们提供了在两台计算机之间传输数据的方法。
在这一章中,我们将考虑这两种网络类型,并且讨论它们的基本原理。
我们定义网络是一个互相之间能够通信主机(hosts)的集合,这常常依赖于一些专用(指定)主机的服务,即是在参与者之间中继数据。
主机通常就是计算机,但也不一定;也可以将X-终端或者智能打印机当作主机。
少量的主机聚合也称为站点(sites)。
没有语言或者代码,进行通信是不可能的。
在计算机网络中,这些语言共同地被称为协议(protocols)。
然而,这里你不用关心协议是如何制定出来的,而是要,例如,考虑州长开会时注意到的高度形式化的行为代码。
同样,用于计算机网络中的协议仅仅是两台或多台主机之间交换消息所用的非常严格的一些规则。
1.2UUCP网络
UUCP是Unix-to-UnixCopy的缩写。
刚开始它是作为一个程序包,用于在串行线路上传输文件、确定这些传输的时间、并且在远程站点上启动程序的执行。
自从七十年代末它第一次实现以来,已经历了很大的变化,但其提供的服务仍然很简单。
他的主要应用仍然是在基于拨号连接的广域网中。
UUCP是贝尔实验室在1977年首先开发出来的,用于在他们的Unix开发站点之间的通信。
在1978年中期,这个网络已经连接了80多个站点。
它应用于运行电子邮件以及远程打印。
然而,这个系统主要用于分发新软件以及调试程序。
[2]现今,UUCP不再被限制于这个环境内了。
在许多种类的平台上已有免费的和商业的移植版本了,包括AmigaOS、DOS、Atari的TOS等等。
UUCP网络的主要缺点之一是它的低带宽。
一方面,电话设备对最高传输速率有严密的限制。
另一方面,UUCP链接很少有固定的连接;而是在有规则的时间间隔上主机拨号来相互连接。
因此,大多数时间,是用于在UUCP网络上传输存储于某些主机磁盘上的邮件消息、等待下次连接的建立。
尽管有这些限制,世界各地仍有许多UUCP网络在运转着,主要是由计算机业余爱好者在运行着,它以合适的价格为私人用户提供网络访问。
UUCP流行的主要原因是:
与将你的计算机连接到大Internet电缆上相比,它是极其便宜的。
为了使你的计算机成为一个UUCP节点,你只须有个modem、一个运行着的UUCP程序,以及愿意供你邮件和新闻的其他的UUCP节点。
1.2.1如何使用UUCP
UUCP后面的概念是非常简单的:
就如同它的名字指出的一样,它基本上是将文件从一台主机上拷贝到另一台上去,但它也允许在远程主机上进行一定的操作。
假设你的机器允许访问名为swim的假想的主机,并且让它为你执行lpr打印命令。
那么你可以命令行上键入下面一行在swim上打印出本书来:
[3]$uux-rswim!
lpr!
netguide.dvi
这使得uux为swim调度了一个作业(job)。
uux是UUCP组中的一个命令。
这个作业由输入文件
netguide.dvi、以及馈送该文件到lpr的请求组成。
-r标志告诉uux不用立刻访问远程系统,
而是将作业存储起来直到稍后时有个连接被建立起来。
这叫作假脱机(打印)(spooling)
。
UUCP的另一个特性是它允许通过几台主机转发作业和文件,假如它们合作的话。
假定上面例
子中的swim与groucho有一个UUCP链接,groucho中保存着大量的应用程序文档。
为了下载文
件tripwire-1.0.tar.gz到你的站点上,你可以发出
$uucp-mrswim!
groucho!
~/security/tripwire-1.0.tar.gz
trip.tgz
所创建的作业将请求swim从groucho取得该文件,并将文件送到你的站点,这里UUCP将把文件
存为trip.tgz并且通过文件到达的邮件来通知你。
这将分三步完成。
首先,你的站点将作业
送至swim。
当下次swim与groucho建立了连接,就会下载该文件。
最后一步是从swim到你站点
的实际的传输。
目前,UUCP网络所提供的最重要的服务就是电子邮件和新闻。
稍后我们将会讨论这些,所以
这里我们仅给出一个概要的介绍。
电子邮件–简称email–允许你与远程主机上的用户交换消息而无需实际地知道如何访问
这些主机。
控制一个消息从你的站点到达目的站点的任务是完全由邮件处理系统完成的。
在
一个UUCP环境中,邮件一般是通过在比邻的主机上执行rmail命令传送的,并把接收者的地址
和邮件消息传给rmail。
然后rmail将会转发消息到另一台主机上等等,直到消息到达目的主
机为止。
我们将在第13章中详细地讨论。
News可以最恰当地描述成一类分布式的电子公告板系统。
绝大多数情况下,这个术语指的是
UsenetNews,它是直到目前为止最著名的估计有着120,000-参与站点的新闻交换网络。
Use
net的起源可追溯至1979年,那时,在新的Unix-V7版本发布以后,三个研究生有了一个在Un
ix团体中通用信息交换的点子。
他们整理了一些脚本,这成了第一个网络新闻系统。
在1980
年里,这个网络连接了北卡罗林纳州的两所大学里的duke、unc和phs网络。
从这衍生出来,
Usenet最终成长起来了。
尽管它起初是一个基于UUCP的网络,现已不再限于单种类型的网络
了。
信息的基本单元是文章,它可能被投寄到专用于某个特殊主题的新闻组的层次结构中。
大多
数站点仅仅接收全部新闻组的一个选集,而全部新闻组每天平均传送相当于60MB的文章。
在UUCP的世界中,news通常是按照从请求的组中收集所有的文章,并且打包成几批(batche
s),再通过一个UUCP链接来发送的。
这几批文章被发送到接收站点,并在那里被送给了rne
ws命令来打开这几批数据包以及更进一步的处理。
最后,对于许多拨号上网的供公共访问的文档站点来说,UUCP也同样是一种供选择的方法。
你通常可以这样来使用它们:
使用UUCP拨号上网、作为来客(guest)用户登录、并从公共访
问文档区域下载文件。
这些来客帐号的登录名/口令通常是uucp/nuucp或者是其他一些类似的
。
1.3TCP/IP网络
尽管UUCP可能是一种廉价的拨号上网链接的选择,但还存在着许多情况,在这些情况下,这
种存储-与-转发的技术被证明是不灵活的,例如在局域网(LANs)的情况下。
这通常是由位
于同一幢建筑物、甚至是位于同一层的少数机器组成,它们互相连接以提供一个相似的工作
环境。
典型地来讲,你将在这些主机上共享文件,或者在不同的机器上运行分布式应用程序
。
这些任务需要一种完全不同的连网途径。
所有的数据被分解成更小的块(packets包、分组
),这些块被立刻转发到目的主机上,并再重新组合起来。
而不是随同一个作业脚本转发整
个文件。
这类网络被称为包[分组]交换(packet-switched)网络。
从其它方面来讲,这允许
在网络上运行交互式的应用程序。
当然,所付出的代价是大大地增加了软件的复杂性。
这种系统---不一定就是主机---所采用的解决方案就是著名的TCP/IP。
在本节中,我们将看
一下它的基本概念。
1.3.1TCP/IP网络引言
TCP/IP的起源可以上溯到1975年美国DARPA(DefenseAdvancedResearchProjectsAgency
国防部远景规划局)支助的研究计划。
那是个试验性的网络,ARPANET,在经证实成功以后
,于1975年转入正常运行。
1983年,新的TCP/IP协议组被作为标准采用,并且网络中的所有主机必须使用它。
当ARPANE
T最终成长为Internet时(ARPANET本身于1990年停止使用),TCP/IP的使用已经传播到Inte
rnet以外的网络上去了。
最值得注意的是局域网络,但随着象ISDN等快速数字电话设备的出
现,将来肯定也会应用于拨号上网的传输。
在贯穿以下几节的TCP/IP讨论当中,作为一个看待的具体实例,我们将考虑坐落在Fredland
某地的GrouchoMarx大学(GMU),绝大多数系部运行他们自己的局域网,有些系部共享一个
局域网,有些有好几个局域网络。
他们都是互连的,并且通过一个高速链接与Internet相连
。
假设你的机器在数学系连接到局域网上,并且假设你的机器名为erdos。
为了访问物理系的一
个名为guark的主机,你键入以下命令:
$rloginquark.physics
WelcometothePhysicsDepartmentatGMU
(ttyq2)login:
在提示符下,输入你的登录名,假如说是andres,以及你的口令。
这时你就进入了quark的s
hell,在那里你就可以象是在系统的控制台上一样键入各种命令。
在你退出shell以后,就会
退回到自己机器的提示符下。
你刚才即使用了TCP/IP提供的即时的、交互式的应用程序:
远
程登录。
在你登录进quark时,你也会想要运行一个基于X11的应用程序,就象函数绘图程序,或一个
PostScript预览器。
为了让这个程序知道你想要把窗口显示在你的主机屏幕上,你就必须设
置DISPLAY环境变量:
$exportDISPLAY=erdos.maths:
0.0
如果你现在运行你的应用程序,它将联系你的X服务器而不是quark的,并在你的屏幕上显示
它的所有窗口。
当然,这需要X11运行在erdos上。
这里的要点是TCP/IP允许quark和erdos来
回传送X11分组,并给了你这样一种幻觉,好象你只在单个系统上。
在这里,网络几乎是透明
的。
TCP/IP网络的另一个重要的应用程序是NFS,它代表网络文件系统(NetworkFileSystem)
。
这是另一种透明使用网络的形式,因为它基本上允许你从其他主机上直接加载目录分层结
构,所以它们就好象本地的文件系统一样。
例如,所有用户的登录主目录可能在一台中心服
务器机器上,局域网上所有其它主机都可以从它上面加载这个目录。
这样做的效果是用户可
以登录到任何机器上,并且会发现自己在同一个主目录中。
类似地,仅在一台机器上安装需
要大量磁盘空间的应用程序(比如象TeX),并且将这些目录导出到其它机器上。
我们将在第
十一章中再次讨论NFS。
当然,这些仅是在TCP/IP网络上你能做些什么的例子。
这种可能性几乎是无限的。
我们现在进一步讨论TCP/IP工作的原理。
你需要知道这些以理解如何和为什么要配置你的机
器。
我们将首先从分析硬件着手,然后慢慢地深入。
1.3.2以太网
在局域网中广泛使用的硬件类型就是众所周知的以太网(Ethernet)。
它由主机通过连接器
与之连接的单根电缆、三通头或收发器组成。
简易以太网安装起来一点不贵,而且其网络传
输速率达到每秒10M,这也基本上说明了它为什么如此普及。
以太网可分成三类,分别称为粗缆(thick)、细缆(thin)和双绞线(twistedpair)。
细
缆和粗缆以太网都使用同轴电缆,只是粗细不同以及与主机连接的方式不同。
细缆以太网使
用一个T形的“BNC”连接头,两端连电缆,一头旋到计算机背面的一个插头上。
粗缆以太网
需要在电缆上钻一个小孔,并且使用一个“吸血鬼式的三通头”连接收发器。
这样,一个或
多个主机就能连接到收发器上。
以太网的细缆和粗缆使用的长度最长分别可达200米和500米
,因此它们也分别称为10base-2和10base-5。
双绞线使用一根由两根铜线做成的线缆,也就
是在普通电话装置中用的那种,但通常还需要另外一些硬件。
它也以10base-T知名。
尽管将一台主机加入粗缆以太网有些烦琐,但不会断开网络。
要往细缆以太网装置中增加一
台主机的话,就不得不中断网络服务几分钟,因为需要切断电缆以接入一个连接头。
许多人偏爱细缆以太网,因为它非常便宜:
PC网卡售价只有50美元左右,并且电缆每米也只
有几美分。
然而,对于大规模的安装,粗缆以太网则更适合。
例如,GMU数学系的以太网使用
的是粗缆,所以每当往网上增加一台主机时就不需要中断网络。
以太网技术的缺点之一是它有限的电缆长度,这妨碍了它在除局域网以外地方的使用。
然而
,几个以太网段可以使用中继器、桥接器或路由器来相互连接在一起。
中继器只是简单地在
两个或多个网段之间拷贝信号,所以,所有用其连接在一起的网段将表现出好象是一个以太
网。
由于时限的要求,在网络上的任何两台主机之间都不能多于四个网段。
桥接器和路由器
是很复杂的。
它们分析输入的数据,并且仅在接收主机不在本地以太网上时才转发数据。
以太网的运作如同一个总线系统,在该总线上,一个主机可以发送最大长度可达1500字节的
分组(或帧frames)到同一以太网上的另一台主机中。
主机是通过一个六字节地址寻址的,
这个地址是固化在以太网板上的固件中的。
这些地址通常是使用以冒号分开的两位十六进制
数的序列形式写出的,就如同格式aa:
bb:
cc:
dd:
ee:
ff。
某个站点发送的帧,别的所有站点都能看到,但只有目的主机会拾取并处理该帧。
如果两个
站点试图同时发送,就会发生碰撞[冲突](collision)。
这个问题解决的办法是两个站点都
放弃发送,并在片刻以后再次尝试发送。
1.3.3其它硬件类
在大规模的装备中,例如象GrouchoMarx大学,以太网通常并不是唯一使用的设备。
在Grou
choMarx大学,每个系部的局域网都连接到校园主干网上,那是运行着FDDI(光纤分布式数
据接口FiberDistributedDataInterface)的纤维光缆(fiberopticscable)。
FDDI使
用一种完全不同的方法来传输数据,它基本上包括向四周发送令牌,仅允许获得令牌的站点
发送帧。
FDDI的主要优点是有高达100Mbps传输速率、光缆最大长度可达200km。
对于长距离网络连接来讲,常常使用不同种类的设备,这些设备是基于名为X.25的标准的。
许多所谓的公用数据网(PublicDataNetworks),如美国的Tymnet、德国的Datex-P就提供
这种服务。
X.25需要一种特殊的硬件,即分组组合/分拆(PacketAssembler/Disassembler
)或PAD。
X.25定义了一套自己的网络协议,然而它常常用于连接运行TCP/IP和其它协议的网
络。
由于IP分组不能简单地映射到X.25上(反之也然),所以IP分组只是简单地包装入X.25
分组中在网上传输。
业余无线电爱好者常常使用他们自己的一套装置把计算机连成网;称为分组无线网(packet
radio)或业余无线电报务员无线网(hamradio)。
分组无线网所使用的协议称为AX.25,
是从X.25派生出来的。
其它技术包括使用慢速但廉价的拨号访问串行线路。
这些需要另外一些用于传输分组的协议
,例如SLIP或PPP,这些将在下面讨论。
1.3.4Internet协议
当然,你不会希望你的网络连接仅限于一个以太网络之中。
理想地来说,你希望能够使用一
个网络而不管它是运行在什么硬件上的,也不管它是由多少个子单元组成的。
例如,象Grou
choMarx大学那样的大规模网络装置,你通常有几个用某些方法连接起来的独立的以太网络
。
在GMU,数学系有两个以太网:
一个是教授和研究生的快速机器的网络,另一个是学生用的
慢速机器的网络。
这两个网络都连到了FDDI校园主干网上。
这种连接是由称为网关(gateway)的专用主机来处理的,它通过在两个以太网络以及光缆之
间拷贝进入和传出的分组来处理的。
例如,如果你在数学系并且想从你的机子上访问物理系
局域网上的quark,那么网络连接软件不能够直接将分组发送到quark,因为不在同一个以太
网内。
因此,必须依靠网关作为一个转发者。
然后,网关(给它取名为sophus)利用主干网
将这些分组转发到物理系的niels网关上,由niels将分组传递到目的机器中。
Erdos与quark
之间的数据流见图1.1(对GuyL.Steele致歉)。
图1.1从erdos到quark发送一个数据报的三个步骤。
这种引导数据至远程主机的方案称为路由选择或选路(routing),并且在此时常将分组称作
数据报(datagrams)。
为使事情简单,数据报交换是由单独一个与所用硬件无关的协议来管
理的:
IP,或互连网协议(InternetProtocol)。
在第二章中,我们将极详细地描述IP以及
路由选择的方法。
IP的主要好处在于它将物理上不同的网络转换成一个明显同类的网络。
这叫做网络互连(in
ternetworking),其所形成的“后网络”称为一个互连网络(internet)。
在这里请注意a
ninternet和theInternet的细微差别。
后者是特指全球互连网的官方名称。
当然,IP也需要一个硬件独立的寻址方案。
这是通过对每个主机分配一个32位的数值来完成
的,这个32位数值称为IP-地址(IP-address)。
一个IP地址通常用四个十进制数来表示,每
一个十进制数表示一个8位部分,用点分开。
例如,guark主机可能有一个IP地址是0x954C0C
04,它可以写成149.76.12.4。
这种格式也称为点分四组(dottedquad)表示法。
你将注意到我们现在有三种不同的地址类型:
首先有象quark这样的主机名、然后我们有IP地
址、最后还有硬件地址,如6字节的以太网地址。
这些类型的地址要以某种方式加以匹配,这
样,当你键入rloginquark时,网络软件能够给出quark的IP地址;并且当IP发送任何数据到
物理系的以太网上时,它会以某种方式找出与指定IP地址相映的以太网地址。
这有些令人混
淆。
这里我们不再深入讨论下去,而将在第二章中讨论之。
现在已足够记住寻址的这些步骤的含
义,对于将主机名映像到IP地址的操作成为主机名解析(hostnameresolution),对于将I
P地址映像到硬件地址的操作称为地址解析(addressresolution)。
1.3.5串行线上的IP
在串行线路上,常常使用一个以SLIP或串行线路IP而知名的“事实上的”标准。
一个对SLIP
的修改被称为是CSLIP,或压缩的SLIP,用以进行IP头的压缩以充分利用串行线路提供的低带
宽达到更好的性能。
[4]另一个不同的串行线路协议是PPP,或点对点协议(Point-to-Poin
tProtocol)。
PPP比SLIP有更多的特色,包括一个链接协商步骤。
然而,它比SLIP出色的主
要优点在于它不限于仅仅传输IP数据报,而是设计成能够传输任何类型的数据报的。
1.3.6传输控制协议(TransmissionControlProtocol)
当然,将数据报从一个主机传送到另一个主机并没有完,如果你登录进quark,你就想在你的
erdos上rlogin进程和quark上的shell进程之间有一个可靠的连接。
这样,发送者就必须将发
送和回应信息分解成分组,并且接收者将接收到的分组再重新组合成字符流。
这看上去很琐
细,但其中包括许多细微的任务。
关于IP要知道的一件重要的事情是,实际上,它不是可靠的。
假设在你的以太网上有十个人
开始从GMU的FTP服务器上下载Xfree86的最新版本。
由此而产生的通信量对于网关处理能力来
说可能太多,因为它太慢,并且内存也不多。
如果你现在恰巧给quark发送了一个分组,网关
sophus此时正好用完了缓冲空间因此没法转发此分组。
IP解决此问题的方法只是简单地丢弃
了这个分组。
这个分组就完全失去了。
因此,检查数据的完整性,并且在遇到出错时重传数
据是进行通信的主机的责任。
这是由另一个协议来完成的,即TCP,或传输控制协议(TransmissionControlProtocol)
,该协议在IP之上建立了一个可靠的服务。
TCP的基本特性是,它利用IP给你一个在你的主机
进程和远端主机进程之间一个简单连接的幻觉,这样你就不用关心你的数据是如何以及通过
哪个路由器传输的。
一个TCP的连接操作基本上象个双向的管道,两个进程都可以对其进行读
写操作。
可以把它想象成一次电话对话。
TCP是通过两台相关主机的IP地址以及称为端口(port)的数值来识别一个连接的末(尾)端
的。
端口可以看作是网络连接的附加点。
如果我们对电话的例子夸张一点讲,可以把IP地址
比作地区码(对应城市的代码),把端口数值比作本地码(对应于某人的电话号码)。
在rlogin的例子中,客户应用程序(rlogin)在erdos上打开了一个端口,并且连接到quark
上的端口513上,该端口是rlogind服务器一直在监听的。
这样就建立了一个TCP连接。
使用这
个连接,rlogind执行授权程序,并且然后产生shell进程。
该shell的标准输入和输出被重定
向至TCP连接上,所以在你的机器上你对rlogin所键入的任何字符将通过TCP流被当作标准输
入给予shell。
1.3.7用户数据报协议(UserDatagramProtocol)
当然,TCP并不是TCP/IP连网中唯一的用户协议。
尽管它适合象rlogin这样的应用程序,其所
用的总开销阻止了它用于象NFS这样的应用程序中。
取而代之的是,NFS使用一个TCP的同属协
议称为UDP,或用户数据报协议(UserDatagramProtocol)。
正如TCP一样,UDP也同样允许
一个应用程序连接到远程机器上一个端口的服务上,但它不会为此建立一个连