交换机端口相关技术术语
2014-10-24 17:40:32 阿炯

一般来说,交换机的端口可以以tag的方式属于多个VLAN,但只能以untag的方式属于一个VLAN。untag的方式属于的那个VLAN,称做端口的本征VLAN。而以tag方式加入的那些VLAN,就是端口的关联VLAN了。

当一个端口收到一个不带802.1Q标记的以太网帧时,它会在该数据帧中插入该端口的本征vlan(default VID)的Tag标记值,并会在本征Vlan关联的端口根据FDB表转发。如果根据FDB表查得的端口以tagged模式属于Vlan,交换机会保留以太网帧中的802.1Q标记并从该端口转发出去,如果是untag的,则去掉802.1Q标记并从该端口转发出去。

当一个端口收到一个带802.1Q的以太网帧时,它会比较该以太网帧中的VLAN ID和所有本端口所关联VLAN的Tag标记值:
A、如果有匹配的,就往该VLAN ID所标示的VLAN中转发,出端口处理方式同上

B、如果都不匹配,则丢弃该数据

注:FDB表,即MAC地址转发表,记录着各端口及下面端口各MAC地址的对应关系。

PVID:端口缺省VID,不带标签的帧进入交换机时会打上这个VID

VLAN ID:VLAN的标识号,范围1-4095,可简写为VID

Tag:带有的标记的帧

UNTAG:不带标记的帧

一、相关定义
1、Trunk口,Trunk口上可以同时传送多个VLAN的包,一般用于交换机之间的链接。

2、Hybrid口,Hybrid口上可以同时传送多个VLAN的包,一般用于交换机之间的链接或交换机于服务器的链接。

3、Access口,Access口只能属于1个VLAN,一般用于连接计算机的端口。

4、Tag和Untag,tag是指vlan的标签,即vlan的id,用于指明数据包属于那个vlan,untag指数据包不属于任何vlan,没有vlan标记。

5、pvid,即端口vlan id号,是非标记端口的vlan id 设定,当非标记数据包进入交换机,交换机将检查vlan设定并决定是否进行转发。一个ip包进入交换机端口的时候,如果没有带tag头,且该端口上配置了pvid,那么,该数据包就会被打上相应的tag头!如果进入的ip包已经带有tag头(vlan数据)的话,那么交换机一般不会再增加tag头,即使是端口上配置了pvid号。

二、端口的Tag和Untag
若某一端口在vlan设定中被指定为非标记端口(untagged port), 所有从此端口转发出的数据包上都没有标记 (untagged)。若有标记的数据包进入交换机,则其经过非标记端口时,标记将被去除。因为目前众多设备并不支持标记数据包,其也无法识别标记数据包,因此需要将与其连接的端口设定为非标记。 

若某一端口在vlan设定中被指定为标记端口(tagged port), 所有从此端口转发出的数据包上都将有标记 (tagged)。若有非标记的数据包进入交换机,则其经过标记端口时,标记将被加上。此时其将使用在端口上的pvid设定作为增加的标记中的vlan id号。

三、端口的封装类型:ISL、802.1Q
ISL Trunk上所有的包都是tag的(Cisco专用)。

802.1q 设计的时候为了兼容与不支持VLAN的交换机混合部署,特地设计成可以不tag:但是只有一个VLAN允许不tag,这样N个VLAN,(N-1)个都tag了,不tag的包一定是来自那个特殊VLAN的,所以不会乱套(当然也可以所有VLAN都tag)。

四、各端口收发数据的区别


以太网端口有三种链路类型:Access、Hybrid和Trunk。

Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;

Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;

Hybrid类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。

Hybrid端口和Trunk端口的不同之处在于Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。

Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置。

Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1。

如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。

另外需要注意的是:

(1)、Trunk端口不能和isolate-user-vlan同时配置;Hybrid端口可以和isolate-user-vlan同时配置。但如果缺省VLAN是在isolate-user-vlan中建立了映射的VLAN,则不允许修改缺省VLAN ID,只有在解除映射后才能进行修改。

(2)、本Hybrid端口或Trunk端口的缺省VLAN ID和相连的对端交换机的Hybrid端口或Trunk端口的缺省VLAN ID必须一致,否则报文将不能正确传输。

以下案例请大家深入理解华为hybrid模式
[Switch-Ethernet0/1]int e0/1
[Switch-Ethernet0/1]port link-type hybrid
[Switch-Ethernet0/1]port hybrid pvid vlan 10
[Switch-Ethernet0/1]port hybrid vlan 10 20 untagged
[Switch-Ethernet0/1] int e0/2
[Switch-Ethernet0/2]port link-type hybrid
[Switch-Ethernet0/2]port hybrid pvid vlan 20
[Switch-Ethernet0/2]port hybrid vlan 10 20 untagged

此时inter e0/1和inter e0/2下的所接的PC是可以互通的,但互通时数据所走的往返vlan是不同的。以下以inter e0/1下的所接的pc1访问inter e0/2下的所接的pc2为例进行说明。

pc1所发出的数据,由inter0/1所在的pvid vlan10封装vlan10的标记后送入交换机,交换机发现inter e0/2允许vlan 10的数据通过,于是数据被转发到inter e0/2上,由于inter e0/2上vlan 10是untagged的,于是交换机此时去除数据包上vlan10的标记,以普通包的形式发给pc2,此时pc1->p2走的是vlan10

再来分析pc2给pc1回包的过程,pc2所发出的数据,由inter0/2所在的pvid vlan20封装vlan20的标记后送入交换机,交换机发现inter e0/1允许vlan 20的数据通过,于是数据被转发到inter e0/1上,由于inter e0/1上vlan 20是untagged的,于是交换机此时去除数据包上vlan20的标记,以普通包的形式发给pc1,此时pc2->pc1走的是vlan20。


交换机接口出入数据处理过程

HCSE的教材上根本没有讲各种接口接收带TAG的FRAME时候的规则,所以以前老是以为是跟发送的规则一样,走了很多弯路废了好多脑细胞,痛苦啊。跟很多培训过的兄弟交流过都深有同感。

tag就是普通的ethernet报文,报文结构的变化是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,也就是vlan tag头;untag就是普通的ethernet报文,比tag报文少了4 bytes字节。

情况列举 Switch收发 Switch对标记的处理 remark
Access (接收) Tagged = PVID 不接收 注:部分高端产品可能接收。
Access (接收) Tagged =/ PVID 不接收 注:部分高端产品可能接收。
Access (接收) Untagged 接收 增加tag=PVID 从PC

Access (发送) Tagged = PVID 转发 删除tag
Access (发送) Tagged =/ PVID 不转发 不处理
Access (发送) Untagged 无此情况 无此情况 无此情况

Trunk (接收) Tagged = PVID 接收 不修改tag
Trunk (接收) Tagged =/ PVID 接收 不修改tag
Trunk (接收) Untagged 接收 增加tag=PVID
Trunk (发送) Tagged = PVID If Passing then 转发 删除tag
Trunk (发送) Tagged =/ PVID If Passing then 转发 不修改tag
Trunk (发送) Untagged 无此情况 无此情况 无此情况(注)

Hybrid (接收) Tagged = PVID 接收 不修改tag 对端是trunk
Hybrid (接收) Tagged =/ PVID 接收 不修改tag 对端是trunk
Hybrid (接收) Untagged 接收 增加tag=PVID 类Trunk
Hybrid (发送) Tagged = PVID Tag 和 untag 中列出的vlan可以passing 看Tag项和untag项
Hybrid (发送) Tagged =/ PVID Tag 和 untag 中列出的vlan可以passing 看Tag项和untag项
Hybrid (发送) Untagged 无此情况 无此情况 无此情况(注)

解释如下
收报文:
Acess端口:
1、收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)

发报文:
Acess端口:
1、将报文的VLAN信息剥离,直接发送出去

收报文:
trunk端口:
1、收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃

发报文:
trunk端口:
1、比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送

收报文:
hybrid端口:
1、收到一个报文
2、判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃

发报文:
hybrid端口:
1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag, 哪些VLAN是tag)
2、如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送


也说二层交换机


学习计算机网络,其实就是学习网络协议。通过各种各样的网络协议,实现不同的网络需求。当然,网络协议不是凭空存在的,而是运行在网络设备上。搞懂网络协议,只是知道了技术原理。搞懂网络设备,才能把所学的网络知识用起来,实际解决我们的网络需求。下面我们来看看最常见的网络设备——交换机。

1、什么是中继器?

中继器( repeater )是一种信号增强设备,运行在 OSI 参考模型的第一层。它的功能仅仅是将信号重新输出,延迟网络的传输距离,不进行其它的数据控制,也无法识别数据链路层的 MAC 地址和网络层的 IP 地址。

2、什么是网桥?

网桥( bridge )是具有两个端口的二层网络设备,可隔离冲突域。作用相当于 OSI 模型中的数据链路层,能够根据 MAC 地址进行数据转发。只能连接同构网络(同一网段),不能连接异构网络(不同网段)。

3、什么是集线器?

集线器( hub )是工作在物理层、具有信号放大功能、以它为中心的网络设备。即一个多端口的中继器,以集线器为中心,连接多个节点。广播方式发送数据,也就是说,当它要发送数据时,会发送到与集线器相连的所有节点。

由于集线器没有控制功能,因此所有终端共享带宽,同一时刻只能一个终端发送数据,多个终端同时发送数据就会产生冲突。这时,集线器、连接线缆以及连接在集线器上的终端设备构成了一个冲突域。于是采用 CSMA/CD 方式决定终端能否发送数据。

4、什么是交换机?

集线器是从接收方收到的数据,会转发给所有非发送方端口,也就是简单的通过复制电气信号来实现发送。但是交换机是通过学习连接的每个终端的 MAC 地址,将数据发送给对应的目的终端上,避免将数据发送到无关端口,提供网络利用率。这里说的交换机都是二层交换机。如果是没有学习到的 MAC 地址,或者想跟网段内所有终端进行通信,交换机会使用广播方式,将数据帧进行泛洪。

5、交换机如何学习 MAC 地址?

交换机通过数据帧的源 MAC 地址,学习到交换机端口和 MAC 地址的对应关系,并记录到交换机的 MAC 地址表中。

主机 A 向主机 D 发送数据:A 发送数据帧,数据帧的源 MAC 地址是 11:11:11:11:11:11 ,目的 MAC 地址是 44:44:44:44:44:44 。交换机端口 1 收到数据帧,记录源 MAC 地址和端口的对应到 MAC 地址表项。交换机不知道目的 MAC 地址在哪个端口,于是将数据帧进行泛洪,即转发到除端口 1 之外的所有端口。B 和 C 发现目的 MAC 地址不是自己,将丢弃数据帧。


D 发现是发送给自己的数据帧,于是发送应答数据帧,源 MAC 地址是 44:44:44:44:44:44 ,目的 MAC 地址是 11:11:11:11:11:11 。交换机端口 4 收到数据帧,记录 D 的 MAC 地址表项。于是交换机知道了主机 A 和主机 D 的 MAC 地址信息,之后会根据 MAC 地址表进行转发。交换机通过同样的方式,可以学习到主机 B 和主机 C 的 MAC 地址。


6、对比集线器,交换机有哪些优点?


7、以太网数据帧有哪些类型?


8、交换机如何转发数据帧?

交换机收到数据帧后,会有三种处理方法:直通转发、碎片隔离和存储转发。

直通转发

直通转发是交换机只读取数据帧的前14个字节就进行转发。由于读取的数据量固定,发送方和接收方的速度需要一致,导致无法桥接不同速率的以太网。另外,只读取前 14 个字节,会跳过了 FCS 域,因此无法检测并丢弃 CRC 校验错误的数据帧。


碎片隔离

碎片隔离是读取数据帧的前64个字节就进行转发,可以防止转发小于 64 字节的残帧。但是如果出现 CRC 错误,还是会转发数据帧。也无法桥接不同速率的以太网。


存储转发

存在转发会读取数据帧全部内容再进行转发。这样就可以识别残帧和 CRC 校验错误帧,并将它们丢弃。交换机还能对数据帧进行缓存,因此可以桥接不同速率的以太网。


9、单工和双工通信有什么区别?


10、交换机的处理能力的指标是什么?

交换机的处理能力也叫做背板容量或交换机容量。容量单位是 bit/s(比特每秒),值越大,说明交换机在单位时间内传输的数据越多。

当交换机的所有端口的总带宽小于交换机的容量时,交换结构为非阻塞,即带宽充裕,没有等待处理的情况。反之,当所有端口总带宽超过交换机的容量时,叫做交换机结构过载。

交换机是千兆端口时,处理能力达到端口数 × 2 × 1Gbit/s 的数值,就是非阻塞。其中 × 2 表示上行和下行都是 1Gbit/s 的全双工通信。假如交换机有 24 个端口,背板容量到达 24 × 2 × 1G = 48Gbit/s ,就是非阻塞。

11、根据功能分类,交换机有几种类型?

交换机按照功能可以分为二层交换机和三层交换机。

二层交换机

没有 IP 路由功能、仅处理数据链路层的交换机叫做二层交换机。二层交换机根据不同的功能而不同。


三层交换机

带有 IP 路由功能的交换机叫做三层交换机。

12、根据外形分类,交换机有几种类型?

根据外形,交换机可分为桌面式交换机、箱式交换机和机框式交换机。

桌面式交换机
桌面式交换机是指放在桌面上使用的交换机。它体积不大,只能连接几台网络设备,通常用于家庭网络中,主要有 3 端口、5 端口、8 端口和 16 端口的产品。桌面式交换机通常不安装风扇,采用无风扇设计,运行噪声小。

箱式交换机
箱式交换机通常高度是 1U 或 2U ,可以安装在 19 英寸的机柜内。通常采用金属外壳、内置电源,并配置冷却风扇。下行有 24 千兆网口或 48 千兆网口,上行有 2 万兆光口或 4 万兆光口的配置较多。下行使用 RJ-45 的网线接口,上行使用 SFP+ 槽进行连接。

主要作为企业中作为接入交换机使用,支持电源冗余。

框式交换机
框式交换机是指在机框内组合多个接口模块的交换机。可以根据需要选择端口数量和不同类型的接口模块,扩展性好,端口数量多。

在机框中可以添加电源、风扇等组成部分,再插入管理模块和接口模块。接口模块和管理模块叫做线卡。机框上总线的主板叫做背板,可以插入线卡。

13、根据用途分类,交换机有几种类型?

根据交换机在网络中的位置和用途,可分为三类:核心交换机(核心层)、汇聚交换机(汇聚层)和接入交换机(接入层)。



14、交换机有几种端口类型?

选择交换机时,需要根据实际的使用需求,以及具体的端口类型、端口数量和设备性能等参数,决定购买哪款交换机。

千兆以太网端口

大部分交换机都配置了 RJ-45 的千兆以太网接口,连接千兆接口要使用增强型 5 类双绞线。通过自适应功能,还可以连接百兆接口。

光纤端口

箱式交换机会配置光纤端口,主要是用于连接上行链路。为了连接万兆以太网的上行链路,通常会搭载 SFP+ 接口。

框式交换机中,一般会配置多个千兆以太网 SFP 或万兆以太网 SFP+ 接口的接口卡。

PoE 端口

接入交换机还会配 PoE 端口。Poe 端口使用网线连接 IP电话或无线 AP ,并通过网线对设备进行供电。POE (Power Over Ethernet)指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机、无线局域网接入点AP、网络摄像机等)传输数据信号的同时,还能为此类设备提供直流供电的技术。POE技术能在确保现有结构化布线安全的同时保证现有网络的正常运作,最大限度地降低成本。

为了让 IP 电话或无线 AP 无需外接电源也能接入网络,通过一根网线给设备供电的技术就是 PoE 技术。PoE 技术有简化布线、节省人工成本,管理方便,使用灵活,安全等优点,得到广泛的应用。PoE 技术作为 IEEE 802.af 在 2003 年完成了标准化工作,这个技术还用于网络摄像头、POS 终端等连接以太网的硬件设备。

PoE( IEEE 802.3af )PoE+( IEEE 802.3at )PoE++( IEEE 802.3bt )

PoE 的供电标准是 IEEE 802.3af ,最大能提供 15.4W 的功率,可以为 IP 电话、无线 AP 等终端设备供电。PoE+ 是 PoE 的增强版,供电标准是 IEEE 802.3at ,最大能提供 30W 的功率,可以为视频电话、 摄像机等终端设备供电。PoE++ 是 PoE+ 的增强版,供电标准是 IEEE 802.3bt ,最大能够提供 60W 的功率,能够满足更多的终端功率需求,可以为基站、室外热感摄像机等终端设备提供更大功率的供电。


支持 PoE 功能的交换机,会说明每个端口最大支持 ×× W ,设备最大供电 ×× W 等电能信息,可以算出交换机最多可接入的 PoE 设备数量。


上行链路端口

接入交换机和汇聚交换机要集中下行连接的所有设备流量,并将流量传输到上行的网关或核心交换机中,向网关、核心交换机传输流量的端口叫做上行链路端口,反向就叫做下行链路端口。在箱式交换机中一般会配置 2~4 个万兆上行链路端口。


下行链路端口

通常下行链路是 RJ-45 的接口,也有使用光纤接口的。一台交换机或一块板块,能提供 24 或 48 个接口。


交换机堆叠

通过堆叠线缆可以把多台交换机连接起来,成为逻辑上的一台交换机。

15、交换机有哪些功能?

交换机的完整功能说明,可以查看官网的产品文档,里面进行了详细的描述。

MAC 地址数
MAC 地址数是指一台交换机最大可以学习到的 MAC 地址表数量。

生成树功能
为了避免二层环路,我们使用生成树协议( STP ),让交换机知道对方的存在,具体做法是在交换机之间交换 BPDU 数据帧。详情可看《图解 STP 》和《图解 RSTP 和 MSTP 》。

链路聚合
链路聚合是将交换机的多条线路汇聚成一条逻辑线路在网络中使用。有多个称呼:端口聚合、链路捆绑、绑定等。

如果不使用链路聚合功能,直接将交换机的多个物理端口连接起来,可能会导致网络环路。如果使用生成树协议,又会避开某些链路,导致只有一条物理链路可用。如果使用链路聚合,把几条物理链路聚合成一条逻辑链路,即使某一条物理链路断开,由于逻辑线路还有其它物理链路在维持,因此通信也不会中断,到达线路冗余的效果。

VLAN
将广播域分割成一个个逻辑网段的功能叫做VLAN。

端口镜像
将某个端口接收和发送的数据帧复制到镜像端口的功能叫做端口镜像,被复制的源端口叫做监控端口。为了分析网络故障或检测网络中的流量,交换机会将收到的数据帧复制一份并转发到网络分析设备或流量监控设备中。

QoS 优先级队列
QoS是 Quality of Service 的缩写,也叫做服务质量。当数据通过网络设备时,根据通信种类控制通信优先级和带宽的功能。通常是将声音、视频等数据定义为高优先级,高优先数据优先处理,保障这类数据的稳定和低延迟。除了交换机在二层进行的 QoS 控制外,还有路由器和三层交换机的三层( IP )的 QoS 控制,以及 TCP 进行的四层的 QoS 控制。

IEEE 802.1p 标准完成了对二层的 QoS 优先级控制的标准化工作。通过 3bit 长度的优先级控制信息,定义了从 0 到 7 的 8 个优先级,即 CoS 值(服务等级值),交换机会优先转发值大的数据帧。

MAC 地址过滤
为了网络安全,只让指定的设备接入网络。二层交换机提供了以数据帧的头部信息进行过滤的功能。具体过程是,先设置一个过滤条件,比如目的 MAC 地址、源 MAC 地址等,满足条件的数据帧通过,阻断不满足条件的数据帧。考虑到伪造 MAC 地址的情况发生,还可以跟 802.1X 一起使用。三层交换机或路由器可以根据 IP 头部信息完成 IP 通信过滤的功能。

基于端口的认证
在交换机中,只有通过认证的客户端才能使用有线端口。这个功能由IEEE 802.1X完成标准化,对接入 LAN 的客户端进行认证的机制。

当 PC 连接交换机时,认证过程启动。根据发送方的 MAC 地址信息进行客户端识别,通过用户名、口令或证书等认证信息进行用户认证。对于没有认证的客户端发来的数据帧,交换机只接收包含认证信息的数据帧,其余的全部丢弃。对于认证失败的客户端发来的数据帧,交换机就直接丢弃不会进行转发。


要使用基于端口的认证功能,客户端的电脑和交换机都要支持 802.1X 认证功能,缺一不可。

802.1X 认证中使用 PPP 的扩展协议 EAP ,通过 EAPOL 协议封装 EAP 认证消息,然后在 LAN 中进行传输。认证结束之前,客户端电脑只能进行 EAPOL 通信。


网络管理

远程管理、监控和配置网络设备可以使用SNMP协议。SNMP 协议可以对整个网络结构内的交换机和其它网络设备进行集中统一的管理。

被 SNMP 管理的网络设备叫做Agent,管理网络的设备叫做Manager。

16、交换机的架构是由什么组成?

交换机的基本架构是由 RJ-45 接口、PHY 、MAC 等模块的 NIC 和管理由 NIC 收发帧缓存、转发表的软件组成,通过查看转发表信息,在 NIC 之间进行数据帧交互。