当前位置:文档之家› 网关技术基础教程

网关技术基础教程

网关曾经是很容易理解的概念。

在早期的因特网中,术语网关即指路由器。

路由器是网络中超越本地网络的标记,这个走向未知的“大门”曾经、现在仍然用于计算路由并把分组数据转发到源始网络之外的部分,因此,它被认为是通向因特网的大门。

随着时间的推移,路由器不再神奇,公共的基于IP的广域网的出现和成熟促进了路由器的成长。

现在路由功能也能由主机和交换集线器来行使,网关不再是神秘的概念。

现在,路由器变成了多功能的网络设备,它能将局域网分割成若干网段、互连私有广域网中相关的局域网以及将各广域网互连而形成了因特网,这样路由器就失去了原有的网关概念。

然而术语网关仍然沿用了下来,它不断地应用到多种不同的功能中,定义网关已经不再是件容易的事。

目前,主要有三种网关:协议网关应用网关安全网关唯一保留的通用意义是作为两个不同的域或系统间中介的网关,要克服的差异本质决定了需要的网关类型。

一、协议网关协议网关通常在使用不同协议的网络区域间做协议转换。

这一转换过程可以发生在OSI参考模型的第2层、第3层或2、3层之间。

但是有两种协议网关不提供转换的功能:安全网关和管道。

由于两个互连的网络区域的逻辑差异,安全网关是两个技术上相似的网络区域间的必要中介。

如私有广域网和公有的因特网。

这一特例在后续的❽组合过滤网关❾中讨论,此部分中集中于实行物理的协议转换的协议网关。

1、管道网关管道是通过不兼容的网络区域传输数据的比较通用的技术。

数据分组被封装在可以被传输网络识别的帧中,到达目的地时,接收主机解开封装,把封装信息丢弃,这样分组就被恢复到了原先的格式。

例如在下图中,IPv4数据由路由器A封装在IPv6分组中,通过IPv6网络传递给一个IPv4主机,路由器解开IPv6的封装,把还原的IPv4数据传递给目的主机。

管道技术只能用于3层协议,从SNA到IPv6。

虽然管道技术有能够克服特定网络拓扑限制的优点,它也有缺点。

管道的本质可以隐藏不该接受的分组,简单来说,管道1 2∙下一页可以通过封装来攻破防火墙,把本该过滤掉的数据传给私有的网络区域。

2、专用网关很多的专用网关能够在传统的大型机系统和迅速发展的分布式处理系统间建立桥梁。

典型的专用网关用于把基于PC的客户端连到局域网边缘的转换器。

该转换器通过X.25网络提供对大型机系统的访问。

下图演示了从PC客户端到网关的过程,网关将IP数据通过X.25广域网传送给大型机。

这些网关通常是需要安装在连接到局域网的计算机上的便宜、单功能的电路板,这使其价格很低且很容易升级。

在上图的例子中,该单功能的网关将大型机时代的硬连线的终端和终端服务器升级为PC机和局域网。

3、2层协议网关2层协议网关提供局域网到局域网的转换,它们通常被称为翻译网桥而不是协议网关。

在使用不同帧类型或时钟频率的局域网间互连可能就需要这种转换。

(1)帧格式差异IEEE802兼容的局域网共享公共的介质访问层,但是它们的帧结构和介质访问机制使它们不能直接互通。

如下图:翻译网桥利用了2层的共同点,如MAC地址,提供帧结构不同部分的动态翻译,使它们的互通成为了可能。

第一代局域网需要独立的设备来提供翻译网桥,如今的多协议交换集线器通常提供高带宽主干,在不同帧类型间可作为翻译网桥,如下图所示:现在翻译网桥的幕后性质使这种协议转换变得模糊,独立的翻译设备不再需要,多功能交换集线器天生就具有2层协议转换网关的功能。

替代使用仅涉及2层的设备如翻译网桥或多协议交换集线器的另一种选择是使用3层设备:路由器。

长期以来路由器就是局域网主干的重要组成部分,见下图。

如果路由器用于互连局域网和广域网,它们通常都支持标准的局域网接口,经过适当的配置,路由器很容易提供不同帧类型的翻译。

这种方案的缺点是如果使用3层设备路由器需要表查询,这是软件功能,而象交换机和集线器等2层设备的功能由硬件来实现,从而可以运行得更快(2)传输率差异很多过去的局域网技术已经提升了传输速率,例如,IEEE 802.3以太网现在有10Mbps、100Mbps和1bps的版本,它们的帧结构是相同的,主要的区别在于物理层以及介质访问机制,在各种区别中,传输速率是最明显的差异。

令牌环网也提升了传输速率,早期版本工作在4Mbps速率下,现在的版本速率为16Mbps,100Mbps的FDDI是直接从令牌环发展来的,通常用作令牌环网的主干。

这些仅有时钟频率不同的局域网技术需要一种机制在两个其它方面都兼容的局域网间提供缓冲的接口,现今的多协议、高带宽的交换集线器提供了能够缓冲速率差异的健壮的背板,如下图:如今的多协议局域网可以为同一局域网技术的不同速率版本提供内部速率缓冲,还可以为不同的802兼容的局域网提供2层帧转换。

路由器也可以做速率差异的缓冲工作,它们相对于交换集线器的长处是它们的内存是可扩展的。

其内存缓存进入和流出分组到一定程度以决定是否有相应的访问列表(过滤)要应用,以及决定下一跳,该内存还可以用于缓存可能存在于各种网络拓扑间的速率差异,如下图:四、两种网桥1、透明网桥第一种802网桥是透明网桥(transparent bridge)或生成树网桥(spanning tree bridge)。

支持这种设计的人首要关心的是完全透明。

按照他们的观点,装有多个LAN的单位在买回IEEE标准网桥之后,只需把连接插头插入网桥,就万事大吉。

不需要改动硬件和软件,无需设置地址开关,无需装入路由表或参数。

总之什么也不干,只须插入电缆就完事,现有LAN的运行完全不受网桥的任何影响。

这真是不可思议,他们最终成功了。

透明网桥以混杂方式工作,它接收与之连接的所有LAN传送的每一帧。

当一帧到达时,网桥必须决定将其丢弃还是转发。

如果要转发,则必须决定发往哪个LAN。

这需要通过查询网桥中一张大型散列表里的目的地址而作出决定。

该表可列出每个可能的目的地,以及它属于哪一条输出线路(LAN)。

在插入网桥之初,所有的散列表均为空。

由于网桥不知道任何目的地的位置,因而采用扩散算法(flooding algorithm):把每个到来的、目的地不明的帧输出到连在此网桥的所有LAN中(除了发送该帧的LAN)。

随着时间的推移,网桥将了解每个目的地的位置。

一旦知道了目的地位置,发往该处的帧就只放到适当的LAN上,而不再散发。

透明网桥采用的算法是逆向学习法(backward learning)。

网桥按混杂的方式工作,故它能看见所连接的任一LAN 上传送的帧。

查看源地址即可知道在哪个LAN上可访问哪台机器,于是在散列表中添上一项。

当计算机和网桥加电、断电或迁移时,网络的拓扑结构会随之改变。

为了处理动态拓扑问题,每当增加散列表项时,均在该项中注明帧的到达时间。

每当目的地已在表中的帧到达时,将以当前时间更新该项。

这样,从表中每项的时间即可知道该机器最后帧到来的时间。

网桥中有一个进程定期地扫描散列表,清除时间早于当前时间若干分钟的全部表项。

于是,如果从LAN上取下一台计算机,并在别处重新连到LAN上的话,那么在几分钟内,它即可重新开始正常工作而无须人工干预。

这个算法同时也意味着,如果机器在几分钟内无动作,那么发给它的帧将不得不散发,一直到它自己发送出一帧为止。

到达帧的路由选择过程取决于发送的LAN(源LAN)和目的地所在的LAN(目的LAN),如下所示:1、如果源LAN和目的LAN相同,则丢弃该帧。

2、如果源LAN和目的LAN不同,则转发该帧。

3、如果目的LAN未知,则进行扩散。

为了提高可靠性,有人在LAN之间设置了并行的两个或多个网桥,但是,这种配置引起了另外一些问题,因为在拓扑结构中产生了回路,可能引发无限循环。

其解决方法就是下面要讲的生成树(spanning tree)算法。

生成树网桥解决上面所说的无限循环问题的方法是让网桥相互通信,并用一棵到达每个LAN的生成树覆盖实际的拓扑结构。

使用生成树,可以确保任两个LAN之间只有唯一一条路径。

一旦网桥商定好生成树,LAN间的所有传送都遵从此生成树。

由于从每个源到每个目的地只有唯一的路径,故不可能再有循环。

为了建造生成树,首先必须选出一个网桥作为生成树的根。

实现的方法是每个网桥广播其序列号(该序列号由厂家设置并保证全球唯一),选序列号最小的网桥作为根。

接着,按根到每个网桥的最短路径来构造生成树。

如果某个网桥或LAN故障,则重新计算。

网桥通过BPDU(Bridge Protocol Data Unit)互相通信,在网桥做出配置自己的决定前,每个网桥和每个端口需要下列配置数据:网桥:网桥ID(唯一的标识)端口:端口ID(唯一的标识)∙∙∙端口相对优先权∙∙∙各端口的花费(高带宽 = 低花费) 配置好各个网桥后,网桥将根据配置参数自动确定生成树,这一过程有三个阶段:1、选择根网桥∙具有最小网桥ID的网桥被选作根网桥。

网桥ID应为唯一的,但若两个网桥具有相同的最小ID,则MAC地址小的网桥被选作根。

2、在其它所有网桥上选择根端口∙除根网桥外的各个网桥需要选一个根端口,这应该是最适合与根网桥通信的端口。

通过计算各个端口到根网桥的花费,取最小者作为根端口。

3、选择每个LAN的❽指定(designated)网桥❾和❽指定端口❾∙如果只有一个网桥连到某LAN,它必然是该LAN的指定网桥,如果多于一个,则到根网桥花费最小的被选为该LAN的指定网桥。

指定端口连接指定网桥和相应的LAN(如果这样的端口多于一个,则低优先权的被选)。

一个端口必须为下列之一:1、根端口2、某LAN的指定端口3、阻塞端口当一个网桥加电后,它假定自己是根网桥,发送出一个CBPDU(Configuration Bridge Protocol Data Unit),告知它认为的根网桥ID。

一个网桥收到一个根网桥ID小于其所知ID的CBPDU,它将更新自己的表,如果该帧从根端口(上传)到达,则向所有指定端口(下传)分发。

当一个网桥收到一个根网桥ID大于其所知ID的CBPDU,该信息被丢弃,如果该帧从指定端口到达,则回送一个帧告知真实根网桥的较低ID。

当有意地或由于线路故障引起网络重新配置,上述过程将重复,产生一个新的生成树。

2、源路由选择网桥透明网桥的优点是易于安装,只需插进电缆即大功告成。

但是从另一方面来说,这种网桥并没有最佳地利用带宽,因为它们仅仅用到了拓扑结构的一个子集(生成树)。

这两个(或其他)因素的相对重要性导致了802委员会内部的分裂。

支持CSMA/CD和令牌总线的人选择了透明网桥,而令牌环的支持者则偏爱一种称为源路由选择(source routing)的网桥(受到IBM的鼓励)。

源路由选择的核心思想是假定每个帧的发送者都知道接收者是否在同一LAN上。

当发送一帧到另外的LAN时,源机器将目的地址的高位设置成1作为标记。

相关主题