vlan笔记

OSI模型:OSI 是不同制造商的设备和应用软件在网络中进行通信的标准,此模型已经成为计算机间和网络间进行通信的主要结构模型。

二层端口

OSI 体系结构定义了一个七层模型用于进行进程间的通信,并作为一个概念性框架来协调各层标准的制定;OSI 的服务定义描述了各层所提供的服务,以及层与层之间的抽象接口和交互用的服务原语;OSI 各层的协议规范精确的定义了应当发送何种控制信息及何种过程来解释该控制信息。下面从上往下介绍OSI七层模型。

  • 应用层:为应用程序提供网络服务。负责对软件提供接口以使程序能享用网络服务。应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。
  • 表示层:数据格式化,加密,解密。表示层中数据将按照网络能理解的方案进行格式转化,管理数据的解密与加密,还对图片和文件格式信息进行解码和编码。
  • 会话层:建立,维护,管理会话连接。负责在网络中的两个节点之间建立和维持通信。会话层的功能包括:建立通信链接和保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。
  • 传输层:建立,维护,管理端到端链接。负责端到端的可靠传输,实现数据通信中通信子网向资源子网的过渡,传输层传输信息的单位称为报文,负责总体数据的传输和控制。这一层主要定义了两个传输协议,TCP 以及 UDP 协议。
  • 网络层:IP寻址和路由选择。它的任务是在数据链路层提供的两个相邻节点之间的数据帧的传送基础上,选择合适的路由与交换节点,使从源节点传输层得到的数据能准确无误、高效地到达目的节点,并交付给目的节点的传输层,主要功能是路由选择、阻塞控制、网络互联。网络层提供了虚电路服务和数据报服务。
  • 数据链路层:控制网络层和物理层之间的通信。局域网的标准将数据链路层分为两个子层:逻辑链路控制子层(LLC)与介质访问控制子层(MAC)。数据链路层的主要功能是将网络层接收到的数据分割成特定的可被物理层传输的帧。
  • 物理层:比特流的传输。在设备之间传输比特流,规定了电平,速度和电缆针脚。

以太网帧

数据包传输到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧/以太网帧)

以太网使用两种标准帧格式,现在大多数数据帧使用的是Ethernet II格式(如下图)

以太网帧

前导码:7 个字节,用于数据传输过程中的双方发送与接收的速率的同步。

SFD:帧开始符,1 个字节,用于标识一个以太网帧的开始。

目的 MAC 地址:6 个字节,指明帧的接收者。

源 MAC 地址:6 个字节,指明帧的发送者。

长度:2 个字节,指明该帧数据字段的长度,但不代表数据字段长度能够达到 2^16 字节。(以太网帧另一种:IEEE802.3数据链路层帧格式,用长度替换掉类型)

类型:2 个字节,指明帧中数据的协议类型,比如常见的 IPv4 中的 ip 协议采用 0x0800。

数据:46~1500 个字节,包含了上层协议传递下来的数据,如果加入数据字段后帧长度不够 64 字节,会在数据字段加入填充字段达到 64 字节。

校验和:4 个字节,对接收网卡(主要是检测数据与填充字段)提供判断是否传输错误的一种方法,如果发现错误,则丢弃此帧。目前最为流行的用于校验和(FCS)的算法是循环冗余校验(cyclic redundancy check – CRC)。

VLAN帧格式

与标准的以太网帧头相比,VLAN帧格式在源地址后增加了一个4字节的802.1Q标签

VLAN

VLAN ID:指明了所属的VLAN,一共有4096个,每个支持802.1Q协议的主机发出来的帧都会保留这个域。

CFI:规范格式指示符,以太网的值为0。

priority:指定帧的优先级。

二层端口

Access 端口

  Access端口主要是用来连接用户主机的二层以太网端口。它有一种最主要的特性就是:仅允许一个VLAN的帧通过,反过来也就是Access端口仅可以加入到一个VLAN中,且Access端口发送的以太网帧永远是Untagged(不带标签)的。

Trunk 端口

  Trunk端口是用来连接与其他交换机的二层以太网端口。它的最主要特性就是允许多个VLAN的帧通过,并且所发送的以太网帧都是带标签的,除了发送VLAN ID与PVID(Port Default VLAN ID,端口缺省VLAN ID)一致的VLAN帧。

Hybird 端口

  Hybrid端口可以说是以上Access端口和Trunk端口的混合体,具有它们共同的特等性,是一种特殊的二层以太网端口。正因如此,Hybrid端口既可以连接用户主机,又可以连接其他交换机、路由器设备。同时Hybrid端口又允许一个,或多个VLAN的帧通过,并可选择以带标签,或者不带标签的方式发送数据帧。

QinQ 端口

  QinQ端口是专用于QinQ协议的二层以太网端口。它可以给数据帧加上双层VLAN标签,即在原来标签的基础上,给帧加上一个新的标签,从而可以支持多达4094×4094个VLAN,满足企业用户网络对VLAN数量更高的需求。S1700和S2700SI不支持QinQ类型端口。

二层端口数据帧处理规则

VLAN帧收发情况

端口类型 收到不带TAG的帧时 收到带TAG的帧时 发送帧时的处理规则 用途
Access端口 接受该帧,打上缺省VLAN的tag 如果VLAN ID和缺省VLAN ID一致,接受;不一致,丢弃 当VLAN ID和缺省VLAN ID一致,去掉tag发送;不一致,丢弃 单一VLAN通过,用于设备和主机连接
Trunk端口 如果有缺省VLAN,打上缺省VLAN的tag。如果没有缺省VLAN,丢弃 查看端口VLAN表中是否允许该VLAN通过。允许,接受;不允许,丢弃 查看端口是否允许此VLAN ID通过。允许的情况下:如果VLAN ID和端口缺省VLAN ID一致,将tag拆除后发送;如果VLAN ID和端口缺省VLAN ID不一致,保留原有tag发送。不允许的情况下:不允许发送 多VLAN通过,用于设备和设备连接
Hybird端口 如果有缺省VLAN,打上缺省VLAN的tag。如果没有缺省VLAN,丢弃 查看端口VLAN表中是否允许该VLAN通过。允许,接受;不允许,丢弃 当帧中携带的 VLAN ID 是该端口允许通过的 VLAN ID 时,发送该帧,可以通过命令配置发送时是否携带原有的tag 多VLAN通过,可以用于设备之间连接,也可以用于设备与主机连接

二层以太网链路

  上节介绍的Access、Trunk和Hybrid这三种以太网端口所形成的链路又可归纳成两种以太网链路:接入链路(Access Link)干道链路(Trunk Link)。它们是根据链路中需要允许通过的VLAN数据帧数量的不同来划分的。

  • 接入链路(Access Link):这是交换机直接连接用户主机的链路。通常情况下,主机并不需要知道自己属于哪个VLAN,主机硬件通常也不能识别带有VLAN标签的帧,所以主机通过接入链路发送和接收的数据帧都是Untagged帧。但一定要注意,接入链路不一定只允许来自一个VLAN的数据帧通过,只是Access端口链路才仅允许一个VLAN数据帧通过,在连接用户主机的Hybrid端口链路上同样允许来自多个VLAN的数据帧(不带标签)通过。
  • 干道链路(Trunk Link):这是用于交换机间的互连或交换机与路由器之间连接的链路。干道链路可以承载多个不同VLAN数据,数据帧在干道链路传输时,干道链路的两端设备需要能够识别数据帧属于哪个VLAN,所以在干道链路上传输的都是Tagged帧,除了该链路的PVID所属VLAN的帧(默认为VLAN1)。

相关推荐/参考

用经验诠释二层以太网端口和链路类型