网络技术发展到今天,已不再局限在一个小的LAN中了。在日常组网中,碰到最多的就是将现有的网络互联起来,实现最大限度的资源共享、信息互通。将不同的网络互联,第一个碰到的问题就是采用什么样的协议。TCP/IP发展到目前为止,已成为一个最为广泛使用的网络通用协议。被广大计算机使用者所认可。采用TCP/IP,可以方便地进行不同网络种类、不同操作系统的网络间的互联,同时又可以方便地联入Internet。
在TCP/IP网络互联中,不同网络的互联往往要使用到路由器。传统的基于硬件的路由器价格往往较高,不为一般的单位所接受,而且在联网过程中,常碰到的问题都是将两个或两个以的的局域网互联,也用不着使用昂贵的专用路由器。实际上,有好多网络操作系统本身就提供路由功能,只不过是基于软件的路由而已,如Windows NT的静态路由系统、NOVELL的多协议路由MPR等基于软件的路由技术。
基于软件的路由,功能上肯定不如基于硬件的专用路由器。但它已具备了路由器的基本功能。可以实现基本的路由功能。采用基于软件的路由,对于小型网络间的互联是比较理想的。下面以网络间的互联为例来说明基于软件的路由技术。
众所周知,在TCP/IP协议中,IP协议(Internet Protocol)提供编址和路由功能。在网络上发送数据时,数据首先被打包,成为一个个IP数据包。IP允许数据包在网络上从一个地方传到另一个地方。数据在网络中的传输就是通过一种方式进行的。在一个以太网内,把报文从一台机器发送到另一台机器很容易,因为以太网是一个基于广播方式的网络,任何一台机器上发出的报文立即就会被网上的所有机器监听到,只有同报文中地址相同的那台机器才会发出响应,别的机器将忽略此信息。由此可见,在同一网络内部,每一个报文都无须选择路径,就可以直接达到它的目的地。但是,在两个或两个以上的网络互联时,情况就大不一样了。如图1所示,处在网络Counter中的某一台机器要向处在网络Computer Center中的一台机器发送信息时,如果没有从网络Counter到网络Computer Center的路由,则信息是根本无法发到的。
从上述分析可以知道:既然在同一个网络内信息可以畅通传送,那么如果有这样一台机器就好了:一台既属于网络Counter又属于网络Computer Center的机器。通过它,两个不同的网络就可以相互传递信息了。实际上,在Windows NT中,IP路由是IP具有的功能。NT允许将一台机器配制成多宿主机。也即在同一台计算机上,同时安装两块或多块网卡,每一块网卡连接一个网络。由这一台机器作为路由器,在两个网络之间进行IP包的路由。此路由为静态路由,静态路由器要求手工构造和更新路由表。
在各网络已建成的情况下,建立NT路由器,其建立过程如下:
1、在同一台Windows NT机器中安装两块网卡,网卡可以采用任何NT所支持的网卡。Windows NT可以是Windows NT Server也可以是Windows NT Workstation,版本最好是3.51或更高的版本。本文基于WindowsNTServer4.0中文版。
2、进入控制面板,安装TCP/IP协议
3、配置网卡:为每一块网卡配置一个IP地址,两个IP地址分别属于不同的网络内的IP地址。
4、设置Windows NT的IP路由功能为Enable。
5、确定后重新启动计算机。
这样,NT路由器就可以在两网络间进行工作了。
网络结构如图1所示:
NT路由器工作过程如下:
处在Counter网络中的某一台计算机Counter01,要给处在Computer Center网络中的某一台计算机CC01发送信息。它通过广播方式查询CC01是否同自己在同一个网络内,如果在同一网内,则信息包由Counter1传至CC01,IP包在同一网络中传送。如果通过查询,发现CC01不在同一网络内,发出点Counter1发现自己根本不知道如何到达CC01,在这种情况下,信息包被送至缺省网关:ROUTER1(在组网时,必须事先将网络Counter中的每一台机器的缺省路由器设为ROUTER1,IP地址为ROUTER1的IP地址。对于网络内的每一台机器而言,缺省路由器实际上就是这样的一个机器,如果发出信息点找不到目的地址时,它就将信息发给缺省路由器,之后由路由器为它代理发送),ROUTER1接到信息后,由在它上运行的IP软件对信息进行检查,通过检查包内容,可以确定IP包中的源地址和目标地址,如果发现IP包中的源IP地址同第一块网卡的IP地址处在同一网络内,目标IP地址同第二块网卡在同一网络内,它就将信息通过它的第二块网卡发送出去,这样信息便传至网络Computer Center中。信息包一旦进入网络Computer Center,处在该网络中的目的计算机监听到信息包是送给自己的,于是它便接收信息包,将它们重组。
以上是NT路由器在两个网络内工作的情况,它的确可以很好地胜任它的任务,但是如果有三个或三个以上的网络,上面所提到的方法就不能胜任了。
请看以下的网络结构:
ROUTER1路由器只能把消息192.168.101传到网络168.168,但不能将信息从网络192.168.101传至网络Admin(195.125.96)。不过不要紧,NT中的Route命令可以告诉路由器如何到达AdminCenter,对ROUTER1及ROUTER2来说,它们都同时属于Computer Center这一网络,因此要使路由器能够通过ComputerCenter网络(193.169.101)发到AdminCenter网络(195.125.96),只要告诉ROUNTER1网络Computer Center中ROUTER2的网卡地址即可。
命令格式如下:
C:ιWinntΛrouteadd195.125.96168.168.100.100
这一命令将向ROUTER1的路由表中添加路由信息,其意为:把任何目的为195.125.96.xxx的IP包发到168.168.100.100上。
同样,对于网络AdminCenter,路由器ROUTER2也不知道如何到达Counter网络(192.168.101),也要告诉它如何到达。
命令格式如下:
C:ιWinntΛrouteadd192.168.101168.168.100.101
功能同上。
实际上,我们可以通过建立静态路由表来实现以上功能,在ROUTER1、ROUTER2上建立静态路由表,静态路由表要求有一个目标和一个网关,目标是目标网络的网络ID或网络名,网关是与目标网络相连的IP地址或宿主机名字。其内容如下:
对于ROUTER1,要用网络Admin的网络ID及其缺省网关的IP地址来构造路由表。网关是与目标网络相连的计算机的IP地址或宿主机名。其静态路由表如下:
目标网络网关
195.125.96168.168.100.100
AdminROUTER2
对于ROUTER2,要用网络Counter的网络ID及其缺省网关的IP地址来构造路由表。网关是与目标网络相连的计算机的IP地址或宿主机名。
其静态路由表如下:
目标网络网关
192.168.101168.168.100.101
CounterROUTER1
相应的NETWORKS文件内容如下:
#WindowsNT4.0NetworksContent
Counter192.168.101
Admin195.125.96
Loopback127
……………
ComputerCenter168.168
对应的HOSTS文件内容如下:
192.168.101.1COUNTER1counter1.saturn.com
168.168.100.1CC01cc01.saturn.com
…………
#……
至此,三个网络间就可以通过路由进行信息传递了。
对于图2,有人说还可以在Counter同AdminCenter之间再配置一个路由器。的确如此,如果在Counter同Admin之间再配置一个路由器ROUTER3,则对每一网络中的机器来说,各台计算机之间进行通过的路径就多了一条,使得在一条路径因拥挤或意外故障不畅通时,它们之间仍然可以照常通讯。这就要求网络中的每一台计算机配置成使用多个网关的情形。