DLSw(Data Link Switching,数据链路交换)是APPN(Advanced Peer-to-Peer Networking,高级对等网路)、Implementers Workshop(AIW,实现工作组)开发,用来实现通过TCP/IP承载SNA(System Network Architecture,系统网路结构体系)的一种方法。SNA是IBM在70年代推出的与OSI参考模型对应的网路体系结构。要实现SNA协定跨广域网传输,解决方案之一就是DLSw技术。
基本介绍
- 中文名:DLSW
- 外文名:Data Link Switching
- 别名:数据链路交换
- 领域:计算机 网际网路
DLSw概述
DLSw的工作原理如图1所示:
(1) 运行DLSw的路由器将本地SNA设备的LLC2(Logical Link Control,type 2,第二类逻辑链路控制)格式的帧转换成可封装在TCP报文中的SSP(Switch-to-Switch Protocol,交换机到交换机协定)帧;
(2) SSP帧通过TCP通道跨越广域网送达远端路由器;
(3) 远端路由器将SSP帧再转换成相应的LLC2帧,传送给对端SNA设备。
因此,DLSw使得本地的SNA终端设备以为远端的SNA设备和自己处于同一个网路上。但DLSw与透明网桥不同,它不是将原来的LLC2协定帧直接透传到对端,而是将原来的LLC2协定帧转换成SSP协定帧来完成将原有数据在TCP报文中的封装。它具有本地应答机制,因此,可以减少不必要的数据传输(例如确认帧和保持活跃帧),并且解决了数据链路控制逾时的问题。
利用DLSw技术,还可以实现SDLC(Synchronous Data Link Control,同步数据链路控制)链路协定的跨TCP/IP传输。先将SDLC格式的报文转换成LLC2格式的报文,再通过DLSw和远端互联。这样,DLSw还支持LAN与SDLC之间不同介质的互联。
DLSw目前有两种版本:DLSw1.0和DLSw2.0。基于RFC 1795实现的DLSw为DLSw1.0版本;为了提高产品可维护性,减少网路开销,系统基于RFC 2166实现了DLSw2.0版本。DLSw2.0中增加了支持以组播及单播方式传送UDP探询报文的功能。当通信对端也是DLSw2.0时,二者可以使用UDP报文探询可达信息,仅在有数据传输需求时才建立TCP连线。
DLSw1.0与DLSw2.0
DLSw1.0存在的问题
●TCP连线的问题
DLSw1.0在配置本地对等体和远端对等体以后,无论当时本地及远端对等体是否有建立连线的需求,本地对等体都会立即尝试与远端对等体建立TCP连线(先建立两条TCP连线,完成性能交换以后,断掉一条TCP连线);且所有报文(包括探询报文、建立电路请求报文、数据报文)都使用TCP连线传输,这在一定程度上造成了网路资源的浪费。
●广播报文泛滥
儘管DLSw1.0实现了本地应答机制,但在DLSw的可达信息列表尚未有可达路径信息或可达路径信息过少的时候,探询报文将通过已经建立好的TCP连线大量涌向广域网。
●可维护性较差
链路中断时,DLSw1.0使用两种报文通知对端,但不能告诉对端是什幺原因导致的链路中断,所以一旦DLSw出现链路异常中断,很难明确是由哪一种情况引起的。
DLSw2.0增加的功能
针对以上问题,DLSw2.0做了相应的改进,併兼容DLSw1.0。
为了方便介绍现将DLSw2.0组网中的各部分定义如下:
如图2所示,源终端是指发起通信的终端,目标终端是指接受通信的终端,源DLSw路由器是指与源终端连线的使能了DLSw的路由器,目标DLSw路由器是指与目标终端连线的使能了DLSw的路由器。下文中提到源DLSw2.0路由器,则是指使能了DLSw功能,且其版本为DLSw2.0的路由器。
●使用UDP报文探询对等体地址
为了避免建立不必要的TCP连线,DLSw2.0一般不使用TCP连线传送探询报文,而改用UDP报文传送(除非此时TCP连线已经存在)。当使用UDP报文探询可达信息时,有两种报文传送方式――组播和单播(分别用于不同的情况)。以UDP方式进行探询报文的传送和接收,一定程度上减少了建立TCP连线的数量,避免了网路资源的浪费。
●按照需求建立单条TCP通道
在源DLSw2.0路由器和目标DLSw2.0路由器之间使用UDP报文探询到可达信息以后,当源终端和目标终端有建立链路的需求时,源DLSw2.0路由器和目标DLSw2.0路由器之间才建立TCP连线。DLSw2.0路由器之间建立TCP通道的过程简化为两个阶段:首先建立一条TCP连线;然后两个设备进行性能交换,如果能力协商不成功,源路由器会向对端传送拒绝报文,之前建立的TCP连线也会被断开。
在DLSw2.0中,有建立链路需求的时候才建立一条TCP连线,这种方式减少了建立、维护TCP连线的开销,提高了系统资源的利用率。
●增强可维护性
DLSw2.0定义了五种电路中断原因:探测到未知错误、DLSw从终端接收到DISC帧、终端检测到DLC错误、电路标準协定错误和系统初始化。这五种电路中断原因,将被报文携带知会给对端。
DLSw+介绍
这一章描述DLSw+以及设计和配置DLSw+网路.标準的DLSW关键特性和在DLSw+中增强特性.
这一章建议所有读者能仔细阅读.
介绍DLSw+设计嚮导
DLSw+设计嚮导描述了DLSw+并且提供配置实例帮助你快速配置简单的DLSW网路.它还包括一些增强特性,诉我们何时使用,如何使用.它提供了一些参数帮助你更好的协调网路,层次设计,调试和迁移指导.
DLSw+定义
数据链路层转换加(Data link switching Plus --- DLSw+)是一种把SNA和NetBIOS数据在广域网或校园网中传输的方法.终端系统可通过令牌环网(Token Ring),乙太网(Ethernet),同步数据链路控制(SDLC)协定或光纤接口(FDDI)连线到网上.DLSw+能转换不同介质间数据,本地终止数据连结,保持应答,keepalive和关闭广域网的轮询(polling)信息.数据链路层终止在本地还剔除了由于网路阻塞或重新寻找路由引起的控制逾时.最后,DLSw+还提供了动态寻找SNA或NetBIOS资源机制和高数算法来儘量减少广播传输.
在文档中,DLSw+路由器可看作peer routers,peers和partners.两个DLSw+路由器之间连线称作peer connection.一个DLSw circuit 包含初始终端系统与初始路由器之间数据链路控制连线,两个路由器之间连线(通常是TCP连线),目的终端系统与目的路由器之间数据链路控制连线.一个单一的peer connection连线可以支持多个circuits.
DLSw+支持SNA PUs之间或NetBIOS客户与伺服器间建立circuits.SNA PU连线支持PU2.0/2.1到PU 4,PU1到PU 4(SDLC),PU 4到PU 4(Token Ring),和PU 2.1到PU 2.1.
DLSw标準
DLSw标準是版本 1,定义在RFC 1795中,它描述了IBM原创的实现DLSw的6611标準.
DLSw标準描述了路由器间建立对等连线(peer connection),定位资源,传送数据,流量控制和纠错的转换协定(Switch-to-switch Protocol --- SSP).RFC 1495规定终止对等路由器间的数据链路连线,换句话说,数据链路连线是本地应答的.
通过数据链路连线的本地应答,数据链路交换标準终止了链路层应答和keepalive信息在广域网中传输.另外,由于数据链路连线是本地应答的,链路层的逾时不会发生.DLSw路由器就是把多重的数据链路控制的传输放在相应的TCP管道上并通过IP网可靠的传送出去.
两个终端系统通过DLSw建立连线,首先要实现:
建立对等连线(Establish peer connection )
性能交换(Exchange capabilities )
建立链路(Establish circuit)
建立对等连线(Establish peer connection )
在两个路由器间交换SNA或NetBIOS传输之前,首先它们之间要建立TCP连线.标準允许不需要的TCP连线是未激活的.(Cisco路由器当其对等路由器是其它厂家的时,额外的TCP连线是drop的.)标準也允许额外的TCP连线以实现不同等级的优先权.
性能交换(Exchange capabilities )
TCP连线建立之后,路由器交换它们的性能.性能包括DLSw版本号,初始接收视窗大小,SAPs值和支持TCP会话个数等等.同时还传输MAC地址表和NetBIOS名字表.我们也可以配置MAC地址表和NetBIOS名字表以避免广播.性能交换之后,DLSw partner準备建立SNA链路.
建立链路(Establish circuit)
一组终端系统建立链路包括寻找目的资源(基于MAC地址或NetBIOS名)和设定终端系统的数据链路连线.SNA和NetBIOS控制是不同的.在区域网路中SNA设备传送一个带着目的MAC地址的探测帧(一个TEST帧和/或交换标识XID帧)寻找其它SNA设备.当一个DLSw路由器接收到探测帧后,它传送一个canureach帧给每一个它能到达的合伙路由器.如果其中一个DLSw partner能到达指定的MAC地址,它就应答icanreach帧.
在这里,DLSw partner由三种连线一个circuit:每个路由器和本地SNA指定系统间数据链路连线和DLSw partner之间TCP连线.这个链路用源和目的链路号(circuit ID)唯一标识,每一个链路号又由源和目的MAC地址,源和目的链路服务访问点(LSAPs)和一个数据链路控制号来定义.一旦链路建立起来,信息帧就可以传输了.
DLSw+特点
DLSw+是Cisco实现的数据链路交换.它比标準增加许多新功能.包括下面几点:
扩展性---构建IBM网路减少广播传输量一个方法,增强网路可扩展性.
实用性---快速地动态地查找相关路径和可选择地通过多个激活的peers,ports作负载平衡.
传输灵活性---高性能的传输避免了逾时引起的网路中断.
操作模式---动态检测对等路由器的性能,按它们的性能检测.
DLSw+改进特性
有意义的因素是限制区域网路探测帧在广域网中传输数量.有几种DLSw+最佳化来减少探测帧数量.
对等组的概念
对等组设计成可限制网状结构的网路广播複製.当网路需要任何一点均互相连线(如APPN和NETBIOS环境),RSRB或标準的DLSw就需要每一组路由器间均建立peer连线,这样会浪费许多频宽和路由器的CPU.一个比较好的方法是把路由器分成组,指定其中一个作中心路由器複製广播.这个性能DLSw+支持.
图一:网状结构到分组结构
DLSw+中,在一个对等组里,一个或几个路由器指定作边缘路由器(border peer),组中路由器不是一对一的互连而是与border peer建立对等连线,当DLSw+路由器收到测试帧时只传送一个探测帧给组中的border peer路由器.border peer路由器检测不在本组中会再发给其它border peer路由器.

探测帧防火墙
可以用一些过滤和防火墙技术来减少广域网中探测帧的传输.
探测帧防火墙是只允许一个探测帧传送给广域网,当一个探测帧带着MAC地址传送出去等待应答时,后来的带相同MAC地址的探测帧不能传送出去.一旦有应答回来,所有这些后来的帧都得到本地应答.
DLSw+增强的实用性
DLSw+提供了基本网路需要:
容错---首选的建立一条链路后,当它不能运行时重新连线到其它相关的路径上.
负载平衡---通过多个DLSw+ peers分布建立链路.
默认的,DLSw+路由器是使用容错模式的.在这种方式下,当DLSw+ peer接收到远端test帧,它检测它的快取.若快取中有这一项就直接应答test帧而不需在网路上传送canureach帧.如果快取中没有该项,路由器传送canureach帧给它的peers.
当你的系统有两条路逕到达目的地,你可以配置成负载平衡.
DLSw+传输灵活性
DLSw+路由器间传输连线不只限于标準DLSw的TCP方式.DLSw+路由器间Cisco支持不同的传输协定:
TCP/IP-传输SNA和NetBIOS需要本地应答,防止逾时或用标準DLSw时.
FST/IP-为任意结构通过广域网和有足够频宽给SNA和NetBIOS传输.它不支持本地应答.
Direct-点对点HDLC或帧中继打包直接传输DLSw+.它也不支持本地应答,不可重新路由.
DLSw Lite-在点对点或帧中继中作LLC2打包,它的本地应答和可靠的传输是非常重要的.但它不可重新路由.DLSw Lite使用RFC 1490定义的LLC2打包方式.
增强特性
这一章叙述了DLSw+的增强特性,它们提供好处和简短说明何时并且如何使用它.增强特性是可选择的,你可按照网路需要进行配置.
背景
明白负载平衡,首先要明白DLSw+对等连线是怎样建立的.当一个路由器开启后,第一件事就是与定义的远程peer建立对等连线(除非作了"passive"定义).路由器然后交换性能信息.在性能信息中包括 "icanreach"或"icannotreach"语句.在交换完性能信息后,DLSW+ peer空闲着直到终端系统传送探测帧(SNA Test或XID帧).探测帧传送给每个活的peer.很可能终端系统是通过多个remote peer被找到的.
冗余和负载平衡
如果在中心有多台DLSw+路由器,可以考虑用负载平衡或冗余.这一节中,我们主要介绍中心多台DLSw+路由器之间或一台路由器上多个连线埠怎样实现平衡传输的.
如果DLSw+收到多个对探测帧的肯定应答,它把几个peer存放在快取里.如果定义了负载平衡"dlsw duplicate-path-bias",新的链路就从另外的一条路径建立,循环建立.
如果没有指定负载平衡,peer选择快取表里第一条路径建立它所有的链路,除非这条路径无效了.快取表里第一条路径可能是:
接收到第一个肯定应答的Peer.
低cost的Peer.
Cost可以定义在本地或远程peer上.指定在本地peer上,它会作为性能信息的一部分与远程peer交换信息.下面是一个cost实例.
Possible configuration and the resulting cache entries that would be created if all the channel gateways illustrated have the same MAC address
图中,中心端有两个DLSw+路由器作gateway和三个令牌环卡访问主机套用.所有三个令牌环卡指定相同的MAC地址.使用重複地址是源路由桥(source-route bridging---SRB)中一种技术,能够提供负载平衡和冗余,使得在下端看来这三条路径是在同一设备上.

这个例子中,Peer A有两个远程Peer B和Peer C. Peer B定义本地Peer cost值是4,Peer C是2.这个cost信息在交换性能信息时交换给Peer A.
当图中左端的SNA终端系统传送探测帧后,Peer A传送探测帧给Peer B和Peer C.Peer B和Peer C再传送给它们的区域网路,Peer B收到一个应答后发给Peer A,Peer C收到两个应答后发给Peer A.
Peer A再把应答信息传给SNA PU,然后用Peer C建立链路.选择Peer C是因为它的cost较低.下一个PU要求建立链路时,直接选择Peer C.
在Peer C上,第一条链路使用Port 1,下一条将用Port 2.这是因为Peer C上作了"dlsw duplicate-path-bias"负载平衡的定义,每一个SNA PU使用round robin方式建立链路.
下一个例子定义了remote peer,Peer A总与Peer B连线,Peer D总与Peer C连线.
备份Peers
使用备份Peers,访问主路由器必须是TCP或FST.在图中,East路由器都用路由器A作主路由器,West路由器都用路由器C作主路由器.Primary Peer或Backup Peer均需在remote peer中定义.若路由器A发生故障,所有SNA会话将中断,重新通过路由器B建立.当路由器A恢复后,所有新的会话将通过路由器A建立,但已经建立的会话继续通过路由器B直到设定linger时间到达.若忽略掉linger设定将使路由器B上会话一直保持到会话终止.
Local Switching
Local Switching(在Cisco IOS 11.1及以上版本上支持)允许一台路由器在SDLC,Token Ring之间提供介质转换.这是一种很有用技术简化了SNA设计,增强可用性.Local Switching可用用Cisco路由器提供的CIP卡本地直连到SDLC设备上.下图是一个Local Switching实例.
Local switching configuration in a mixed PU 2.0,PU 2.1 environment.
用show和debug命令
这一章介绍监控DLSw+和解决网路出现问题的show和debug命令.DLSw+设计提供许多信息帮助你解决网路出现问题而最少的使用额外的网路监控设备.
DLSw+的show命令
DLSw+提供了几个show命令显示DLSw+路由器的一些相关信息,如链路,对等路由器,可到达MAC地址等等.包括下面几个选项:
show dlsw [capabilities | circuits | fastcache | local-circuit | peers | reachability]
Show DLSw Capabilities
交换Peer之间性能信息,包括peer group号和peer cost值等等.
show dlsw capabilities [interface interface | ip-address ip-address | local ]
Show DLSw Circuits
显示路由器当前建立的链路状态.
show dlsw circuits [detail] [[0-255] | mac-address mac-address | sap-value sap-value]
Show DLSw Peers
路由器所连线的对等Peers状态.
show dlsw peer [interface interface | ip-address ip-address ]
Show DLSw Reachability
"show dlsw reachability "命令是SNA源和目的地址放在路由器的列表.只有找到了源和目的MAC地址,才能建立链路.
show dlsw reachability [mac-address [mac-address] | netbios-names [netbios-names ]]
其它有用的show命令
Show Interface
Show IP Route
Show Source Bridge
Show Bridge
Show LLC
Show TCP
DLSw+的debug命令
Debug命令提供了更加详实的信息帮助你解决连网时碰到问题,尤其是在用show命令看到不正常状态时.
debug dlsw [core | local-circuit | peers | reachability]
Peer Debugging
当用show dlsw peer查看peer状态不是CONNECT时,用debug命令提供更多信息.
debug dlsw peer [interface interface | ip-address ip-address ]
Reachability Debugging
链路circuit建立不起来,大多数是因为reachability表中没有找到相应的MAC地址,debug reachability是一个很有用的命令帮助你解决问题.
debug dlsw reachability [error | verbose] [netbios | sna ]
debug命令
debug source-bridge
debugsdlc
debug clsi