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

2024-02-29 05:20

本文主要是介绍用经验诠释二层以太网端口和链路类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    以下内容摘自正在当当网、京东网、卓越网、互动出版网预售即将正式发售的《华为交换机学习指南一书(全书近千页)。本书是由华为官方授权,国内第一本,也是唯一一本华为交换机权威学习指南,是华为ICT认证培训指定教材。

当当网链接:http://product.dangdang.com/23372225.html
京东网链接:http://item.jd.com/11355972.html  

卓越网上的链接:http://www.amazon.cn/dp/B00GT743ME/ref=sr_1_1

互动出版网上的链接:http://product.china-pub.com/3768908#ml

可在这里在线试读或下载本书两章完整的内容:http://wenku.it168.com/d_001324890.shtml

6.2.1 二层以太网端口

      在华为交换机中主要包括:Access(访问)、Trunk(干道)和Hybrid(混合)、QinQ这四种二层以太网端口。在本节介绍的基于端口VLAN划分方式中可以把前三种二层交换机以太网端口加入到特定的VLAN中,但是其它所有VLAN划分方式都只能添加Hybrid类型端口QinQ端口仅用于支持QinQ协议,不能用于VLAN划分。

1.    二层以太网端口类型

    下面具体介绍华为交换机的AccessTrunkHybridQinQ这四种二层以太网端口的基本特性和数据帧发、发规则。

l  Access端口

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

l  Trunk端口

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

l  Hybrid端口

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

l  QinQ端口

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

     【经验之谈】虽然理论上来讲交换机与交换机、交换机与路由器连接之间的链路也可以是Access类型的,但在实际的组网应用通常是带标签类型的,可以是Trunk类型,也可以是带标签的Hybird类型。一方面是因为不同网络设备间的通信通常是包含多个VLAN间的通信,而Access类型端口仅允许一个VLAN的数据通过,肯定不行;另一方面,Access类型和不带标签的Hybrid类型在发送数据时是不带标签的,这样一来,对端设备接口接收到来自本端设备任何VLAN的数据后都将打上该接口的PVID所对应的VLAN标签,并且被错误地转发到该VLAN中,这显然不符合实际需求,最终造成无法正常通信。

      另外,对于连接用户PC机、服务器主机或者傻瓜式二层交换机设备的端口仅可以是Access类型或者不带标签的Hybrid类型,因为这些设备不能识别带有VLAN标签的数据帧,而这两种类型端口在发送数据时正好是不带VLAN标签的。傻瓜式二层交换机设备所连接的所有设备都将加入到对端交换机端口所加入的一个VLAN中。

2.    二层以太网端口的缺省VLAN

      以上AccessTrunkHybrid三种类型二层以太网端口都可以配置一个缺省VLAN,对应的VLAN IDPVID。但端口类型不同,其缺省VLAN的含义也有所不同。Aceess端口的缺省VLAN就是Access端口所加入的VLAN,因为Aceess端口只能加入一个VLAN。但TrunkHybrid端口的缺省VLAN需要通过命令配置指定,因为它们都相当于加入了多个VLAN,缺省都是VLAN1。有关缺省VLAN的具体配置方法将在本章后面介绍TrunkHybrid端口配置时会有所体现。

3.    二层以太网端口的数据收发规则

    以上AccessTrunkHybrid三种类型二层以太网端口在接收和发送数据帧时对帧的处理规则也是不同的,而这些规则直接影响着数据通信的成败,一定要记住。具体如表6-2所示。

     【经验之谈】这里所说的数据帧指交换机端口接收从对端设备发来的数据帧,而不是接收从交换机内部的另一个端口发来的数据帧,因为在交换机内部中传输的数据帧都是带有VLAN标签的,无论是从哪种交换机端口发来的数据帧。同理,这里所说的数据帧指从交换机端口向对端设备发送数据帧,而不是指本地交换机中一个端口向另一个交换机端口发送数据帧。这一点要特别注意,否则很难理解这些端口的数据接收、发送规则。

表6-2  二层以太网端口数据帧处理规则

端口类型

收到不带VLAN标签的帧的处理规则

收到带VLAN标签的帧的处理规则

发送帧时的处理规则

用途

Access端口

接收该帧,并打上该端口所加入VLAN的VLAN标签

当帧中的VLAN ID与端口加入的VLAN的VLAN ID相同时接收该帧,否则丢弃该帧

当帧中的VLAN标签与该端口的PVID相同时,则去掉帧中的标签,然后发送该帧,否则丢弃该数据帧。Access端口所发送的帧总是不带VLAN标签的

端口只能属于1个VLAN,用于设备与计算机直接连接

Trunk端口

在帧中打上该端口的缺省的VLAN标签,当此缺省VLAN ID在该端口允许通过的VLAN ID列表里时,接收该帧,否则丢弃该帧

当帧中的VLAN ID在该端口允许通过的VLAN ID列表里时,接收该帧,否则丢弃该帧

当帧中的VLAN ID与该端口的缺省VLAN ID相同,且是该端口允许通过的VLAN ID时,则去掉帧中的VLAN标签后再发送该帧

当帧中的VLAN ID与该端口的缺省VLAN ID不同,但仍是该端口允许通过的VLAN ID时,保留帧中原有VLAN标签并发送该帧

当帧中的VLAN ID不是该端口允许通过的VLAN ID时,不允许发送

端口允许多个VLAN通过,可以接收和发送多个VLAN的帧,一般用于网络设备之间的连接

Hybrid端口

当帧中的VLAN ID是该端口允许通过的VLAN ID时,则发送该帧(不管帧中的VLAN ID与该端口的缺省VLAN ID是否相同),但可以通过命令配置发送时是否携带原有的VLAN标签(通常只有在与主机连接的链路不需要带VLAN标签

当帧中的VLAN ID不是该端口允许通过的VLAN ID时,丢弃该帧

端口允许多个VLAN通过,可以接收和发送多个VLAN的帧,且既可以用于网络设备之间的连接,也可以用于网络设备与用户设备之间的连接


     【经验之谈】这里有一个大家争论得比较多的一个问题,那就是帧到达Access端口时交换机是否会为帧打上VLAN标签。因为许多认为既然Access端口所发送的帧都是不打VLAN标签的,所以有人认为Access端口在帧中打上标签是没有任何意义的,也就认为Access端口不会在帧中打上标签。其实这是错误的。

      虽然Access端口向对端设备发送数据时是不带VLAN标签的,但是数据到了交换机后还需要一个转发过程,在交换机内部传输中所有数据都是带有VLAN标签的(当然这要求交换机支持VLAN才行),而且也有许多时候数据不是直接转发到目的节点的,而是需要在交换机上进行一些处理(如基于VLAN的策略路由、基于VLANACL等),或者进行端口镜像等管理工作,这些都需要识别这些数据是来自哪个VLAN的用户,毕竟在一个交换机的这么多端口上可能分属于不同的VLAN

6.2.2 二层太网链路

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

l  接入链路(Access Link):这是交换机直接连接用户主机的链路。通常情况下,主机并不需要知道自己属于哪个VLAN,主机硬件通常也不能识别带有VLAN标签的帧,所以主机通过接入链路发送和接收的数据帧都是Untagged帧。但一定要注意,接入链路不一定只允许来自一个VLAN的数据帧通过,只是Access端口链路才仅允许一个VLAN数据帧通过,在连接用户主机的Hybrid端口链路上同样允许来自多个VLAN的数据帧(不带标签)通过。

l  干道链路(Trunk Link):这是用于交换机间的互连或交换机与路由器之间连接的链路。干道链路可以承载多个不同VLAN数据,数据帧在干道链路传输时,干道链路的两端设备需要能够识别数据帧属于哪个VLAN,所以在干道链路上传输的都是Tagged帧,除了该链路的PVID所属VLAN的帧(默认为VLAN1)。

6-6显示了以上两种链路类型及所传输的帧类型(带有Tag的帧和Untagged帧),从中可以发现,在交换机设备之间的链路都属于干道链路,传输的是带有Tag的帧;而在交换机与主机设备之间的可以是接入链路,也可以是干道链路,具体要视主机所连接的交换机端口类型而定,但传输的都是Untagged的帧。


图6-6 两种链路类型及可传输的帧类型

     【说明】交换机在接收到帧后,会根据对应端口类型采取相应的数据收、发处理。如果帧需要通过另一台交换机转发,则该帧必须通过干道链路透传到对端交换设备上。为了保证其它交换设备能够正确处理帧中的VLAN信息,在干道链路上传输的帧必须都打上了VLAN标签。

      当交换机最终确定帧出端口后,在将帧发送给主机前需要将VLAN标签从帧中删除,这样主机接收到的帧都是不带VLAN标签的以太网帧,也只有这样主机才可能识别。所以一般情况下,干道链路上传输的都是带VLAN标签的帧,接入链路上传送到的都是不带VLAN标签帧。这样处理的好处是:网络中配置的VLAN信息可以被所有交换设备正确处理,而主机不需要了解VLAN信息。

这篇关于用经验诠释二层以太网端口和链路类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/757695

相关文章

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

C#之枚举类型与随机数详解

《C#之枚举类型与随机数详解》文章讲解了枚举类型的定义与使用方法,包括在main外部声明枚举,用于表示游戏状态和周几状态,枚举值默认从0开始递增,也可手动设置初始值以生成随机数... 目录枚举类型1.定义枚举类型(main外)2.使用生成随机数总结枚举类型1.定义枚举类型(main外)enum 类型名字

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2