帧中继网络在笔者写这篇博客的时候可能很多人已经不记得这种古老而又廉价的“专线”服务。的确,帧中继是于1992年兴起的一种新的公用数据网通讯协议,1994年开始获得迅速发展。帧中继是一种有效的数据传输技术,它可以在一对一或者一对多的应用中快速而低廉的传输数字信息。今天我们就来聊一聊帧中继网络。
帧中继是一种使用了包交换方式的标准的广域网技术。简单来说,就是为用户建立了一条端到端之间的虚拟电路连接,中间经过的帧中继云网络对于用户来说是透明的,用户用起来就感觉跟租用物理专线差不多,但是租用帧中继服务就比租用物理专线便宜得多。帧中继常用于分公司与总公司之间的连接。
帧中继网络主要包括两种链路模式:PVC(永久虚电路)与SVC(临时虚电路),永久虚电路是不管你是否使用这个网络,这条虚电路都已经被建立成功了;而临时虚电路则是只有在有连接请求的时候才会被建立。从发展角度来说,永久虚电路要比临时虚电路应用多得多。
本实验的拓扑图如下:(注意,在使用GNS3模拟帧中继实验时不可以使用那个Frame-relay图标的交换机,笔者在使用这个交换机的时候怎么都无法激活接口状态)
拓扑图说明:
在该图中,R4充当帧中继转发设备,R1拥有两个DLCI分别是102、103;R2拥有两个DLCI分别是201、203;R3拥有两个DLCI分别是301、302。R4的帧中继转发表如下。
既然前面说过,帧中继是通过虚电路与远端设备进行连接,那么一个物理端口 如果有很多个虚电路,那要怎么区分它们呢,在帧中继中,是通过DLCI号来区分的,DLCI号只在本地有效,也就是说在不同的链路段,DLCI号是有可能相同的。DLCI搭配接口就可以很好的避免了DLCI号混淆,这一点我们可以通过DLCL表来看。
Frame-relay帧中继网络有两种配置模式,分别是点对点与点对多点配置模式,以下是配置过程:
(1)点对多点配置模式
R4:
R4(config)#frame-relay switching #成为帧中继交换机
R4(config)#int s0/0
R4(config-if)#no shutdown #开启端口
R4(config-if)#encapsulation frame-relay #封装帧中继
R4(config-if)#frame-relay intf-type dce #设置端口类型为DCE(数据传输端口)
R4(config-if)#frame-relay route 102 int s0/1 201 #设置转发表,从该接口收到DLCI号为102的包则转发到S0/1端口并打上DLCI标签201
R4(config-if)#frame-relay route 103 int s0/2 301 #设置转发表,从该接口收到DLCI号为103的包则转发到S0/2端口并打上DLCI标签301
R4(config-if)#exit
R4(config-if)#int s0/1 #切换到S0/1端口
R4(config-if)#no shutdown #开启端口
R4(config-if)#encapsulation frame-relay #封装帧中继
R4(config-if)#frame-relay intf-type dce #设置类型为DCE
R4(config-if)#frame-relay lmi-type cisco #封装lmi类型为cisco标准
R4(config-if)#frame-relay route 201 int s0/0 102 #设置转发表,从该接口收到DLCI号为201的包则转发到S0/0端口并打上DLCI标签102
R4(config-if)#frame-relay route 203 int s0/2 302 #设置转发表,从该接口收到DLCI号为203的包则转发到S0/2端口并打上DLCI标签302
R4(config-if)#exit
R4(config-if)#int s0/2 #切换到S0/2端口
R4(config-if)#no shutdown #开启端口
R4(config-if)#encapsulation frame-relay #封装帧中继
R4(config-if)#frame-relay intf-type dce #设置类型为DCE
R4(config-if)#frame-relay lmi-type cisco #封装lmi类型为cisco标准
R4(config-if)#frame-relay route 301 int s0/0 103 #设置转发表,从该接口收到DLCI号为301的包则转发到S0/0端口并打上DLCI标签103
R4(config-if)#frame-relay route 302 int s0/2 203 #设置转发表,从该接口收到DLCI号为302的包则转发到S0/1端口并打上DLCI标签203
R4(config-if)#exit
R1:
R1(config)#int s0/0 #进入端口S0/0
R1(config-if)#encapsulation frame-relay #封装帧中继
R1(config-if)#no ip address #取消IP地址配置
R1(config-if)#no frame-relay inverse-arp #由于是手工静态配置DLCI匹配表,所以关闭反向ARP
R1(config-if)#frame-relay lmi-type cisco #设置LMI类型为cisco封装
R1(config-if)#no shutdown #开启端口
R1(config-if)#exit
R1(config)#int s0/0.1 multipoint #进入S0/0.1多点子接口(必须配置子接口)
R1(config-subif)#ip address 1.1.1.1 255.255.255.0 #子接口配置IP地址
R1(config-subif)#no shutdown
R1(config-subif)#frame-relay map ip 1.1.1.2 102 broadcast #设置手工映射,匹配目标IP地址为1.1.1.2的数据包就封装DLCI号102,其中 broadcast表示允许广播(包含组播)流量通过,便于运行路由协议
R1(config-subif)#frame-relay map ip 1.1.1.3 103 broadcast #设置手工映射,匹配目标IP地址为1.1.1.3的数据包就封装DLCI号103,其中 broadcast表示允许广播(包含组播)流量通过,便于运行路由协议
R1(config-if)#end
查看R1的映射表:(使用'''show frame-relay map')
可以看到现在由于对端尚未配置DLCI映射,PVC状态为 inactive状态。
在帧中继网络中,PVC总共有四种状态:
1)delete:这种状态说明DLCI只配置在本端,运营商端尚未配置该条PVC,为无效PVC,需要确认一下是否输错了DLCI号。
2)static:表示该端口为手工配置,两端不再交换LMI报文来协商PVC状态。
3)inactive:提供了这条PVC且DLCI号在本端是对应的,但是链路尚不可用。
4)active:链路可用,正常传输数据。
R2:
R2(config)#int s0/0 #进入端口S0/0
R2(config-if)#encapsulation frame-relay #封装帧中继
R2(config-if)#no ip address #取消IP地址配置
R2(config-if)#no frame-relay inverse-arp #由于是手工静态配置DLCI匹配表,所以关闭反向ARP
R2(config-if)#frame-relay lmi-type cisco #设置LMI类型为cisco封装
R2(config-if)#no shutdown #开启端口
R2(config-if)#exit
R2(config)#int s0/0.1 multipoint #进入S0/0.1多点子接口(必须配置子接口)
R2(config-subif)#ip address 1.1.1.2 255.255.255.0 #子接口配置IP地址
R2(config-subif)#no shutdown
R2(config-subif)#frame-relay map ip 1.1.1.1 201 broadcast #设置手工映射,匹配目标IP地址为1.1.1.1的数据包就封装DLCI号201,其中 broadcast表示允许广播(包含组播)流量通过,便于运行路由协议
R2(config-subif)#frame-relay map ip 1.1.1.3 203 broadcast #设置手工映射,匹配目标IP地址为1.1.1.3的数据包就封装DLCI号203,其中 broadcast表示允许广播(包含组播)流量通过,便于运行路由协议
R2(config-if)#end
可以看到,当完成R2的配置后,R1上从R1到R2的帧中继PVC状态已经变成active:
继续完成R3的两条PVC链路配置,过程略。
最后当所有的帧中继PVC链路配置完成后,R1,R2,R3的PVC状态应该全部变成active状态。
此时点到多点帧中继搭建完成。如需跑路由协议,可以自建loopback口进行测试。
(2)点到点配置模式
拓扑图如下:
拓扑图说明:
在R1的S0/0上有两个点对点子接口,分别与R2、R3各自的接口对应,且R1的DLCI号分别是102、103,而R2与R3的DLCI号分别是201、301。
R4:
R4(config)#frame-relay switching #成为帧中继交换机
R4(config)#int s0/0
R4(config-if)#no shutdown #开启端口
R4(config-if)#encapsulation frame-relay #封装帧中继
R4(config-if)#frame-relay intf-type dce #设置端口类型为DCE(数据传输端口)
R4(config-if)#frame-relay route 102 int s0/1 201 #设置转发表,从该接口收到DLCI号为102的包则转发到S0/1端口并打上DLCI标签201
R4(config-if)#frame-relay route 103 int s0/2 301 #设置转发表,从该接口收到DLCI号为103的包则转发到S0/2端口并打上DLCI标签301
R4(config-if)#exit
R4(config-if)#int s0/1 #切换到S0/1端口
R4(config-if)#no shutdown #开启端口
R4(config-if)#encapsulation frame-relay #封装帧中继
R4(config-if)#frame-relay intf-type dce #设置类型为DCE
R4(config-if)#frame-relay lmi-type cisco #封装lmi类型为cisco标准
R4(config-if)#frame-relay route 201 int s0/0 102 #设置转发表,从该接口收到DLCI号为201的包则转发到S0/0端口并打上DLCI标签102
R4(config-if)#exit
R4(config-if)#int s0/2 #切换到S0/2端口
R4(config-if)#no shutdown #开启端口
R4(config-if)#encapsulation frame-relay #封装帧中继
R4(config-if)#frame-relay intf-type dce #设置类型为DCE
R4(config-if)#frame-relay lmi-type cisco #封装lmi类型为cisco标准
R4(config-if)#frame-relay route 301 int s0/0 103 #设置转发表,从该接口收到DLCI号为301的包则转发到S0/0端口并打上DLCI标签103
R4(config-if)#exit
R1:
R1(config)#int s0/0
R1(config-if)#no shutdown
R1(config-if)#encapsulation frame-relay
R1(config-if)#frame-relay lmi-type cisco
R1(config-if)#no frame-relay inverse-arp
R1(config)#int s0/0.1 point-to-point #点对点模式下需要进入点对点端口配置模式,配置到R2的点对点子接口
R1(config-subif)#ip address 1.1.1.1 255.255.255.0
R1(config-subif)#frame-relay interface-dlci 102 #点对点模式下不能使用''frame-relay map ip X.X.X.X [DLCI] broadcast''命令
R1(config-fr-dlci)#exit
R1(config)#int s0/0.2 point-to-point #配置到R3的点对点子接口
R1(config-subif)#ip address 1.2.1.1 255.255.255.0
R1(config-subif)#frame-relay interface-dlci 103
R1(config-fr-dlci)#exit
R1(config-subif)#end
R2、R3相同配置略。
最后查看R1的帧中继表可以得知:
R1已经有到达R2、R3的PVC且是active状态。链路标记为point-to-point点对点PVC链路。