网络互连与互联网(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第二节 网桥

网桥提供了一种最简单的将局域网网段连接成可维护、高可靠性扩展网络的方法。网桥工作在OSI参考模型中数据链路层的MAC子层,它监听所有流经它所连接的网段的数据,检查每个数据帧的目的网卡地址,并决定是否将该帧送往网络的其他部分。现在,网桥已经不像以前那样广泛使用了,但它的工作原理仍然支撑着网络互连。网桥的功能常常被捆绑在交换机、路由器中,因此了解网桥和桥接的工作原理仍然是很重要的。

学习目标

▶掌握透明桥接方法和源路由桥接方法;

▶了解透明桥接和源路由桥接之间的不同。

关键知识点

▶网桥只转发其目的地址位于其他网段的数据帧,从而增加了网络的有效吞吐量。

▶终端站点并不知道透明网桥的存在;在源路由桥接中,所有环上的站点都建立和维护它们自己的路由表。

利用网桥互连异种局域网

在本丛书的《局域网(第2版)》一书中,已经比较详细地介绍了网桥的工作原理。网桥是一种在数据链路层实现局域网互连的存储转发设备。局域网网络结构的差异性体现在介质访问控制(MAC)协议上,因而网桥被广泛用于异种局域网的互连。

最基本的网桥用来连接两个或更多的局域网网段。网桥和每个局域网网段之间的接口称为端口,连接到每个端口的局域网称为一个网段,如图2.8所示。

图2.8 网桥端口和网段

网桥监听它连接的每个网段上所传输的数据,它将每个数据帧的地址与自身软件维护的一个地址表进行比较。当一个数据帧的目的设备地址和它的发送设备地址是在两个不同的网段时,网桥就将该帧转发到和目的网段相连的端口。由于只转发目的设备地址在其他网段的数据帧,网桥增加了整个网络吞吐量的有效性。

广域网网桥(半网桥)也能通过电信链路连接远程网络。广域网网桥只转发那些目的地址在远程网络的数据帧,这样就保证了在那些速率较低、价格昂贵的租用线路上的流量能够相对小一些。

网桥的桥接方式

网桥最重要的部分是它用来构建和维护网桥表的软件。没有这个软件,网络管理员就必须人工建立和维护网桥表。按照创建网桥表的方法或算法进行分类,网桥的桥接方法可分为透明桥接、源路由桥接和源路由透明桥接等方式。

透明桥接

透明网桥通常用于连接以太网网段,也可以用于连接令牌环网和FDDI网络,它使得数据帧可以在两个使用同样MAC层协议的网段之间来回传输。之所以把这种类型的桥接称为透明桥接,是因为源站点向目的站点传输数据帧就好像它们在同一个物理网段上一样,终端站点似乎不知道在网络中存在网桥。

透明网桥不允许转发含有错误的数据帧。它们必须检验校验和,但不会尝试再生该帧来生成一个正确的校验和;因为它们并不知道错误发生在数据帧的什么位置。因此,如果一个网桥检测到了一个错误,就丢弃该帧。

透明网桥具有帧过滤和转发、地址学习、活动环路(生成树算法)等很有用的特性。

1.帧过滤和转发

桥接的一个主要目的是防止一个网段自身的内部数据流到其他网段。图2.9示出了一个网桥转发将要送往主机E的数据帧,而忽略将要发往主机A的数据帧。

图2.9 帧的过滤和转发

网桥是怎么知道哪一帧该转发,哪一帧该忽略的呢?网桥内有一个通过每个端口所能达到的硬件地址数据库(网桥表),网桥将每个帧的目的地址和自身的地址数据库进行比较:如果目的地址和源地址在相同的网段,它就将该帧过滤掉,即丢弃该帧;如果目的地址和源地址在不同的网段,就会查出哪个端口和目的地址相关,并将该帧转发送到相应的端口;如果目的地址不在地址数据库中,就将该帧发往除接收端口以外的所有端口。这将保证该帧在下一步可以被正确地送往它的目的地,当然也可能下一步不是最终的一步。

2.地址学习

当网桥接收到一个数据帧时,它将其源地址和自身的地址数据库进行比较。如果源地址不在数据库中,网桥会将它加入,同时加入的还有接收该数据帧的端口号。通过这种方式,网桥学习并知道了网络中设备的地址。因为网桥具有这种学习能力,新的设备就可以添加到网络中而不必再花人工去配置每个网桥。图2.10示出了一个网桥经过学习并已知道所有连接到其端口的MAC地址。

图2.10 网桥学习

3.学习、过滤和转发实例

图2.11示出了网桥是如何使用其地址数据库去控制网络流量的。

图2.11 学习、过滤和转发实例

假定站点A和站点B是网段1中的新设备。开始时,站点A向站点B发送一个数据帧,网桥检测到站点A的网络地址不在地址数据库中,于是将其加入网段1的地址数据库中。又由于网桥并不知道站点B的网络地址,所以它将该帧转发往网段2。与此同时,由于和站点A处于同一个网段中,站点B也收到该帧。

当站点B向站点A回送一个数据帧时,网桥检测到站点B的网络地址不在地址数据库中,于是将其加入地址数据库中。然后,网桥在地址数据库中查找站点A的地址,得知站点A也在网段1中,于是过滤掉站点B的回应帧,不将其转发往网段2,如图2.12所示。当站点A或站点B向站点E发送数据帧时,网桥由地址数据库知道站点E在网段2中,于是将该帧转发往网段2。

图2.12 网桥过滤

学习、过滤和转发功能依赖于网络中任何两个设备之间有且只有一条路径。在简单的拓扑结构中,保证两个设备之间只有一条通路相对简单;但是,随着互联网络变得更大、更复杂,不经意在两个设备之间创建多条路径或“活动环路”的情况也在急剧地增加。

4.活动环路(生成树算法)

当网络中的网桥数量增多时可能带来环路,这时可能使得网桥的两个端口都会收到同样的源MAC地址,从而造成互相转发,甚至无限次地循环发送,使网桥失去作用并引发很大问题。图2.13示出了一个包含活动环路的拓扑结构。每次站点A向站点E发送数据帧时,每个网桥都要发送一个该帧的样本,导致两个相同帧在互连的网络中无限次地循环传送。活动环路可能为桥接和网络带来严重的问题,因为该环路会不必要地复制数据帧,而这些多余的流量可能会严重降低网络的性能。

图2.13 活动环路

为了解决活动环路问题,借助图论中提取连通图生成树的简单算法,可通过阻塞一些网桥的端口来消除环路。该解决方法就是生成树算法(STA),它已经成为网桥功能的一个基本组成部分,但这会使网络的延迟增加。

生成树是一系列经由网络设备到设备的路径,其网络中任何两个设备之间有且只有一条路径。STA通过网桥和网桥之间的一系列协商构建出一个生成树。这些协商决定哪些路径可以用于传输,哪些路径将至少是暂时不可用的。协商的结果是,每个网桥都有一个端口被置于转发状态,其他端口则被置于阻塞状态。该过程将保证网络中任何两个设备之间只有一条通路,并可以防止出现任何形式的活动环路。

换句话说,通过不使用某些路径,也就是将一些冗余的路径置于阻塞模式,生成树算法创建了一个逻辑上无环路的网络拓扑结构。在图2.14中,左图显示了一个包含环路的网络结构,右图显示了如何在该网络结构中放置一个生成树来消除环路。一个网桥被选作根网桥,并开始协商消除冗余的路径。

图2.14 生成树的例子

STA还可提供更多的功能,如果因为某种原因使独一无二的路径不通了,其中的某些网桥可以激活阻塞的端口来创建新的生成树。这样,STA允许使用网桥的互联网络中含有一些不会产生与活动环路相关的问题的冗余路径。STA的这一特性使得网络在某个网桥或某段网线不通的情况下可以迅速自动恢复。

生成树算法(STA)如图2.15所示。如果没有STA,活动环路就会在公司局域网、局域网A和局域网B之间出现;使用STA后,56kb/s的链路被阻塞了,因此只有T1链路可以使用。如果某条T1链路不通,STA则会自动激活56kb/s链路。

图2.15 生成树算法

STA可以解决很多问题。它可以通过桥接来创建一个广域的互联网络。如果在网络的长距离部分存在一条活动环路,STA会通过阻塞其中的一条或多条来消除环路。即使一条链路被阻塞了,物理连接仍然完好地存在。网络管理员可能会发现他们在为不能使用的长距离线路付费,因为这些线路被STA置为阻塞了。因此,如果网络管理员要使用网桥创建广域网,必须确保在租用的电信线路上没有活动环路。

源路由桥接

源路由桥接允许一个环路上的站点(结点)通过网桥与其他环路上的结点通信。通过源路由桥接方法,每个环上的站点都可以收集和维护向其他环上的站点发送帧所必需的路由信息。

1.源路由桥接的工作过程

每个环上的源站点都要动态地决定和维护到达环上的目的站点的路由信息。简单地说,路由就是当数据帧通过多环令牌环局域网时,从源站点到目的站点的传输路径。在一个环上,源站点在向远程环上的目的站点发送帧之前,必须首先决定是否有一条或多条到达目的站点的路由。

环上的源站点通过发送一种特殊的包含目的结点逻辑地址的“探测帧”(Discovery Frame)来请求该目的站点的硬件地址。每个源路由网桥将“探测帧”转发到所有的端口,在整个多环网络中扩散该地址请求。

当目的结点收到“探测帧”时,发送一个包含自身硬件地址的应答帧。每个转发该应答帧的源路由网桥都更新该帧,使得该帧中包含路由中经过的每个环的标号。当应答帧回到源站点时,该帧包含了从源站点到目的站点的完整的路径记录。

如果有超过一条的路径,源站点将查看哪个应答帧包含最少的经由中间环的跳步数。之后源站点用该最短路径路由更新自身的路由表。每次源站点向目的站点发送帧时,它都将完整的路由信息放在该帧的目的地址中。图2.16示出了站点A的路由表。采用这种方法,最短路径路由有可能不会被采纳。

图2.16 路由表

2.使用源路由网桥进行网络互连

源路由网桥可以连接不同速率的环网。例如,一个网桥可以连接速率为4Mb/s或16Mb/s的多个环网。

网桥可以克服令牌环网所允许的最大站点数的限制。例如,在一个使用3类UTP的4Mb/s单个环网上最多允许72个站点,16Mb/s的单个环网上最多允许260个站点。通过安装另外一个环网,并将它和原来的环网用网桥连接起来,就可以克服这种最大结点数的限制。这种方法有效地增加了整个令牌环网的结点数,而单个环网的站点数仍可保持在最大站点数限制下。

为了能够提供容错功能,可以使用并列的源路由网桥来连接环网网段。这样,如果一个网桥出现故障,并行的网桥就可以自动维护其连接,为两个环网之间的数据传输提供一条可替换的路由。在这种情况下,需要发送一系列新的“探测帧”来确定新路由。

源路由透明桥接

虽然透明桥接具有许多优点,很多网络仍然使用源路由桥接。源路由透明(SRT)网桥提供了一种连接,使得这两种类型的桥接网络可以共同存在于同一个互联网络之中。

顾名思义,源路由透明网桥既有源路由网桥的功能也有透明网桥的功能。如果该网桥收到了一个带有源路由信息的帧,它会执行源路由桥接的功能;同样,如果收到一个不携带源路由信息的帧,它会执行透明桥接的功能。

当将源路由透明网桥和透明网桥在同一个网络中一起使用时,会出现一个严重的问题。当一个源路由站点使用源路由桥接来探测路由时,它可能会努力去找到一条优于使用生成树和透明帧的到达目的路由。如果只有部分网桥是源路由透明网桥,并且其他的网桥是透明网桥,那么源路由帧只能通过源路由透明网桥。依赖于源路由透明网桥的数目和位置,最佳的源路由路径可能很明显地劣于使用透明网桥和生成树的路由。

练习

1.透明桥接需要网络管理员为该功能配置结点。判断正误。

2.透明桥接用来连接以太局域网网段和令牌环局域网网段。判断正误。

3.生成树算法是用来防止生成活动环路的。判断正误。

4.包含做转发决定所需的信息的网桥表,是由网桥软件自动生成的。判断正误。

5.源路由桥接路由对于正在与其他结点通信的结点来说是透明的。判断正误。

6.根据其桥接算法,源路由桥接具有减少流量的优点。判断正误。

7.简要解释术语“学习”“过滤”和“转发”。

8.简述透明桥接和源路由桥接之间的3个不同之处。

补充练习

1.使用Internet作为调查研究工具,讨论在哪儿可以发现:(1)透明网桥;(2)源路由网桥。然后总结讨论结果。

2.使用Web,查找生成树算法(IEEE802.1)的信息。