路由与交换技术
上QQ阅读APP看书,第一时间看更新

1.4 广域网

大部分的广域网技术因为带宽、通用性等应用上的局限,已经渐渐退出了现网应用,但在现网的部分场景中,仍然能见到少量的应用,如银行中的帧中继网络。另外,部分技术,如 PPP,在现网中的应用还是比较广泛,例如,用于宽带拨号的PPPoE就用到了PPP技术。本节将介绍以下内容。

(1)广域网的常见协议。

(2)HDLC协议的工作原理。

(3)PPP的工作原理。

(4)FR的工作原理。

1.4.1 广域网技术

广域网是一种跨地区的数据通信网络,使用电信运营商提供的设备作为信息传输平台。对照OSI参考模型,广域网技术主要位于下面的3个层次,分别是物理层、数据链路层和网络层。根据使用的通信协议不同,早期的广域网又可以分为X.25网、ATM网、ISDN网、帧中继网等。这里将针对HDLC、PPP、FR等广域网的技术进行介绍。

1.4.2 HDLC工作原理

HDLC是由国际标准化组织(ISO)制定的面向比特的同步数据链路层协议,主要用于封装同步串行链路上的数据。HDLC是在数据链路层中被广泛使用的协议之一。

20世纪70年代初,IBM公司率先提出了面向比特的同步数据链路控制规程(Synchronous Data Link Control,SDLC)。随后,ANSI和ISO均采纳并发展了SDLC,并分别提出了自己的标准,即ANSI的高级通信控制过程(Advanced Data Communication Control Procedure,ADCCP)以及ISO的高级数据链路控制规程(High-level Data Link Control,HDLC)。

HDLC作为面向比特的同步数据控制协议的典型,具有以下这些特点。

(1)协议不依赖于任何一种字符编码集。

(2)数据报文可透明传输,用于透明传输的“0比特插入法”易于硬件实现。

(3)全双工通信,不必等待确认即可连续发送数据,有较高的数据链路传输效率。

(4)所有帧均采用CRC校验,对信息帧进行顺序编号,可防止漏收或重收,传输可靠性高。

(5)传输控制功能与处理功能分离,具有较大的灵活性和较完善的控制功能。

运行HDLC协议的数据链路两端的终端,从逻辑功能的角度常被称为站,可以分为主站、从站和复合站3种。

主站的主要功能是发送命令(包括数据信息)帧,接收响应帧,并负责对整个链路控制系统的初启、流程的控制、差错检测或恢复等。

从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。

复合站的主要功能是既发送又接收命令帧和响应帧,并且负责整个链路的控制。

根据通信双方的链路结构和传输响应类型,HDLC中又定义了3种基本的操作方式:正常响应方式、异步响应方式和异步平衡方式。

● 正常响应方式(Normal Responses Mode,NRM):由主站控制整个链路的操作,负责链路的初始化、数据流控制和链路复位等。从站的功能很简单,它只有在得到主站的明确允许后,才能发出响应。

● 异步响应方式(Asynchronous Responses Mode,ARM):从站可以不必得到主站的允许就可以数据传输。传输效率比NRM有所提高。

● 异步平衡方式(Asynchronous Balanced Mode,ABM):链路两端的复合站具有同等的能力,不管哪个复合站,均可在任意时间发送命令帧,并且不需要收到对方复合站发出的命令帧就可以发送响应帧。

HDLC具体的帧格式如图1-37所示。

图1-37 HDLC的帧格式

HDLC 的完整帧由标志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验序列字段(FCS)等组成。

标志字段(F):固定为值01111110,用于标志帧的开始与结束,也可以作为帧与帧之间的填充字符。

地址字段(A):携带的是地址信息,在使用不平衡方式传送数据时(采用NRM和ARM),地址字段总是写入从站的地址;在使用平衡方式时(采用ABM),地址字段总是写入应答站的地址。

控制字段(C):用于构成各种命令及响应,以便对链路进行监视与控制。发送方主节点或组合节点利用控制字段来通知被寻址的从节点或组合节点执行约定的操作。相反,从节点将该字段作为对命令的响应,报告已经完成的操作或状态的变化。

信息字段(I):可以是任意的二进制比特串,长度未做限定,其上限由FCS字段或通信节点的缓冲容量来决定,目前国际上用得较多的是1 000~2 000 位,而下限可以是0,即无信息字段。但是监控帧中不能有信息字段。

帧校验序列字段(FCS):可以使用16位CRC对两个标志字段之间的整个帧的内容进行校验。

HDLC 协议传送的信息单位为帧。其最大的特点是不需要数据必须是规定的字符集,对任何一种比特流,均可以实现透明传输。帧的起始和结束由起始标志符和终止标志符进行标识,字符串值为01111110。标志码不允许在帧的内部出现,以免引起歧义。为避免引起歧义,可以采用“0比特插入法”来解决。在发送端,一旦检测到标志码以外的字段有连续的5个“1”,便在其后添加一个“0”,然后继续发送后继的比特流。在接收端,除标志码以外的所有字段,当连续发现5个“1”出现后,若其后的一个位为“0”,则自动删除它,以恢复原来的比特流。若发现连续6个“1”,则可能是插入的“0”发生错误,也可能是收到了终止标志码。

根据帧的不同作用,HDLC的帧可以分为信息帧(I帧)、监控帧(S帧)和无编号帧(U帧)3种不同的类型。帧的类型由控制字段决定。

信息帧用于传送有效信息或数据,通常简称为I帧,以控制字段的第一位是二进制数0为标志。

监控帧用于差错控制和流量控制,通常称为S帧。S帧的标志是控制字段的前两个比特位为“10”。S帧不带信息字段,只有6个字节,即48位。

无编号帧用于提供对链路的建立、拆除以及多种控制功能,简称U帧。

HDLC 主要用于串行链路上的数据封装。其基础配置比较简单,只需要在接口模式下封装 HDLC,然后配置IP地址即可。典型的应用场景如图1-38所示。

图1-38 HDLC的典型应用

HDLC原理与配置

HDLC在配置时,通信双方的接口必须配置相同的封装方式。图1-38的应用示例以华为设备的配置为例,其余厂商设备的配置会在命令上稍有区别。

1.4.3 PPP工作原理

HDLC和PPP是两种典型的广域网协议。在前面的内容中,已经对HDLC协议的封装方式和基本配置进行了一定的介绍。本小节介绍另一种典型的广域网协议,即PPP。

1.PPP的基本概念

PPP 提供了一种在点到点链路上传输多协议数据包的标准方法,是目前广泛应用的数据链路层点到点通信协议。

PPP在TCP/IP协议栈中位于数据链路层,通常用于在串行链路、ATM链路和SDH链路上封装和发送IP数据包。PPP在协议栈中的位置如图1-39所示。

图1-39 PPP在TCP/IP协议栈中的位置

PPP共定义了3个协议组件,分别是数据封装方式、链路控制协议(Link Control Protocol,LCP)和网络层控制协议(Network Control Protocol,NCP)。

数据封装方式定义了如何封装多种类型的上层协议数据包。

LCP的定义主要是为了能适应多种多样的链路类型。LCP可以自动检测链路环境(如是否存在环路)、协商链路参数(如最大数据包长度)、使用何种认证协议等。与其他数据链路层协议相比,PPP 的一个重要特点是可以提供认证功能,链路两端可以协商使用何种认证协议并实施认证过程,只有认证成功才会建立连接。这个特点使PPP适合运营商来接入分散的用户。

NCP包含了一组协议,主要用于协商网络层的地址等参数,每一种协议对应一种网络层协议,例如, IPCP用于协商控制IP,IPXCP用于协商控制IPX协议等。

PPP 的运行需要经历多个阶段的协商,而各个阶段的协商需要不同的组件参与。具体的协商流程如图1-40所示。

图 1-40 PPP的具体协商流程

最开始建立PPP链路时,会从初始状态进入到建立阶段。在链路建立阶段,PPP进行LCP的协商。协商内容包括最大接收单元MRU、验证方式、魔术字(Magic Number)等选项。

LCP协商成功后进入Opened状态,表示底层链路已经建立。此时,PPP会检查双方是否配置了认证,采用何种方式进行认证。如果配置了验证,将进入认证阶段,开始CHAP或PAP验证。如果没有配置验证,则直接进入NCP协商阶段。

对于认证阶段,如果验证失败,则链路被终止拆除,LCP 状态转为 Down。如果验证成功,则进入网络协商阶段,此时LCP状态仍为Opened,而网络协商状态却从Initial转到Request。

网络协商支持IPCP、MPLSCP、OSCICP等协商。IPCP协商主要包括双方的IP地址。通过NCP协商来选择和配置一个网络层协议。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。

PPP链路将一直保持通信,直至有明确的LCP或NCP帧关闭这条链路,或发生了某些外部事件,例如用户干预。

在PPP协商的过程中,数据帧都是封装在PPP报文中进行传递的。封装方式相对比较简单,主要包含了3个字段,PPP数据帧格式如图1-41所示。

图1-41 PPP数据帧格式

下面将介绍PPP的数据封装中3个字段的功能。

● Protocol,协议域,长度为两个字节,标识此PPP数据帧中封装的协议类型,如IP数据包、LCP、NCP等。常用取值如图1-41所示。

● Information,信息域,被PPP封装的数据,例如LCP数据、NCP数据、网络层数据包等。此字段的长度是可变的。

● Padding,填充域。用于填充信息域。

Padding字段和Information字段的最大总长度称为PPP的最大接收单元(Maximum Receive Unit, MRU)。MRU默认为1 500字节。当Information字段的长度小于MRU时,可以使用Padding字段填充以方便发送和接收,也可以不进行填充,即Padding字段是可选的。

PPP数据帧无法直接在链路上传输,在不同的链路上传输PPP数据帧需要不同的额外封装和控制机制,如在串行链路上传送PPP数据帧需遵循HDLC标准。

结合之前学习的HDLC的知识,串行链路上的数据帧结构如图1-42所示。

图1-42 串行链路上的PPP数据帧结构

串行链路上的PPP基础配置也比较简单,只需要在接口模式下封装PPP,然后配置IP地址即可,如图1-43所示。

图1-43 串行链路上PPP的基础配置

PPP原理与配置——协议概述

2.链路控制协议(LCP)

通过前面内容的介绍,读者已经对PPP有了一个总体的了解,包括PPP的概念、在串行链路上发送的PPP数据帧格式、PPP的组件以及PPP的工作过程。下面将结合前面PPP的介绍,对PPP的组件进行介绍,首先来看下PPP的链路控制协议LCP的工作原理。

如前面所述,LCP主要用来建立、拆除和监控PPP数据链路,同时进行链路层参数的协商,如MRU、验证方式等。在协商过程中,PPP双方会交互几种常见的链路协商报文。下面是对几种常见LCP协商场景的描述。

场景一:LCP协商成功。

如图1-44所示,RTA和RTB使用串行链路相连,运行PPP。当物理层链路变为可用状态之后,RTA和RTB使用LCP协商链路参数。本例中,RTA首先发送一个LCP报文。

RTA 向 RTB 发送 Configure-Request 报文,此报文包含了发送者(RTA)上配置的链路层参数。当RTB收到此Configure-Request报文之后,如果RTB能识别此报文中的所有链路层参数,并且认为每个参数的取值都是可以接受的,则向RTA回应一个Configure-Ack报文。

在没有收到Configure-Ack报文的情况下,每隔3 s重传一次Configure-Request报文,如果连续10次发送 Configure-Request 报文仍然没有收到 Configure-Ack 报文,则认为对端不可用,停止发送Configure-Request报文。

需要注意的是,该过程只是表明了RTB认为RTA上的链路参数配置是可接受的。RTB也需要向RTA发送Configure-Request报文,使RTA检测RTB上的链路参数配置是不是可接受的。

图1-44 LCP协商成功

场景二:LCP参数协商不成功。

如图1-45所示,当RTB收到RTA发送的Configure-Request报文之后,如果RTB能识别此报文中携带的所有链路层参数,但是认为部分或全部参数的取值不能接受,即参数的取值协商不成功,则RTB需要向RTA回应一个Configure-Nak报文。

图1-45 LCP参数协商不成功

在这个Configure-Nak报文中,只包含不能接受的那部分链路层参数列表,每一个包含在此报文中链路层参数的取值均被修改为此报文的发送者(RTB)可以接受的取值(或取值范围)。

在收到Configure-Nak报文之后,RTA需要根据此报文中的链路层参数重新选择本地使用的相关参数,并重新发送一个Configure-Request。

连续5次协商仍然不成功的参数将被禁用,不再继续协商。

场景三:LCP参数无法识别。

如图1-46所示,当RTB收到RTA发送的Configure-Request报文之后,如果RTB不能识别此报文中携带的部分或全部链路层参数,则RTB需要向RTA回应一个Configure-Reject报文。

在此Configure-Reject报文中,只包含不被识别的那部分链路层参数列表。

在收到Configure-Reject报文之后,RTA需要向RTB重新发送一个Configure-Request报文,在新的Configure-Request报文中,不再包含不被对端(RTB)识别的参数。

图1-46 LCP参数无法识别

场景四:LCP链路检测。

如图1-47所示,LCP建立连接之后,可以使用Echo-Request报文和Echo-RepIy报文检测链路状态,收到Echo-Request报文之后应当回应一个Echo-RepIy报文,表示链路状态正常。

图1-47 LCP链路检测

场景五:LCP连接关闭。

如图1-48所示,由于认证不成功或者管理员手工关闭等原因可以使LCP关闭已经建立的连接。

LCP关闭连接使用Terminate-Request报文和Terminate-Ack报文,Terminate-Request报文用于请求对端关闭连接,一旦收到一个Terminate-Request报文,LCP必须回应一个Terminate-Ack报文来确认连接关闭。

在没有收到Terminate-Ack报文的情况下,每隔3 s重传一次Terminate-Request报文,连续两次重传都没有收到Terminate-Ack报文,则认为对端不可用,连接关闭。

图1-48 LCP连接关闭

通过对上述5个场景的描述,可以总结LCP链路层协商常用的报文类型,如表1-9所示。

表1-9 LCP链路层协商常用报文

LCP链路的协商通过表1-9中的报文实现,LCP协商的常用链路参数如表1-10所示。

表1-10 LCP协商的常用链路参数

PPP原理与配置——链路控制协议(LCP)

在华为设备上,MRU参数使用接口上配置的最大传输单元(MTU)值来表示。

常用的PPP认证协议有PAP和CHAP(后续章节介绍),一条PPP链路的两端可以使用不同的认证协议认证对端,但是被认证方必须支持认证方使用的认证协议,并正确配置用户名和密码等认证信息。

LCP使用魔术字(Magic-Number)检测链路环路和其他异常情况。魔术字为随机产生的一个数字,随机机制需要保证两端产生相同魔术字的可能性几乎为0。

收到一个Configure-Request报文之后,其包含的魔术字需要和本地产生的魔术字做比较,如果不同,表示链路无环路,则使用Confugure-Ack报文确认(其他参数也协商成功),表示魔术字协商成功。在后续发送的报文中,如果报文含有魔术字字段,则该字段设置为协商成功的魔术字,LCP 不再产生新的魔术字。

如果收到的Configure-Request报文和自身产生的魔术字相同,则发送一个Configure-Nak报文,携带一个新的魔术字。然后,不管新收到的Configure-Nak报文中是否携带相同的魔术字,LCP都发送一个新的Configure-Request报文,携带一个新的魔术字。如果链路有环路,则这个过程会不停地持续下去;如果链路没有环路,则报文交互会很快恢复正常。

3.PPP的认证协议

PPP工作过程中的认证,常用的方式有PAP和CHAP两种。

(1)PAP认证。

PAP全称为Password Authentication Protocol,密码认证协议。要实现PAP的认证,需要配置的信息有两部分。

● 在认证方开启PAP认证功能,创建一个PPP用户。

● 在被认证方配置PAP使用的用户名和密码信息。

PAP的认证示例如图1-49所示,认证方配置了认证方式是PAP,创建了用户名huawei和密码hello,同时指定了用户huawei的业务类型为PPP业务。被认证方指明了PAP认证的用户名huawei和hello,保持和认证方的一致,才能保证认证通过。

图1-49 PAP认证示例

PAP认证方式的工作原理较为简单。LCP协商完成后,认证方要求被认证方使用PAP进行认证,具体过程如图1-50所示。

图1-50 PAP认证过程

被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送给认证方,本例中,用户名为“huawei”,密码为“hello”。

认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否正确匹配,如果正确,则返回 Authenticate-Ack 报文,表示认证成功。否则,返回Authenticate-Nak报文,表示认证失败。

PAP 验证协议包含两次握手验证,验证过程仅在链路初始建立阶段进行。当链路建立阶段结束后,用户名和密码将由被验证方重复地在链路上发送给验证方,直到验证被通过或者链路连接终止。PAP 不是一种安全的验证协议。当验证时,口令以明文方式在链路上发送,并且由于完成PPP链路建立后,被验证方会不停地在链路上反复发送用户名和口令,直到身份验证过程结束,所以不能防止攻击。

(2)CHAP认证。

CHAP全称为Challenge Handshake Authentication Protocol,是一种使用加密方式发送密码信息的认证方式,与PAP相比,可以提供更高的安全性。

CHAP 的认证示例如图1-51所示,基本配置和 PAP 的认证方式差别不大,只是认证模式被指明为CHAP模式。

图1-51 CHAP认证示例

CHAP的认证过程需要3次报文的交互。信息在链路上传递时,需要经过加密,因此安全性得到了极大的提升,具体过程如图1-52所示。

图1-52 CHAP认证过程

在LCP协商完成后,认证方发送一个Challenge报文给被认证方,报文中含有Identifier信息和一个随机产生的Challenge字符串。此Identifier会被后续报文所使用,一次认证过程所使用的报文均使用相同的Identifier信息,用于匹配请求报文和回应报文。

被认证方收到此 Challenge 报文之后进行一次加密运算,运算公式为 MD5{Identifier+密码+Challenge},意思是将Identifier、密码和Challenge这3部分连成一个字符串整体,然后对此字符串做MD5运算,得到一个16字节长的摘要信息,最后将此摘要信息和端口上配置的 CHAP 用户名一起封装在Response报文中并发回认证方,本例中将加密运算得到的摘要信息和用户名 “huawei”一起发回认证方。

认证方接收到被认证方发送的Response报文之后,按照其中的用户名在本地查找相应的密码信息。得到密码信息之后进行一次加密运算,运算方式和被认证方的加密运算方式相同,然后将加密运算得到的摘要信息和Response报文中封装的摘要信息做比较,相同则表示认证成功,不相同则表示认证失败。

从CHAP认证的整个过程可以看出,验证的密码从未在链路上进行明文传递,传递的只是经过MD5计算的摘要信息,因此,相对于PAP来说,安全性得到了很大的提升。

PPP原理与配置——认证协议

4.网络层控制协议(NCP)

目前应用最广泛的NCP为IPCP与MPLSCP,分别用于IP和MPLS的协商与控制。

IPCP用于协商控制IP参数,使PPP可用于传输IP数据包。MPLSCP用于协商控制MPLSCP协议参数,使PPP可用于传输MPLSCP数据包。下面以IPCP的IP地址协商为例,说明一下NCP的作用。

图1-53所示为静态协商IP地址,RTA和RTB之间通过串行链路连接,封装PPP。两端的端口IP地址通过静态方式部署。在双方进行PPP的NCP协商时,需要经过以下过程。

(1)每一端都要发送Configure-Request报文,在此报文中包含本地配置的IP地址。

(2)另一端接收到此Configure-Request报文之后,检查其中的IP地址,如果IP地址是一个合法的单播 IP 地址,而且和本地配置的 IP 地址不同(没有 IP 冲突),则认为对端可以使用该地址,回应一个Configure-Ack报文。

图1-53 静态协商IP地址

除了静态协商IP地址外,也可以通过IPCP实现IP地址的动态协商。如图1-54所示,RTB上配置了本地端口的IP地址,同时配置一个远端的IP地址,RTA则通过协商的方式动态获取IP地址。具体有以下4步。

(1)RTA 向RTB 发送一个 Configure-Request 报文,此报文中的 IP 地址填充为0.0.0.0,一个含有0.0.0.0的IP地址的Configure-Request报文表示向对端请求IP地址。

(2)RTB 收到上述 Configure-Request 报文后,认为其中包含的地址(0.0.0.0)不合法,使用Configure-Nak回应一个新的IP地址10.1.1.1。

(3)RTA收到此Configure-Nak报文之后,更新本地IP地址,并重新发送一个Configure-Request报文,包含新的IP地址10.1.1.1。

(4)RTB 收到 Configure-Request 报文后,认为其中包含的 IP 地址为合法地址,回应一个Configure-Ack报文。同时,RTB也要向RTA发送Configure-Request报文来请求使用地址10.1.1.2,RTA认为此地址合法,回应Configure-Ack报文。

图1-54 动态协商IP地址

PPP原理与配置——网络层控制协议(NCP)

1.4.4 FR工作原理

帧中继(Frame Relay,FR)技术是在数据链路层用简化的方法传送和交换数据单元的快速分组交换技术。由于在链路层的数据单元一般称作帧,故称为帧方式。

帧中继采用虚电路技术,即帧中继传送数据使用的传输链路是逻辑连接,而不是物理连接。在一个物理连接上可以复用多个逻辑连接,实现了带宽的复用和动态分配,有利于多用户、多速率数据的传输,充分利用了网络资源,如图1-55中的虚线所示。采用虚电路技术,能充分利用网络资源,因此帧中继具有吞吐量高、时延低、适合突发性业务等特点。

图1-55 帧中继的虚电路技术

帧中继工作在OSI的物理层和数据链路层,使用简化的方法传送和交换数据单元,仅完成OSI物理层和数据链路层核心层的功能,将流量控制、纠错等留给智能终端完成,依赖TCP等上层协议完成纠错控制等,大大简化了节点机之间的协议。帧中继可用于传输各种路由协议,路由协议数据包被封装在帧中继数据帧内,如图1-56所示。

图1-56 帧中继的封装结构

FR原理与配置——帧中继网络概述

在网络发展初期,由于帧中继能够充分利用网络资源,具备吞吐量高、时延低、适合突发性业务等特点,因此,对于当时的网络组网而言,是一个重要的可选项。帧中继技术的特点可归纳为以下几点。

(1)帧中继技术主要用于传递数据业务,数据信息以帧的形式进行传送,是一种面向连接的快速分组交换技术。

(2)帧中继传送数据使用的传输链路是逻辑连接,而不是物理连接,在一个物理连接上可以复用多个逻辑连接,可以实现带宽的复用和动态分配。

(3)帧中继采用物理层和链路层的两级结构,在链路层也只保留了核心子集部分,简化了X.25的第三层功能,使网络节点的处理大大简化。在链路层可完成统计复用、帧透明传输和错误检测,但不提供重传操作,提高了网络对信息的处理效率。省去了帧编号、流量控制、应答和监视等机制,大大节省了交换机的开销,提高了网络吞吐量、降低了通信时延。一般帧中继用户的接入速率在64 kbit/s~2 Mbit/s。

(4)提供了一套合理的带宽管理和防止拥塞的机制,用户有效地利用预约的带宽,即承诺的信息速率(Committed Information Rate,CIR),还允许用户的突发数据占用未预定的带宽,以提高网络资源的利用率。

(5)与分组交换一样,帧中继采用面向连接的交换技术。可以提供交换虚电路(Switched Virtual Circuit, SVC)和永久虚电路(Permanent Virtual Circuit,PVC)业务,但目前已应用帧中继的网络中,只采用PVC业务。

帧中继网络模型如图1-57所示,由用户侧数据终端设备(Data Terminal Equipment ,DTE)和FR帧中继交换网组成。FR 帧中继交换网由一组数据电路终接设备(Data Circuit-terminating Equipment, DCE)组成。两端的局域网通过FR网络实现互联。局域网之间数据的转发通过PVC来实现。以下为帧中继网络中的一些相关术语介绍。

● 数据终端设备。通常指的是用户侧的设备等。

● 数据电路终接设备。通常是指网络中的交换设备,如帧中继交换机。

● 数据链路连接标识(Data Link Connection Identifier,DLCI)。链路接口的标识,帧中继网络的每一个连接都使用DLCI。

DTE与DCE直接连接,分组交换机之间建立若干连接,这样,便形成了DTE与DTE之间的通路。用户设备和网络设备之间的接口为用户到网络接口(User-to-Network Interface,UNI),帧中继交换机之间的接口为网络到网络接口(Network-to-Network Interface,NNI),如图1-57所示。

帧中继是面向连接的技术,在通信之前必须建立链路,DTE 之间建立的连接称为虚电路,如图1-57中的虚线所示。

帧中继虚电路有两种类型:PVC和SVC。目前在帧中继中使用最多的方式是永久虚电路方式。

图1-57 帧中继网络

PVC 是指给用户提供的固定虚电路,该电路一旦建立,则链路永远生效,除非管理员手动删除。PVC用于两端之间频繁的、流量稳定的数据传输。

SVC 是指通过协议自动分配的虚电路。在通信结束后,该虚电路可以被本地设备或交换机取消。一般临时性的数据传输多用SVC。

帧中继技术为了能够更加有效地利用网络资源,采用了虚电路技术,能够在单一物理传输线路上提供多条虚电路,也就是说,帧中继是一种统计复用协议。那么如何来标识和区分这些虚链路呢?帧中继中定义了数据链路连接标识(Data Link Connection Identifier,DLCI)。通过帧中继帧中的地址字段,可以区分出该帧属于哪一条虚电路。

DLCI只在本地接口和与之直接相连的对端接口有效(即用于标识连接本地和对端接口的链路),不具有全局有效性。在帧中继网络中,不同物理接口上相同的DLCI并不表示同一个虚连接。

帧中继网络用户接口上最多可支持1 024条虚电路,其中用户可用的DLCI的范围是16~1 007。由于帧中继虚电路是面向连接的,本地不同的DLCI连接着不同的对端设备,所以可认为本地DLCI就是对端设备的“帧中继地址”。

帧中继网络作为一种公共设施,一般是由电信运营商提供的,也可以通过自己私有的交换机组成帧中继网。对于任何一种方式,帧中继网络服务者都为用户路由器使用的PVC分配了DLCI号。其中一些DLCI代表特殊的功能,如DLCI0和DLCI 1023为LMI协议专用。

帧中继地址映射是把对端设备的协议地址与本地到达对端设备的DLCI关联起来,以便高层协议能够通过对端设备的协议地址寻址到对端设备。帧中继主要用来承载IP协议,在发送IP报文时,由于路由表只知道报文的下一跳地址,所以发送前必须由该地址确定它对应的DLCI。这个过程可以通过查找帧中继地址映射表来完成。地址映射可以手动静态配置,也可以由协议动态维护,如图1-58所示。

图1-58 帧中继地址映射

逆向地址解析协议(Inverse ARP)的主要功能是寻找每条虚电路连接的对端设备的协议地址,包括IP地址和 IPX 地址等。如果知道了某条虚电路连接的对端设备的协议地址,在本地就可以生成对端协议地址与DLCI的映射(MAP),从而避免手工配置地址映射。它的基本过程如图1-59所示。

当RTA发现一条新的虚电路时(前提是RTA上已配置了协议地址),RTA就在该虚电路上发送Inverse ARP请求报文给RTB,该请求报文包含有RTA的协议地址。RTB收到该请求时,可以获得RTA的协议地址,从而生成地址映射,并发送Inverse ARP响应报文进行响应,这样RTA同样生成地址映射。

图1-59 Inverse ARP工作过程

对于逆向地址解析,需要留意以下几种特殊情况。

(1)如果已经手工配置了静态MAP或已经建立了动态MAP,则无论该静态MAP中的对端地址正确与否,都不会在该虚电路上发送 Inverse ARP 请求报文给对端,只有在没有 MAP 的情况下才会向对端发送Inverse ARP请求报文。

(2)如果在Inverse ARP请求报文的接收端发现对端的协议地址与本地配置的MAP中的协议地址相同,则不会生成该动态MAP。

(3)多协议地址主机回复与请求方协议地址相对应的协议地址。如果没有则不回复。

(4)多协议地址主机会为接口的每个协议地址请求对应的协议地址。

Inverse ARP 用于寻找每条虚电路连接的对端设备的协议地址,本地管理接口(Local Management Interface,LMI)协议则通过状态请求报文和状态报文维护帧中继的链路状态和 PVC 状态。涉及的功能包括增加PVC记录、删除已断掉的PVC记录、监控PVC状态的变更、链路完整性验证。

系统支持的本地管理接口协议有3种:ITU-T的Q.933 Annex A、ANSI的T1.617 Annex D和非标准兼容协议。其中,非标准兼容协议用于和其他厂商设备对接,时如表1-11所示。

表1-11 本地管理接口协议

LMI的基本工作方式:DTE设备每隔一定的时间间隔发送一个状态请求报文(Status Enquiry报文)去查询虚电路的状态,DCE设备收到状态请求报文后,立即用状态报文(Status报文)通知DTE当前接口上所有虚电路的状态。

对于DTE侧设备,永久虚电路的状态完全由DCE侧设备决定。对于DCE侧设备,永久虚电路的状态由网络来决定。在两台网络设备直接连接的情况下,DCE侧设备的虚电路状态是由设备管理员来设置的。

惜助于DLCI、InARP、LMI等机制,帧中继能够实现数据的转发,但在点到多点的网络中部署某些应用的时候,会导致另外一些问题的出现。图1-60所示为在网络中部署路由协议进行路由信息的通告(路由的详细介绍见第3章),Router A的S0口连接着3台路由器Router B、Router C、Router D。在Router A的串口S0上分别映射3个DLCI到3台路由器,此时,Router B的路由信息需要先传递给Router A,然后由Router A再传递给Router C。在采用距离矢量算法的路由协议中,如果路由器把从一个接口接收进来的更新信息再从这个端口转发出去,有可能会在两台路由器之间形成路由环路。因此,在距离矢量算法中,不允许Router A将串口S0上的路由更新信息再从该串口转发出去,该原则称为水平分割。

图1-60 水平分割与帧中继

解决这个问题有几个办法:一个方法是使用多个物理接口连接多个邻节点,这样就需要路由器具备多个物理接口,从而增加了用户的成本;另外一个办法是使用子接口,如图1-61所示,在一个物理接口上配置多个逻辑接口,每个子接口都有自己的网络地址,就像独立的物理接口一样。或者是关闭水平分割功能,但这样会增加产生路由环路的概率,同时也需要路由协议支持。

图1-61 帧中继子接口

配置帧中继子接口可以解决水平分割的问题,一个物理接口可以包含多个逻辑子接口。每一个子接口使用一个或多个DLCI连接到对端的路由器。路由器之间需要经过帧中继的网络相连接。

在串口线路上定义这些逻辑子接口,每一个子接口使用一个或多个DLCI连接到对端的路由器。在子接口上配置了DLCI后,还需要建立目的端协议和该DLCI的映射。

图1-61中,虽然Router A上仅有一个物理串口S0,但是在物理串口S0上定义了S0.1子接口上的DLCI到Router B,S0.2子接口上的DLCI到RouterC,S0.3子接口上的DLCI到RouterD。

帧中继的子接口分为两种类型。

点到点(Point-to-Point)子接口:用于连接单个远端目标。一个子接口只配一条PVC,不用配置静态地址映射就可唯一地确定对端设备。所以,在给子接口配置PVC时已经隐含地确定了对端地址。

点到多点(Point-to-Multipoint)子接口:用于连接多个远端目标。一个子接口上配置多条 PVC,每条 PVC 都和它相连的远端协议地址建立地址映射,这样,不同的 PVC 就可以到达不同的远端,而不会混淆。必须要通过手工配置地址映射,或者通过逆向地址解析协议来动态建立地址映射。

在创建帧中继子接口前,应先配置主接口使用帧中继作为链路层协议。帧中继子接口的类型默认是点到多点。

帧中继的配置实现并不复杂,如图1-62所示,RTA和RTB通过帧中继互联,IP地址和DLCI通过静态配置的方式进行映射,从而实现两端IP地址的互通。

FR原理与配置——基本概念

FR原理与配置——基本配置

图1-62 帧中继的静态解析配置实现