DLCI仅具有局部性,即不同设备上的DLCI号可以重复使用,但是在同一个设备上的同一个接口下DLCI不能重复使用。因为DLCI只具有局部意义,使用DLCI时的真正限制只是它不能在同一个接口上被用于标识到不同目的地的多条VC。
DLCI号码0-15以及1008-1023这一部分范围是做特殊用途的。因此,电信分配给用户的DLCI一般在16-1007这一段范围。多播可以使用1019和1020。Cisco LMI使用DLCI1023,ANSI使用DLCI 0。在路由器可以通过LMI来获取本地的DLCI号,通过反向ARP来获取远端路由器的IP地址与本地DLCI的映射关系。路由器也支持使用手动的方式静态将DLCI和IP地址映射,格式如下:
分析:到达10.1.1.1经过本机的DLCI500出去!也就是对方的地址和本端的DLCI号。如果没有这个表,就会导致传输失败,因为路由器上有多个端口,不知道通过哪个端口可以正确的到达对方!
但注意一点的是这个号是用于帧中继交换机上的,所以这个号不是用户自己取的,是ISP定义好,然后将给用户,用户直接使用。
LMI:中文意思:本地管理接口,是本地路由器和FR之间的信令协议标准,负责管理链路连接和保持设备间的状态。包括全局寻址,虚电路状态和多目发送等功能。但负责的仅仅是本路由器到ISP帧中继之间这一段的链路状态,和其他的路由器没有关系。
思科支持三种LMI信令标准:Cisco,ANSI,Q933a
我们以这个图为例:可以看到上面的PVC使用的就是DLCI100和DLCI200建立起来的,而下面的PVC是使用DLCI400和DLCI500建立起来的,但这两条PVC是虚拟的,不是物理存在的,真正传输数据时靠的还是云中的交换机。至于中间经过多少交换机,每个交换机之间如何连接用户就不用管了,这就是ISP的事情。
这个图就是一个星型拓扑,其中Router A是中心节点,Router B和Router C是分支节点,它们如果想通讯也要经过Router A.
但是这个反转ARP是什么意思咱们来看一下,如图所示:
这个图的意思是说,通过FR来实现一个路由器到另一个路由器有两种方法:
反转ARP或者静态FR 地址表。我们先来看看反转ARP。
大体工作过程如下:
1两端路由器分别与交换机连接正确。
2两端路由器与交换机发起LMI状态请求。
3交换机向两端路由器返回DLCI信息及状态。
4两端路由利用反向ARP进行DLCI与IP的映射
5 路由器将数据包封装成FR
6 继续执行反向ARP
7 LMI进行
我们结合思科给出的一个实例来说明此工作过程:
分析:从上图中可以看到第一步是连接,第二步是路由器向交换机发送自己的初始状态及LMI状态请求,,第三步是交换机向路由器返回DLCI信息及状态,主要就是自己的DLCI号码。第四步就是两端路由器同时发过Hello报文,我是谁,发给对方!第五步就是对方收到后将此信息封闭成FR帧。即对方的IP和自己的DLCI号码的一个表。对方的IP第四步对方发过来的,DLCI号码是第三步交换机发给自己的。此时,它们就可以通讯了。注意:双方同时进行
第六步以及第七步,是周期性的执行第四步和第五步并发出keepalives来维护PVC链接。
当然如果是手动设置FR地址表也很简单:在配置下FR的主体配置后加上一条:
Frame-relay map ip 对端IP 自己的DLCI号 broadcast 即可!
有的朋友可能不明白这里为什么要加上 broadcast:因为我们在这里使用的FR是NBMA的方式,不支持广播,而我们的路由协议如RIP等是需要用到广播包的,因此在这里加上 broadcast参数!
以上就是FR的工作过程。下面咱们来看一下具体如何配置FR:
在FR下的封装需要注意的是思科路由器上的默认封装类型是Cisco,而其他厂家默认封装的是IETF,所以如果是思科路由器对连的配置中可以使用默认的封装命令。但如果是其他厂家就必须改为IETF,或是将其他厂家的改为Cisco.
在思科IOS12.0以前的版本中FR时如果需要更改LMI类型则需要手动指定。但12.0以后的版本中LMI的类型是自动匹配的,所以不需要手动指定LMI的类型。如下图所示:
其中bandwidth 64 命令所指定的带宽仅用于路由协议计算路由信息使用,并不会对实际链路的速率产生任何影响。
关于FR还有一个重要的知识点就是路由信息的可达性:
什么意思呢?我们在前面距离矢量路由协议中介绍为了防止路由环路可以使用水平分割的方法,但是如果在FR中使用了水平分割会出现一些问题,如:
BCD都和A的一个端口相连,水平分割规定从一个端口学到的路由不能从这个端口再发出去,所以如果A学到了B的路由,但不能通过这个端口发出去,那么C和D就不知道B的路由,不能和B通讯!
那么怎么解决这个问题?有两个方法,一关闭水平分割,二是使用子接口,当然推荐使用的是子接口,下面咱们就来看看怎么使用子接口。
所谓子接口就是将一个物理接口划分为多个逻辑接口。我们划分子接口可以解决子平分割的问题,那么就变成了下图:
此时就把A上的物理接口分成了三个逻辑接口,每一个接口连接一个网络,配置不同的网段IP,这样就解决了水平分割的问题。
有人着急了问,子接口怎么配置呢?在配置时候又有点小麻烦,就是这个子接口分为点到点子接口和点到多点子接口。我们先来看一下点到点:P2P
点到点结构则该子接口所连接的PVC在传递数据包的时候像专线一样。
多点子接口,指的是利用一个单独的子接口来建立多条PVC,然后连接到远端路由器上。所有的接口都在同一个子网中。
关于点到点和点到多点的实验在此不再细讲,给出思科的官方PPT上的实验,供大家参考:
1 点到点实验