基础通信学习之四
-
数据链路层技术
-
移动承载网络中的数据链路层技术
作为承载无线基站业务的承载网络,首先要考虑的是基站业务的连通性,要保证基站的数据能够上送到核心网服务器,上网数据能够去往因特网(Internet );然后,需要考虑的是基站业务的可靠性,在网络中的链路节点等出现故障或者性能出现劣化的情况下,具备业务自我恢复的能力。
在移动承载网络的部署中用到了多种协议和保护技术,不同的方案使用的技术稍有区别,综合而言,工作于数据链路层的技术基本上在以下几种技术范围中。
虚拟局域网技术:虚拟局域网(Virtual Local Area Networks VLAN)技术可用于基站之间或者专线用户之间的业务隔离。每个基站或者每个业务属于一个独立的局域网。
链路聚合技术:链路聚合(LAG)技术可以将多条链路进行捆绑,当一条链路出现问题的时候,其余链路能够继续工作,保证业务的正常转发,实现链路的保护。
虚拟路由器冗余技术:虚拟路由器冗余(VRRP)技术用于基站网关的备份保护,基站的网关节点出现故障的时候,可以使用原先的备用节点进行替换工作,保证业务正常。
生成树协议(STP)主要用于二层网络中的环路防范,在二层网络中,可以使用STP构建无环路的二层拓扑,实现业务的正常转发。
-
VLAN技术
传统的以太网交换机在转发数据时,采用基于源MAC地址的学习方式,自动学习各个端口连接的主机MAC地址,形成转发表,然后依据此表进行以太网帧的转发.整个转发的过程自动完成,所有端口都可以互访,维护人员无法控制端口之间的转发。例如,要控制B主机不能访问A主机,这在传统的以太网交换机中无法实现。这也导致了传统的以太网络存在以下缺陷。
1.网络的安全性差。由于各个端口之间可以直接互访,增加了网络攻击的可能性。
2.网络效率低。用户可能收到大量不需要的报文,这些报文同时消耗网络带宽资源和客户主机 CPU资源,例如不必要的广播报文。
3.业务扩展能力差。网络设备平等地对待每台主机的报文,无法实现有差别的服务。例如,无法优先转发用于网络管理的以太网帧。
鉴于这些缺陷,在以太网中引入了VLAN技术来解决这些问题。
-
VLAN简介
虚拟局域网VLAN技术把用户划分为成多个逻辑的网络,每个逻辑网络内的用户形成一个组。组内可以通信,组间不允许通信。二层转发的单播,多播,广播报文只能在组内转发,并且很容易实现组成员的添加或删除。
VLAN技术提供了一种管理手段,能够控制终端之间的互通。如图所示,将不同的终端分别加入不同的VLAN中,不同VLAN之间的用户无法通过二层实现通信,实现了组和组之间的隔离。
为了实现转发控制, VLAN技术在待转发的以太网帧中添加了VLAN标签,然后设定交换机端口对该标签和帧的处理方式。处理方式包括丢弃帧、转发帧、添加标签、移除标签。
转发帧时,通过检查以太网报文中携带的 VLAN标签是否为该端口允许通过的标签,可判断出该以太网帧是否能够从端口转发。如图所示,通过VLAN技术将A发出的所有以太网帧都加上了标签VLAN5,此后查询二层转发表,根据目的MAC地址将该帧转发到8连接的端口。由于将该端口配置为仅允许VLAN通过,所以A发出的帧将被丢弃。
![]()
支持VLAN技术的交换机,转发以太网时不再仅仅依据目的MAC地址,同时还要考虑该端口的VLAN配置情况,从而实现了对二层转发的控制。
-
VLAN帧格式
在以太帧中添加的VLAN标签长度为32位( bit ),将其直接添加在以太网帧头中,IEEE802.1q文档对VLAN标签做出了说明。
VLAN标签由TPID和TCI两部分构成,其中TCI中包含了3个字段:PRI、 CFI、 VLAN ID.下面列出具体说明。
![]()
-
标签协议标识(Tag Protocol ldentifier,TPI) : 16位,固定取值, Ox8100,是IEEE定义的新类型,表明这是一个携带802.10标签的帧。
-
优先级( Priority) : 3位.指示以太网帧的优先级。一共有8种优先级,0~7,用于提供有差别的转发服务。
-
标准格式指示( Canonical Format Indicator, CFI ) : 1位,用于令牌环/源路由FDDI介质访问中指示地址信息的位次序信息,即先传送的是低位还是高位。
-
VLAN标识(VLAN Identifier, VLAN ID ) : 12 位,取值为O~4095,就是VLAN标签。结合交换机端口的VLAN配置,能够控制以太网帧的转发。
VLAN技术的出现,使得现在的交换网络环境中存在两种报文:没有加上VLAN标记的标准以太网帧 ( Untagged frame )和有VLAN标记的以太网帧(Tagged f rame)。
-
VLAN的划分方式
所有以太网帧在交换机内都是以Tagged frame 的形式流动的,即某端口从本交换机其他端口收到的帧一定是Tagged的。注意是交换机内部,某端口从对端设备收到的帧,可能是Untagged或者是Tagged的。如果收到的是 Tagged frame,则进入转发过程;如果该端口收到的是Untaggedframe,则必须加上标签。
给数据帧加上标签可以通过以下五种方法。
-
基于端口port。网络管理员给交换机的每个端口配置端口默认VLAN(port VLAN ID,PVID),如果收到的是untagged帧,则VLAN ID的取值为PVID。
-
基于MAC地址。网络管理员配置好MAC地址和VLAN ID的映射关系表,如果收到untagged帧,则依据该表添加VLAN ID。
-
基于协议。网络管理员配置好以太网中的协议域和VLAN ID的映射关系表。如果收到的是untagged帧,则依据该表添加VLAN ID。
-
基于子网。根据报文中的IP地址信息,确定添加的VLAN ID。
-
基于策略。安全性高,可基于MAC地址+IP,MAC地址+IP+接口,成功划分VLAN后,可以达到禁止用户改变IP地址或MAC地址的目的。
设备在同时支持多种方式时,一般情况下,会按照优先级顺序选择给数据帧添加VLAN的方式:基于策略→基于MAC地址→基于子网→基于协议→基于端口。
基于端口划分VLAN的优先级最低,但却是最常用的VLAN划分方式。如下图:
![]()
-
VLAN的基础概念
VLAN技术的出现使得交换网络中存在了带VLAN的以太网帧和不带VLAN的以太间帧a 因此,相应地也对链路做了区分,分为接入链路和干道链路。
-
接入链路access link,连接用户主机和交换机的链路为接入链路。接入链路上通过的帧为不带Tag的以太网帧。
-
干道链路trunk link,连接交换机和交换机的链路,干道上的通过的帧一般为带tag的VLAN帧,也允许通过不带Tag的以太网帧。
同样的,基于对VLAN标签不同的处理方式,也对以太网交换机的端口做了区分,分为以下三类。
-
接入端口Access Port,此端口是交换机上用来连接用户的主机的端口,只能连接接入链路,在同一时刻,access端口只能归属于一个VLAN,即只能允许一个VLAN的帧通过。access口接收到的都是untagged帧,接收帧时,给帧打上tag,发送时,将帧中的tag去掉。
-
干道端口Trunk Port,此端口是交换机与交换机连接的端口,允许多个VLAN的帧通过。
在接收帧时,如果没有Tag,则标记上该端口的默认VLAN ID;如果有Tag,则判断该干道端口是否允许该VLAN帧进入,如果不允许进入,则丢弃该帧。
在发送帧时,如果VLANID跟默认VLANID相同,则剥离VLAN;如果跟默认VLANID不同,则直接发送。
-
混合端口(Hybrid Port)。混合端口是交换机上既可以连接主机又可以连接其它交换机的端口。既可以连接接入链路又可以连接干道链路。混合端口允许多个VLAN帧通过。
在接收帧时,如果没有Tag,则标记上混合端口的默认VLAN ID;如果有Tag,则判断该混合端口是否允许该VLAN帧进入,允许则进行下一步处理,否则丢弃帧。
在发送帧时,交换机会判断VLAN在本端口的属性是Untag还是Tag。注意是本端口的属性,如果是Untag,则先剥离帧的 VLAN Tag,再发送;如果是Tag,直接发送帧。
4默认VLAN
在交换机上,每个端口都可以配置一个默认VLAN。
-
接入端口只允许一个VLAN的帧通过,该VLAN即为接入端口的默认VLAN。
-
干道端口允许多个VLAN 通过,可以指定其中一个VLAN 作为默认VLAN,如果接收到了不带VLAN的数据帧,则给数据帧加上默认VLAN标签。在往外发送时,如果VLANID 和默认VLANID相同,则剥离标签。
-
混合端口也允许多个VLAN通过,指定其中一个VLAN作为默认VLAN,在接收到不带VLAN的数据帧时,给数据帧加上默认VLAN标签。对外发送时,根据端口的 Untag/tag 方式进行判断处理。
-
-
VLAN内通信
以太网帧中的标签,结合交换机端口的VLAN配置,实现对报文转发的控制。从某端口A收到以太网帧,如果转发表显示目的MAC地址存在于B端口下,则该以太网帧从B端口转发出去。但在引入VLAN后,该帧是否能从B端口转发出去。有以下两个关键点。
-
该帧携带的VLAN ID是否被交换机创建?
-
目的端口是否允许携带该VLAN ID的帧通过?
转发过程中,标签操作类型有以下两种。
-
添加标签:对 Untagged frame 添加PVID,在端口收到对端设备的帧后进行。
-
移除标签:删除帧中的VLAN信息,以 Untagged frame 的形式发送给对端设备。
注意,正常情况下,交换机不会更改 Tagged frame 中的VLANID的值(某些设备支持的特殊业务,可能提供更改VLANID的功能)。交换机对于VLAN的常规处理流程如图所示。
![]()
在多个交换机组成的网络中,如何实现VLAN内的数据互通,主要依据的就是交换机对于VLAN的处理如下图所示,为了让交换机SWA和SWB之间的链路既支持VLAN2内的用户通信,又支持VLAN3 内的用户通信,需要配置连接端口同时属于两个VLAN。即应配置SWA的以太网端口GE0/0/2和SWB的以太网端口GE0/0/1既属于VLAN2 又属于VLAN3。
当用户主机 Host A发送数据给用户主机 Host B 时,数据帧的发送过程有以下 6 步。
-
数据帧首先到达SWA的端口GE0/0/4。
-
端口GE0/0/4给数据帧加上Tag,Tag的VID字段填入该端口所属的VLAN的编号2。
-
SWA查找MAC地址表,将该帧转发到相应的出端口GE0/0/2(如果是广播报文,则将数据帧发送到本交换机上除GE0/0/4外的所有属于VLAN2的端口)。
-
端口GE0/0/2将帧向外转发,一直发送到SWB。
-
SWB收到帧后,会根据帧中的Tag识别出该帧属于VLAN2,查找MAC地址表,将该帧转发到相应的出接口(如果是广播报文,则将该帧发给本交换机上除GE0/0/1外所有属于VLAN2的端口)。
-
端口GE0/0/3将数据帧发送给主机Host B。
VLAN3 内的主机通信同理。
![]()
-
-
VLAN间通信
VLAN隔离了二层广播域,也就严格地隔离了各个VLAN之间的任何流量,分属于不同VLAN的用户不能互相通信。
不同VLAN之间的流量不能直接跨越VLAN的边界,需要使用路由,通过路由将报文从一个VLAN转发到另外一个VLAN。
如图所示VLAN100的主机和VLAN200的主机分别属于网关192.168.100.0/24 和 192.168.200.0/24,主机之间不能直接通过交换机进行通信。VLAN200的主机会将数据转发给网关192.168.200.1,网关路由器进行三层路由查找,将数据从VLAN100的网关接口Ethernet1发出。VLAN100的网关再将数据转发给VLAN100的主机。
![]()
解决VLAN间互通的方法有如下三种:
-
为每个VLAN分配一个单独的路由器接口
在二层交换机上配置VLAN,每一个VLAN使用一条独占的物理连接,连接到路由器的一个接口上,如下图所示,VLAN100接入路由器的接口Ethernet2,VLAN200接入路由器的接口Ethernet1 , VLAN300 接入路由器的接口EthernetO。不同VLAN之间的数据通信,都通过路由器进行三层的路由转发,从而实现VLAN之间相互通信。
![]()
但是,随着每个交换机上VLAN数量的增加,这样做必然需要大量的路由器接口。出于成本的考虑,一般不用这种方案来解决VLAN间路由选择问题。此外,某些VLAN之间可能不需要经常进行通信,这样导致路由器的接口没被充分利用。
2.多个VLAN共用一条物理链路。
二层交换机上和路由器上配置它们之间相连的端口使用VLAN Trunking,使多个VLAN共享同一条物理连接到路由器,如图所示,路由器仅仅提供一个以太网接口,而在该接口下提供三个子接口,分别作为三个VLAN用户的默认网关。当VALN100的用户需要与其他VLAN的用户进行通信时,该用户只需将数据包发送给默认网关,默认网关修改数据帧的VLAN标签后再发送至目的主机所在VLAN,即完成了VLAN间的通信。
![]()
这种方式也称为独臂路由或者单臂路由,它只需要一个以太网接口,通过创建子接口可以承担所有 VLAN的网关.从而在不同的VLAN间转发数据。
3.三层交换机
三层交换机集成了路由器和交换机的功能,融合了路由器和交换机各自的优势,在功能上实现了 VLAN 的划分、 VLAN内部的二层交换和VLAN间路由的功能。
三层交换机中的路由软件模块具有路由器的功能,能实现三层路由转发;二层交换模块则具有交换机的功能,实现VLAN内的二层快速转发。其用户设置的默认网关就是三层交换机中虚拟VLAN接口的IP地址。
![]()
相较于前两种方案,对于三层交换机的应用,可以不用在部署中增加路由器,简化了整个网络的结构。
-
-
VLAN故障案例
案例1: VLAN接口不能互通的故障。
两台交换机SWA和SWB互联。将SwitchA的GE0/0/1接口配置为接入链路类型,配置端口的默认VLAN为2。将SwitchB的GE0/0/1接口配置为干道链路类型,允许端口透传VLAN 2,但干道接口的默认VLAN使用默认值VLAN1。交换机A和交换机B上分别配置VLAN2的IP地址10.1.1.1/24和10.1.1.2/24。
从Switch A上ping Switch B的VLAN接口IP 地址,报文不通。
![]()
故障原因分析:
Switch A的端口GE0/0/1被设置为接入模式,根据接入接口的工作原理,在发送时会将数据帧上携带的VLAN剥离,因此从SwitchA的GE0/0/1端口出来的数据帧是一个Untagged帧,不携带VLAN信息。
当数据帧到达Switch B时,因为Switch B的接口GE0/0/1被设置成了干道接口,根据干道接口的工作原理,对于不带VLAN的数据帧,会给数据帧打上一个标签,但这个标签是干道接口的默认 VLAN。在本例中, Switch B的GE0/0/1接口的默认VLAN是VLAN1,并不是VLAN2。因此,从SwitchA出来的数据帧,在进入Switch B时,被打上的是VLAN1的标签。
因此, SwitchA的VLAN2的数据并不能被Switch B的VLAN2接收.而是被Switch B上的VLAN1接收了,双方无法ping通。
故障解决方法:
-
将switch A的接口VALN改成VLAN1
-
将switch B的接口的VLAN2设置为PVID.
案例2: VLAN透传错误造成环路
两台交换机的GE0/0/10端口互联,并透传VLAN1000。在两台交换机上分别配置VLAN1000的三层地址作为交换机的网管地址。把交换机的GE0/0/11端口互联,作为两台交换机的数据交换接口,并透传所有VLAN(除了VLAN1)。
![]()
GE0/0/11端口互联之前,网管能够正常工作,当连接GE0/0/11端口并透传VLAN后,网管数据经常丢包,管理界面响应缓慢。
故障原因分析:
在上述的组网配置中,GE0/0/10端口允许VLAN1000通过;同样的,GE0/0/11端口也允许VLAN1000通过。
假设此时, Switch A发送一个VLAN1000的ARP广播帧,请求某个IP 的MAC地址。根据交换机对于广播帧的处理方式, SwitchA 会将该广播帧分别从端口GE0/0/10和GE0/0/11发出。
Switch B收到GE0/0/10的广播帧后,依据广播帧处理原则,会将该广播帧从其余允许VLAN 1000通过的端口广播出去,如会从GE0/0/11端口发出。同样的,SwitchB从GE0/0/11端口接收的广播帧也会从GE0/0/10端口发出。
经过SwitchB的处理,SwitchA发出的广播帧又回到了SwitchA,整个数据转发形成了一个二层的环路。这就导致了网络中的二层广播数据越来越多,从而挤占链路的带宽资源,导致正常的业务数据的转发越来越慢,甚至最终导致链路带宽被全部占用,无法进行业务数据的正常转发。
故障解决方法:
1.在SwitchA和SwitchB的GE0/0/11接口上禁止VLAN1000通过。
2.部署STP等防环协议。
-












浙公网安备 33010602011771号