Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103695269
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-06 13:07:00

 



网络设置与应用


网络是由多种复杂的协议所构成的,这些协议的分层结构是相互合作的,而Linux最突出的特征之一是它的网络能力。Linux能仿真或共享几乎所有操作系统的文件。Linux能同Mac 0s、Mac OS X、Netware、BSD、各种风格的UNIX、甚至是Windows系统下(使用SAMBA)对话,让我们可以享用便利的网络,访问各种丰富互联网的资源。

我们首先学习网络的基本概念,在对於网络的相关协议、术语有一定的认识,也有助於将来在设置网络服务器时,能夠快速的上手。

由於网络所包含的范围很广,我们将著重於当前大部份网络所採用的技术,如网络的分层结构、以太网,TCP/I P协议以及各种常见的网络服务介绍等等。

▓ 网络的分层架构

网络模型是採用分层结构,也就是我们熟知的OSl七层结构,使我们可以不必了解底层如何运作。例如,网络卡是如何将压缩变成电气信号通过网络線送到另一方。

一般仅需要使用上层网络应用程序所提供用户界面,便可以方便地使用国际互联网。让我们先看看OSl的七层结构图:






通过上图得知,越上面的层次越接近使用者,而越下面的层次就越靠近硬件。因此,若是底层硬件发生变动时,所影响的范围也只有底下的几层,上面的应用程序根本不受任何影响。


各层所负责的工作如下列表:



两台计算机(以上)要相互连接就必须通过这许多的层次,则必须使用相同的通讯协议,才有办法互相了解对方所送来的数据为何。

但是,並不限定每一台计算机只使用一种通讯协议,就像你不一定只会讲一种语言,在亚洲地区或许可以說「中国语、菲律宾语、日语、英语、德语、法文」等等...。

重要的是,与他沟通的人,必须双方都懂得的某种语言,否则将会是「鸡同鸭讲、听不懂」。

所谓「通讯协议」,简单的說,就是一种「沟通的规则」,一种「标準」,一种「语言」:如果,想要在网络上作沟通的话,例如:作数据的传输…等等,均必须通过相同的「协议标準」,才能夠顺利达到目的。

当前世界上有多种的「通讯协议」在被使用著,其中较为普遍的有TCPIP、IPX、NETBEUI这几种「通讯协议」,而最常被使用的则是「TCPIP」通讯协议。

相信大家对这OSl七层网络结构都有了初步的认识,但是我们将介绍一个更为常用的TCPIP四层模型,而且也比较符合我们平常所接触网络概念。






在OS I的七层结构中,像是表达层、交谈层,这二层是我们比较不会注重其中的细节。而数据连结层与实体层则是一起看作网络访问层,这些並不会影响我们了解网络的世界,反而会方便我们更了解平常所使用的网络。

将以各分层对应常见的网络协议,使其更了解其所代表涵意…


▓ 网络访问层(Net Access Layer)


指的就是底层的传输网络所採用的协议,常用的如下表:





▓ 网络层(Network Layer)

主要负责的工作为決定封包如何传送,也就是決定封包该网络送。常见的协议为IP协议,其中相关的字段有来源IP地址、目的IP地址,因此我们通过路由器的封包转传可将封包送往世界各地。


▓ 传输层 (Transport Layer)

主要由TCP与UDP协议扮演重要的角色,其中TCP协议的可靠性较高,能夠确保对方有沒有收到我们的封包,而UDP的传输会较为快速,因为少了确认封包的动作,降低封包的传输量。


▓ 应用层(Application Layer)

基本上,这一层协议就琳瑯满目了,刚才所提及的每一个网络服务,都可称作应用层的协议,他们共通的地方就是使用TCP协议或UDP协议中的接口号来辨识所使用的应用层协议为何,以便正确的沟通。像是FTP就自有它的传输协议,定义了如何下传文件、下载文件的命令格式为何,我们则通过21端口来決定使用FTP协议,来达到数据传输的目的。


▓ 封包的封装

先前提到封包这个名词很多,我们在这一节会介绍封包究竟是什麼以及它的封装概念,让大家能夠彻底了解封包怎麼传递。

首先压缩(Packet)这个概念,类似我们寄信的概念,我们将写好的信,用信封给包起来,並写下收件人的姓名、地址以及寄件者的姓名、地址。通过邮局将我们的信寄到对方手上,而这封信我们称作为封包,而信封称为封包的标头(Header),里头的信内容则是我们所要传输的数据。

当然,在真实的网络环境裡,不会有一个信封,而是三层到四层的信封,才能在这复杂的网络正确的沟通。下图,我们来解释实际上封包的传递、封装、解封装以及它的格式。





封包传递与形成是依照上图的箭头行进方式而走的。封包从上层传递下层,每一层都会封装它自己应有的协议所需的数据,由於每一层可能会有多种协议,因此是由上层的应用层来決定下层各层使用那么网络协议。

封包通过上层至下层的网络封装后,类似上图的方式,然后传送至目的地,再一层一层的往上解,最后接收者就收到传送者所传送的数据。

可以看到每一层,它们都使用标头(Header)来标记自己的块,如上图封包的封装示意图所呈现。

所以,其实数据只有Data这个部份,而其它的FTP标头,TCP标头、IP标头以及Ethernet标头都是为了将封包传送至目的地而使用的,不同的标头含有不同的字段,表示数据该如何处理。

因此,通过网络协议分层的处理、封包的封装与解封装构成我们每天所使用的国际互联网。


▓ 以太网

为什麼我们只挑选以太网来详细說明呢?是因为以太网是当前最为广泛使用的链接层协议。

下图以太网的封包封装格式,可以看到从46 - 1500的地方就是经过IP标头所包过的数据,再用IEEE 802.3 (RFC 1024) 所定义的以太网封包格式将之封装起来,而黑框的地址就是MAC地址(也称为硬件地址)。





在以太网中,封包是採用广播的方式传送,所以当我们在以太网传递封包的时候,事实上该局域网上的每台主机皆会收到我们传递的封包。

但是,因为目的MAC地址不是该网络卡所属的MAC地址,会自动将该封包丢棄,而只有目的MAC地址符合的我本机网络卡的硬件地址时,才会将封包捕获下来,並交由更上层的TCPIP堆栈来更进一步的处理。


MAC地址的来由,因为是网络卡本身的卡号,因此也常称为硬件地址,这是一个6个位元(byte)的值,全世界每一张网卡的MAC地址都是独一无二的,可以输入指令「ifconfig」。




其中,被框起来的部份就是该这台计算机主机所使用的网络卡的硬件位址。前四个bytes是制造商的编号。

可以通过指令「arp」查看ARP高速缓冲上的数据,ARP高速缓冲上的数据是记錄局域网上其它计算机的硬件地址,只要曾经互相通讯过后皆会记錄下来,每笔记錄在ARP高速缓冲上的存活时间为20分钟。





当输入指令「arp」,所看到的应该都是网关器(Gateway)的网络卡硬件地址。因为,一般人都是通过网关器连至国际互联网,所以ARP高速缓冲常常会留下网关器的MAC地址。

如果有经常写网络程序或者是玩过Sniffer (嗅探器) 程序的读者,必定有听过网络卡的Promiscuous模式 (又称为混乱模式),只要将网络卡设为混乱模式,就可以监听到別人的封包。

就如先前所提的,只要不属於您的封包,网络卡是不会收起来的,而设了混乱模式之后,就会将不属於您的封包也收起来,如此便可以偷看到別人传送的数据是什麼?

也因为如此,现在的电子商务,皆会使用加密的机制,避免数据被人监听,取得我们的机密数据。


▓ IP协议

Ip协议负责了将封包送至目的地端、将封包分割成适当的尺寸与重组封包(如果压缩有切割的话)。因此这一层所关注的焦点有IP地址与封包绕送,至於IP封包的切割与重组比较不是我们关心的事情,在这裡不多介绍。

IP地址是每台计算机主机连上国际互联网或局域网时,不可或缺的必要元件之一。IP地址相当於国际互联网上的门牌号码,当通过IP地址知道封包要传送到那裡。而IP地址是由32字节的0与1所组成。





如上图所示。IP地址的范围从0.0.0.0至255.255.255.255,因此全世界的可用的IP地址数量为232,对於全世界来說这个数量的IP地址是不夠用的。因此,才会有IPv6的诞生,来解決IP地址数目不足的问题。

Ip地址分为公共IP地址与私用IP地址,一般的计算机如果直接设置公共IP地址,就可直接上网了,而使用私用IP地址的话,虽然也可以上网,则必需通过类似NAT(网络地址转換)服务器作为网关器才能夠连至国际互联网,但是內部用户並不能夠架设一些网络服务器,如FTP Server、WEB server及Mail Server等等。这是架设网络服务器前所必须了解的。

必须将IP地址分成两个部份,前半部代表网络号码(netid),而后半部代表机器号码(hostid)。大网络需要后半部的位元数大一些,因为机器数可能很多,但要许多网络共存时,前半部的位元数就要大些,可以分成很多不同的子网络。IP地址依照不同长度的网络号码分为好几种类型,从A类型至E类型…





若要分辨所使用的IP地址是属於那一个类型的话,则只要以iP地址的开头来判断即可,例如192.168.0.1,就可以知道它是属於Class C的网段,而依各类型作简单的說明。





另外,IP地址为「0 (如:192.168.99.0)」和「255 (192.168.99.255)」是不能使用的,因为前者为「网络地址」而后者为「广播地址」。

於此,並不介绍复杂的路由协议,如RIP、OSPF等,而是介绍封包如何通过网关器或是路由器传送压缩至国际互联网上,並且到达对方的主机。


▓ IP路由
可以在Linux主机的终端機窗口输入「route」或「netstat -r」的指令。下图所呈现的內容称为「路由表」,以此決定封包该何去何从。








因此,当要连到国际互联网的某一个Web站台时,会先将该Web站台的域名转換成IP地址,再与路由表中的Genmask作二进制的AND运算。

很明显地,因为这个IP地址属于外部的IP地址,並不会等于任何一个Destination,只会符合路由表上的最后一条规则,也就是将封包交由网关器来处理。

当网关器收到压缩后,再将封包的目的地IP地址与它本身的路由表来決定封包该往那裡送。如此一个站一个站的传递,便能将压缩传递至目的地。如下图所示意:







通过指令「traceroute」可以跟踪当从「主机A」要到「主机B」之间,封包的传送过程经历的路線,其经过那些网关器或路由器。这樣的过程,称之为「路由跟踪」。


注意:指令语法参考,假如要连线到Google香港站(),则输入
traceroute google.com.hk指令即可。






在Ubuntu Linux预设的图型操作界面,可以通过「应用程式」→>「系统工具」→>「网络工具」的「路由跟踪」。






输入指定或开始跟踪,就会列出从您的计算机主机到连接到Google香港站(网址)之间,所经过的路由器,亦可以使用此指令简单的测试网络状況是否正常。

当发现停顿在某一个结点时,则有可能该网络结点出现異常,便可以直接排除该造成異常的状況。


▓ TCP与UDP协议

IP是非连接性(Connectionless),只负责将封包送到目的地,而万一封包遗失,则不负责任。所以,要保障通讯的可靠性就要由上层来付责,而TCP层则就是负责这樣的工作,确定对方一定有收到我们送过去的封包。

因此,TCP连接是属於较可靠的连接(Connection-oriented),大部份的网络应用程序皆採用TCP协议。UDP协议其实与TCP协议很类似,只是少了很多字段,也不关心封包有沒有送到对方手上。

因此,它的传输速度会比较快,但比较不可靠(Connectionless),通常用在封包遗失也沒关系的网络应用里,如视频会议、语音通讯与DNS网络名称查寻服务…等。

在视频会议时,遗失了小部份的封包,只可能影响画面中多了几个小黑点,並不影响整体的观看感受,因此这类型的应用会使用UDP协议以增加传输速度。

TCP与UDP协议皆有端口号(Port)这个字段,使得许多网络应用程序可以使用相同的TCP协议而不会发生冲突,並可依端口号来決定该交由那个应用程序来处理。

比方說。我收到一个目的端口号为80的封包,那麼代表他所要使用的协定是HTTP,欲连我的Web服务器,那麼我的作业系统会自动将封包交由Apache服务器(Web服务器的应用程序)来作对应的处理。

IP地址与端口号,我们有时会合称为Socket,因为有了IP地址与端口号,我们就能连接各种网络服务。而目的IP地址、目的端口号、来源IP位与来源端口号称为Socket Pair。




一般来說,常用的端口号会介於0至1024范围间,而实际上可用的范围是0至65535,而在1024之后的是作为系统网络连接时暂用或者是非超级用户开发网络程序时,所能佔用的端口号。


▓ 应用层




===========================================================
注意:
想获取更多的网络通讯协议的相关信息,可以参考FAQS.org网站的内容,该网站的网址为:


===========================================================





▉ 网络的设置

通过内置的网络连接设置工具能夠快速的依需求创建需要的网络连接设定值,若在Ubuntu Linux缺省的图型化操作界面,则可以点选「桌面」→「管理」→「网络」进行网络设备与连接的设置。






在标题「网络组态设置」的窗口,大家可以依需求调整缺省的网络设备与网络连接的相关设置值,其中,在「设备」分页,可以查看到於安装Ubuntu Linux的过程所预设创建的网络连接设置项目。

当要浏览Google网页时,就在浏览器的网址列直接输入Google的网址google.com.hk,此时系统便会像所指定的DNS服务器查询google.com.hk网址,以取得该网址的IP地址。

当取得IP地址时,便会回传给浏览器,浏览器便会以该IP地址进行连線,在依需求传送要浏览的数据。此时,若DNS不正常运作,或者根本沒有指定DNS服务器,则将不能正常的进行连接。

通过以上的语句,应该可以知道DNS有多麼的重要了吗? 在DNS设置分页里,必须指正确的DNS服务器才能夠让网络正常运作。

至少,必须设置一个主DNS,若公司有MIS网络管理人员,则必须向公司内部的MIS人员取得公司內部的DNS服务器IP地址或设置值。


若是个人使用,则可以设置电信公司开放使用的DNS服务器。(笔者DNS服务器就是由电信服务供应商配置的202.130.80.67,次DNS是202.130.80.68。





亦可设置备用的次DNS,当主DNS过於忙錄时,可以向次DNS进行查询。

当內部网络有多台机器时,可以通过「主机」分页,新增一组或多组的主机名称与IP地址的对应表,如此日后要连接到该台主机时,只要输入主机名称,不需要再输入IP地址就能直接连接到该台主机。






==========================================================
注意:
设置动作将会把设置的主机清单,记錄在/etc/hosts设置文件里,若其它台计算机也想使用这个配置文件,则可以复制该配置文件,就不用一再重覆的设置(适用于Linux作业系统)
===========================================================


▓ 设置局域网连接

预设在安装Ubuntu Linux系统的过程,将网络连接的设置成默认,若要依需求修改,则可以点选安装时所產生的默认值,並点选「编辑」以进行设置。

於标题为「以太网设备」窗口裡,可以查看或修改默认创建的乙太网路设置值,包括设置网络IP地址的取得方式,连接设备的名称及是否默认开机时就引导网络卡设备等...。


▓ 设定动态取得IP地址

若公司或四周的网络环境有DHCP服务器或者IP分享器,则可以设置为「在此自动分配IP地址设置」採用「DHCP」。

一般的ADSL服务是採用动态分配IP地址,则可以直接将ADSL调制解调器通过RJ-45的网络線连接至主机的网络卡上。





並且,设置使用DHCP自动取得IP地址,如此当系统被引导时,只要ADSL调制解调器(ATU-R)正常打开,则可以正常的取得IP地址,並且能夠正常的连上国际互联网。


▓ 设定静态配置IP地址

若公司沒有DHCP服务器或IP分享器,而是通过信息单位配发一台电脑一个IP地址,则必须提出申请並取得配发的专用IP地址后,再选择「靜态设置IP地址」,並依提示设置相关数据。






若所使用的ADSL宽频连接为固定式的ADSL(即至少有一组IP地址),则只要将ADSL调制解调器(ATU-R)以网络線连接至计算机主机的网络卡,並将取得的IP地址设置好,就能夠正常的连接。


▓ 使用(ADSL)拨号上网

步骤一

请在应用程式里执行「附属应用程式/终端机」命令,并如下操作:





① 输入 “sudo pppoeconf”命令,就是以管理员身份设定ADSL

② 输入目前使用者的密码。





步骤二

接着就可以开始设定ADSL

① 按Tab键 然后按<是>





步骤三

侦测ADSL数据机






步骤四

询问是否要使用通用设定.

① 按<是>






步骤五

设定ADSL的拨号帐户

① 输入ADSL的帐号

② 按确定






步骤六

设定您的 ADSL 帐号拨接号码

① 按确定






步骤七

自动新增 DNS的 IP 位址到系统的设定档中.

① 按<是>







步骤八

设定最大传输单位的大小.

① 按<是>,即是保留预设值.






步骤九

设定开机时自动连线.

① 按<是>







步骤十

马上进行连线.

① 按<是>







步骤十一

完成设定

① 按<确定>完成设定







您可以在互联网上自由飞翔了!


▓测试网络的辅助工具

当完成网络连接的设置,该怎麼知道网络连接是否正常,应该使用那种工具或指令来测试呢?若是在Ubuntu Linu预设的图型界面操作环境,则可以点选「应用程序」→「系统工具」→「网络工具」。







於标题为「网络工具」的窗口,能夠查看网络设备的状态及Ping、Tracerout、查阅...等功能测试网络是否正常与取得其它信息。







大家若想测试连接到某个网站或主机是否有反应,只要输入要测试的网站地址,再点选「Ping」即可测试。







若响应Time Out或者其它消息,则可能代表该主机的网络不正常或者对方安装了防火牆的设置,关闭ICMP封包的响应。

查询当前主机的网络状态,可以在「网络统计」分页,核选「路由表信息」或「激活网络服务」或「多播信息」项目,並点选「网络统计」钮即可取得相关的信息。







如想获得当连接某个网站(例如:)时,它是经过那些路由的转接才抵达目,则可以按Tracerout(路由追踪),在「网络地址」输入要跟踪的网址,再点选「跟踪」钮即可。







如要扫描某台主机当前所打开的端口有那些? 是否打开那些可能成为攻擊目标的端口?
可以按「扫描端口」输入要查询的主机IP地址,並点选「扫描」钮,即可取得相关的消息。







想知道gmail.com网域的邮件交換信息为何,则可以在「查阅」栏目输入「gmail.com」並且选择查询的信息模式为「Mailbox Exchange」再点选「查阅」即可取得相关信息。







想查询某个用户帐号在某台网络主机的相关信息,则在「Finger」栏,依提示输入必须的数据即可取得数据。







网站的网域名称都是必须先登记註册后,才能夠取得该网域名称的使用权,若想取得某个网域名称是否被註冊或者取得该註册者的相关信息,则可以通过Whois进行查询。

例如要查询gtalk.com网址的註冊者相关信息,则必须在「域地址」输入「gtalk.com」並点选「Whois」钮查询。







从寻找Whois数据库的结果,将查看到gtalk.com的註册信息,包括註冊日期,有效日期及上次更新的时间…等。


To be continued.......
请继续参阅....

编者:TOM


出处:南方Linux
阅读(430) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~