电脑技术学习

路由器配置新手上路----桥接与路由

dn001

  计算机在一个网络中发送信息时,会将信息分割成一些小的片断,称为“数据包”或者“数据封”(Datagram),这些包都包含了目标地址。所以在它们进入网络后,能到达正确的目标计算机。若目标计算机位于另一个网络,就必须通过一个路由器,将其转发(路由选择)至正确的网络。那么路由器是如何做的呢?它会检查数据包中包含的地址,判定应将这些包些向哪个网络。
    要了解路由器的工作原理,我们先得了解一些桥接与路由的基础知识。
   
  图1
    上图展示的是一张路由器工作流程图,通过它可了解一个路由器在进行路由选择或桥接时,它的一部分工作原理。我们将稍微深入地探讨这些步骤,但要注重的是,我们的讨论仍然非常简略,并末考虑到所有的可能性。
  
    路由器预备处理一条消息之前,必须通过它的某个接口,以帧的形式,接收到这条消息(1号框)。假如是由LAN接口接收到帧,路由器就会检查帧的目标MAC地址,判定这个帧是否发给本网的某个主机(2号框)。假如帧确实应该进入本网,同时其中封装数据的协议已在路由器上配置好了,路由器就会尝试对其进行路由选择(3号框)。假如这个帧不该由本网接收,同时已在路由器上配置好了桥接功能(4号框),而且路由器上尚未配置好封装数据采用的协议(6号框),路由器就会试着对其进行桥接处理。如某个主机正在运行路由的协议,并希望从另一个网络的另一个主机得到一条消息,主机通常会将帧发给路由器,今其路由出去。反之,假若主机正在运行的是一种桥接过的协议,那么主机就不会注重到一个网桥的存在。所以,主机永远不会将一个帧直接发给网桥。
    所谓“桥接”,是指依据网络消息的第2层头内的一个地址对其进行转发的过程。网间网操作系统支持多种类型的桥接方式:
  --透明桥接。
  --封装桥接。
  --源路由桥接。
  --源路由透明桥接。
  --源路由转换桥接。
  为了理解桥接的过程,首先让我们简要讨论一下透明桥接。之所以认为这种桥接是“透明”的,是由于主机同一个路由器的接口LAN连接之后,在那些主机的眼中,是“瞧不见”那个路由器的。注重在上图的4号框中,只有在路由器收到一个并非发给自己(本网)的帧时,才会考虑桥接选项。假如路由器收到一个并非发结自己的帧,而且自己没有配置桥接功能,就简单地将那个帧“扔掉”(上图7号框)。进行透明桥接的路由器(网桥)具有下述功能:
  --调查主机位置。
  --根据第2层地址,对帧进行扩散、转发以及过滤处理。
    网桥会处理所有接口上的所有帧,并实时调查每个主机的位置。若网桥在某个接口上收到一个帧,就会在其桥接表内置入一个条目(人口),显示出始发主机和接收到帧的那个接口的MAC地址。利用这种技术,网桥就能完善自己的桥按表,以便正确决定路由。网桥不断把握每个主机的位置时,它会执行三个F,即Flooding(扩散)、Forwarding(转发)及Filtering(过滤)。
    网桥收到一个帧时,若发现其中的MAC地址不在自己的桥接表里,就会将这个帧扩散到每个接口(当然,最初接收的那个接口除外),如上图的11号框所示。采取这样的做法,有望使帧抵达自己的目的地,而无论目标主机的位置如何。目标主机对源主机作出回应以后,网桥就会更新自己的桥接表,加入新的位置。
   
  图2展示了一条消息从主机l传到主机2的过程。封装级与头进行了最大程度的简化,以便我们将重点放在网络消息的定址,以及它对桥接的影响上面。MAC地址表达成十六进制数位,从A到D。主机1将一个帧发给主机2时,网桥发现主机2的MAC地址巳在桥接表中,所以假如目标接口与源接口不同,就会将帧转发到适当的接口(图1的15号框)。图2显示出不同的接收与发送接口。
    帧经网桥转发或过滤处理后,会在它们收到后被正确地发送出去。在图2中,自与主机2连接的那个接口,帧被原封不动地转发出去。注重网桥并未专门定址,它是“透明”的。主机1根本不知道那里存在一个网桥。也要注重的是,两个LAN的网络地址都是相同的。两个物理LAN被作为一个统一的逻辑LAN对待。
    现在,假定同一LAN内的两个主机需要通信,网桥了解到它们都来自相同的接口。此时,网桥会将它从主机会话中收到的帧过滤掉(图1的14号框)。换言之,网桥不会将帧传给其他接口。这样一来,就可保证会话通信任本地进行,防止本地会话干扰其他I‘AN网段上进行的会话。
    当然,桥接也有缺点。首次引用一个MAC地址时,网桥肯定会对其进行扩散处理。但这还不是最严重的;最严重的问题是,网桥也会扩散所有广播帧及所有多播帧。假若一个网络应用严重依靠广播或多播定址,就会造成可观的网络通信负担,因为所有广播及多播帧都会出现于所有LAN网段上。
    路由
    所谓“路由”、“路由选择”、或者“路由发送”(Routing),是指依据网络消息之第3层头内的一个地址,对消息进行转发的过程。然而,除了简单地读取那个第3层地址之外,此时要做的事情还很多。现在,让我们逐步探讨一个路由器转发网络消息时经历的各个基本步骤。
  
  在图3中,我们展示了一条消息从主机1传到主机2的过程。封装的级别与头均进行了最大程度的简化,使我们能将重点放在网络消息的定址,以及它对路由的影响上。第2层地址用自A到D的十六进制数位表示。要记住的是,MAC地址相当于在LAN内漫游的一个“航标”。假如主机想从同一个LAN内的另一个主机获取消息,那么始发主机就会将目标主机的MAC地址放在帧头内。否则,始发主机就会将消息发给一个路由器,以便路由到目标网络中去。路由器收到直接发给自己某个接口的一个帧时,就知道自己应当试着对帧内的消息进行路由。注重在图3中,由主机1发出的帧的目标MAC地址是B,亦即路由器的地址。帧内封装的是一个第3层头,其中包含了目标网络和目标主机地址。
  
    若消息预备交给路由器处理,路由器必须先知道主机采用的是何种通信协议,才能决定如何对消息加以控制。在1.1.2小节中,我们已经提到过,每一层的头都必须包含一些值,指出下一层封装的是什么东西。路由器必须检查帧头的这些值,判定帧内封装的是何种协议。
    在帧头内,这要么是一个“协议类型”字段,要么是一个“服务接入点”(Service Access Point,SAP)字段。苦协议类型或SAP字段指出帧内包含的数据适用于正在由路由器路由的一种协议(图1的3号框),路由器就会删除帧头,开始处理剩下的东西——用一个第3层头起始的数据包(图l的4,5号框)。在路由器上,针对其路由的每种协议,都运行着一个独立的程序。我们将这种程序称为“路由进程”(Routing ProCss)。
  路由进程会检查包头内的目标网络地址(这是第3层),并在一张非凡的表格里查找相符的记录(条目或入口)。这张表格就是“路由表”(Routing Table),如图1的9号框所示。针对路由的每一种协议,路由器都会为其设置一张路由表。在路由表内,包含了路由器已知全部网络及其方向的一个列表。若路由器未在路由表内发现与目标网络地址相符的一个条目,就会将这个数据包丢弃(图1的8号框)。反之,假若路由器找到了与目标网络地址相符的一个表格条目,就会利用表中提供的信息,判定将数据包转发到哪个接口。
    由于消息在网络中必须以“帧”的形式出现,所以路由器现在必须对包加以封装,亲自创建一个帧。换句话说,路由器必须在包内放置一个新的帧头和帧尾(图1。4,12号框)。注重在图1中,包本身的内容并不改变。由于存在着多种不同的帧头格式,所以路由器要根据在路由表中找到的接口名以及封装方式,来决定包的新帧头格式。
    在图3中,数据包打算转发到一个LAN接口。所以,路由器必须在帧头内设置目标及源MAC地址。在预备经由LAN自路由器传到主机2的新帧内, 目标MAC地址是D,即主机2的地址;而源MAC地址是C,即路由器负责发送的接口。 也许会觉得希奇,路由器怎样来了解其他网络的情况,从而完善自己的路由表呢?当然,路由表是不能凭空捏造的。事实上,路由器有三种方式可以了解到目标网络的情况:
    1)路由器直接同网络相连。
    2)我们告诉路由器有关网络的情况。
    3)一个路由器从其他路由器那儿了解网络的情况。
  路由器直连的网络会在路由表中自动出现,用不着我们操心。而路由器从我们(操作人员)处了解到的网络称为“静态路由”,其实就是由我们在路由表中人工输入的一些条目。我们告诉路由器数据包的路由方向,直至到达一个目标网络。
    通过正确的配置,路由器相互间可以通信,共享与网络有关的资料。也就是说,路由器相互间可以“交谈”。通过配置路由器,使其能从其他路由器那里了解网络情况以后,路由表的构建便不用我们操心,现在将完全交由路由器负责。我们的工作只是监视路由表的变化.
    确定各个路由器没有“混乱”。由路由器使用并共享网络信息的协议称为“路由协议”(Routing Protocol)。而那些负责传送真正的数据,而且已由路由器“路由’’的协议,我们称其为“路由的协议”(Routed Protocol)。对于可在路由器上配置的每种“路由的协议”(如IP),它们至少都有一个对应的“路由协议”(如RIP和OSPF)。路由协议的配置是10S配置中一个相当有趣的方面。
    根据需要,可运行任意数量的“路由的协议”,只要路由器够“劲”,而且内存足够多。对于正在运行的每一种路由的协议,I0S都会为其创建一张路由表。路由协议共有两种主要类型:
    1)距离方位。
    2)链接状态。
    至于网络中具体采用哪一种则取决于多方面的因素,包括网络需求、业务标准甚至个人的喜好等等。关于它们的具体内容,这里就不细说了,你可以从相关的书上找到很多这方面的资料。