网工交换技术基础——交换机原理

59 篇文章 0 订阅
16 篇文章 0 订阅

以太网交换机的转发机制主要分为两个部分:二层转发和三层交换。

交换机:

        提供更多的网络接口。MAC:身份标识——12个16进制值组成——48位(24位+24位)。同一台交换机上的PC组成一个通广播域。

一、二层转发流程

1、MAC地址介绍:

        MAC地址是 48 bit二进制的地址(16进制数表示), 如:00-e0-fc-00-00-06。可以分为单播地址、 多播地址和广播地址。

单播MAC地址:48位MAC地址的第8位为0(或12位16进制的第2位为偶数)时,为单播地址;

组播MAC地址:48位MAC地址的第8位为1(或12位16进制的第2位为奇数)时,为组播地址;

广播MAC地址:48为MAC地址全为1(或全为F)时,为广播地址;广播——强制接收处理。

注意 : 

        1)普通设备网卡或者路由器设备路由接口的MAC 地址一定是单播的MAC地址才能保证其与其它设备的互通。

        2)MAC地址是一个以太网络设备在网络上运行的基础,也是链路层功能实现的立足点。

广播消息-进行泛洪。

======================================================================

2、二层转发介绍:

目的MAC为单播MAC——接收者,查看自己的MAC是否一致,是接收处理,不是丢弃;

目的MAC为组播MAC——接收者,该MAC是否加组;

目的MAC为广播MAC——接收者,直接处理;

        广播域:一个广播消息传播的范围。交换机收到一个广播消息就要泛洪;

                                                                  路由器收到广播消息会进行隔离(通过IP进行通信)

        交换机二层的转发特性,符合802.1D 网桥协议标准。交换机的二层转发涉及到两个关键的线程:地址学习线程和报文转发线程。 

学习线程如下:

        1)交换机接收网段上的所有数据帧,利用接收数据帧中的源MAC地址来建立MAC 地址表;

        2)端口移动机制:交换机如果发现一个包文的入端口和报文中源MAC地址的所在端口 (在交换机的MAC地址表中对应的端口)不同,就产生端口移动,将 MAC地址重新学习到新的端口; 

        3)地址老化机制:如果交换机在很长一段时间之内没有收到某台主机发出的报文,在该主机对应的MAC地址就会被删除,等下次报文来的时候会重新学习。注意:老化也是根据源MAC 地址进行老化。

报文转发线程 :

        1)交换机在MAC 地址表中查找数据帧中的目的MAC 地址,如果找到, 就将该 数据帧发送到相应的端口,如果找不到,就向所有的端口发送;

        2)如果交换机收到的报文中源MAC 地址和目的MAC 地址所在的端口相同,则 丢弃该报文;

        3)交换机向入端口以外的其它所有端口转发广播报文。

=========================================================================

3、VLAN二层转发介绍:

以太网交换机上通过引入VLAN ,带来了如下的好处:

        1)限制了局部的网络流量,在一定程度上可以提高整个网络的处理能力。 

        2)虚拟的工作组,通过灵活的VLAN设置,把不同的用户划分到工作组内;

        3)安全性,一个VLAN 内的用户和其它VLAN内的用户不能互访, 提高了安全性。

-------------------------------------

报文转发线程 : 

引入了 VLAN 以后对二层交换机的报文转发线程产生了如下的影响: 

        1)交换机在  MAC 地址表中查找数据帧中的目的MAC地址,如果找到(同时还要确保报文的入VLAN 和出VLAN 是一致的),就将该数据帧发送到相应的端口,如果找不到,就向(VLAN内)所有的端口发送; 

        2)如果交换机收到的报文中源MAC 地址和目的MAC地址所在的端口相同,则丢弃该报文;

        3)交换机向 (VLAN) 入端口以外的其它所有端口转发广播报文。 

----------------------------------

VLAN透传和终结:

        VLAN的透传:就是某个VLAN不仅在一台交换机上有效,它还要通过某种方法延伸到别的以太网交换机上,在别的设备上照样有效;

        VLAN的终结:意思与透传相对,某个VLAN的有效域不能再延伸到别的设备,或者不能通过某 条链路延伸到别的设备。

VLAN 透传可以使用802.1Q 技术,VLAN 终结可以使用PVLAN技术。

注意:

        在 Trunk 端口转发报文的时候,如果报文的VLAN Tag 等于端口上配置的默认VLANID,则该报文的Tag 应该去掉,对端收到这个不带Tag 信息的报文 后,从端口的PVID 获得报文的所属VLAN 信息,因此配置的时候必须保证连接两台交换机之间的一条Trunk 链路两端的PVID 设置相同。

为什么要去Tag呢?

        这样做是为了保证一般的用户插到Trunk上以后, 仍旧可以正常通信, 因为普通用户无法识别带有802.1Q Vlan信息的报文。

VLAN其他技术扩展:802.1q(dot1q),使用双层VLAN技术,扩展了VLAN(4095*4095)

=========================================================================

二、三层转发流程

        用 VLAN  分段,隔离了VLAN间的通信,用支持VLAN的路由器(三层设备)可以建立VLAN间通信。但使用路由器来互联企业园区网中不同的VLAN显然不合时代的潮流。因为我们可以使用三层交换来实现。

1、传统路由器与三层交换机的差异:

差别1(性能):

        传统的路由器基于微处理器转发报文,靠软件处理,而三层交换机通过ASIC 硬件来进行报文转发,性能差别很大;

差别2(接口类型):

        三层交换机的接口基本都是以太网接口,没有路由器接口类型丰富; 

差别 3:

        三层交换机, 还可以工作在二层模式,对某些不需路由的包文直接交换, 而路由器不具有二层的功能。

设备互通的过程:

如图所示:交换机上划分了两个VLAN ,在 VLAN1 ,VLAN 2 上配置了路由接口用来实现vlan1和vlan 2 之间的互通。

A 和 B 之间的互通(以A 向 B 发起 ping请求为例):

        1)A 检查报文的目的IP 地址,发现和自己在同一个网段;

        2)A---->BARP 请求报文,该报文在VLAN1内广播;

        3)B---->AARP 回应报文; 

        4)A---->Bicmp request; 

        5)B---->Aicmp reply;

A 和 C 之间的互通(以A 向C发起 ping请求为例):

        1)A 检查报文的目的IP 地址,发现和自己不在同一个网段;

        2)A---->switch (int vlan 1)ARP 请求报文,该报文在VLAN1内广播;

        3)网关 ---->AARP 回应报文;

        4)A---->switch   icmp request (目的 MAC 是int vlan 1 的 MAC ,源 MAC是 A 的 MAC ,目的 IP是 C,源 IP 是 A);

        5)switch 收到报文后判断出是三层的报文。检查报文的目的IP 地址,发现是在自己的直连网段;

        6)switch (int vlan 2 ) ---->CARP 请求报文,该报文在VLAN2内广播;

        7)C--->switch (int vlan 2 )ARP 回应报文;

        8)switch (int vlan 2 ) ---->C    icmp request (目的  MAC 是C 的 MAC ,源MAC 是  int  vlan 2 的 MAC ,目的 IP 是C ,源 IP 是 A )同步骤 4 )相比报文的MAC 头进行了重新的封装,而 IP 层以上的字段基本上不变; 

        9) C---->A   icmp reply ,这以后的处理同前面icmp request  的过程基本相同。以上的各步处理中,如果 ARP 表中已经有了相应的表项,则不会给对方发 ARP请求报文。

区别二三层转发的基本模型:

如图所示: 

        宏观的角度:三层交换机划分了2个 VLAN ,A 和 B之间的通信是在一个 VLAN 内完成,对 与交换机而言是二层数据流,A 和 C之间的通信需要跨越VLAN ,是三层的数据流。

        微观的角度:一个报文从端口进入后,Swtich设备是怎么来区分二层包文,还是三层报文的呢? 

        从 A 到 B 的报文由于在同一个VLAN 内部,报文的目的MAC 地址将是主机B 的 MAC 地址,而从A 到C的报文要跨越VLAN,报文的目的MAC 地址是设 备虚接口VLAN1上的 MAC 地址。因此交换机区分二三层报文的标准就是看报文的目的MAC 地址是否等于交换机虚接口上的MAC 地址。

三层交换机整个处理流程中分成了三个大的部分:

        1)平台软件协议栈部分:  这部分中关键功能有:运行路由协议,维护路由信息表;

        IP 协议栈功能,在整个系统的处理流程中,这部分担负着重要的功能,当硬件不能完成报文转发的时候,这部分可以代替硬件来完成报文的三层转发。另外对交换机进行telnet, ping, ftp,snmp的数据流都是在这部分来处理。

        2)硬件处理流程:

        主要的表项是:二层MAC地址表,和三层的ip fdb 表,这两个表中用于保存转 发信息,在转发信息比较全的情况下,报文的转发和处理全部由硬件来完成处理,不需要软件的干预。这两个表的功能是独立的,没有相互的关系,因为一个报文只要一进入交换机,硬件就会区分出这个包是二层还是三层。非此即彼。

        路由接口索引(RtIf ):该索引用来确定该转发表项位于哪个路由接口下面。

        Vlan tag:该值用来表明所处的VLAN ,该 VLAN 和路由接口是对应的; 

        Vlan tag 有效位( VTValid ):用来标识转发出去的报文中是否需要插入Vlan tag标记。 

        端口索引( Port):用来说明该转发表项的出端口; 

        下一跳MAC :三层设备每完成一跳的转发,会重新封装报文中的MAC头,硬 件 ASIC 芯片一般依据这个域里面的数值来封装报文头。

        两个重要的概念: 

        解析,未解析,每次收到报文,ASIC都会从其中提取出源和目的地址在MAC Table 或者IP Fdb Table 中进行查找,如果地址在转发表中可以找到,则认为该地址是解析的,如果找不到,则认为该地址是未解析的。

        根据这个地址是源,还 是目的,还可以有源解析,目的未解析等等的组合。对于二层未解析,硬件本身可以将该报文在VLAN内广播,但是对于三层报文地址的未解析报文硬件本身则不对该报文进行任何的处理,而产生CPU 中断,靠软件来处理。

        硬件部分的处理可以用这句话来描述:

        收到报文后,判断该报文是二或是三层报文,然后判断其中的源, 目的地址是否已经解析,如果已经解析,则硬件完成该报文的转发,如果是未解析的情况,则产生CPU中断,靠软件来学习该未解析的地址。

        3)驱动代码部分其中关键的核心:

        地址解析任务:在该任务中对已经报上来的未解析的地址进行学习,以便硬件完 成后续的报文的转发而不需软件干预。

        地址管理任务:为了便于软件管理和维护,软件部分保存了一份同硬件中转发表 相同的地址表copy 。

        fib( forwarding information base)表 :这个表的信息来源于   ip route table 中的 路由信息,之所以把它放在了driver 部分,是为了地址解析任务在学IP地址时查找的方便。

三层转发主要涉及到两个关键的线程:

地址学习线程和报文转发线程,这个和二层的线程是类似的;

        1)报文转发线程主要根据地址学习线程生成的转发表(ipfdb  table)信息来对报文进行转发,如果里面的信息足够多,这个转发的过程全部由硬件来完成,如果信息不够,则会要求地址学习线程来进行学习,同时该报文硬件不能转发,会交给软件协议栈来进行转发。

        2)地址学习线程主要用来生成硬件转发表(ipfdb table)

其实 ipfdb table和二层的MAC 地址表也是类似的, 只不过里面的具体表项所代 表的含义和所起的作用不同罢了。

        在路由器等软件转发引擎中,每收一个报文都会去查路由表查下一跳,然后再查ARP表找下一跳的MAC,可是在三层交换机(如S3526)中, 报文转发的时候不需要去查路由表和ARP表,这样的话,这两个表是不是就没有什么作用了?

        回答当然是否定的,在S3526的三层转发流程中,过程一般都是这样的,第一 个报文硬件无法转发,要进行IP 地址的学习,同时为了保证不丢包,该报文也由软件来进行转发,在学习完成以后,第二,第三个报文以后就一直是由硬件来完成转发了。

        这个过程也可以套用“一次路由,多次交换”来形象的进行总结,在一次路由中, 要利用路由表和 ARP 表来学习IP 地址, 和转发第一个报文,以后的多次交换过程中,则只要有ipfdb table 就可以了。

=========================================================================

  • 33
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以太网交换机是一种用于局域网的网络设备,它工作在OSI模型的第二层,即数据链路层。其主要功能是根据目的MAC地址将数据从一个端口转发到另一个端口,实现局域网内不同设备之间的通信。 交换机使用的主要技术是存储转发,具体工作原理如下: 1. 学习:当一个数据到达交换机时,交换机会检查头中的源MAC地址,并将其与接收到的端口相关联,记录在交换表中。这样,交换机就能够学习到不同设备的位置。 2. 转发:当一个数据到达交换机时,交换机会检查头中的目的MAC地址,并在交换表中查找与之相关联的端口。如果交换表中存在相应记录,交换机就会将数据只转发到目标端口上,以实现点对点的通信。 3. 广播和洪泛:如果交换表中没有与目的MAC地址相关联的记录,交换机将广播数据到所有其他端口,以便于目标设备能够接收到。这种情况下,所有其他设备都会收到该数据,但只有目标设备会处理它。 4. 碰撞域隔离:交换机能够隔离不同端口上的设备,因此每个端口形成一个独立的碰撞域。这样可以提高网络性能和带宽利用率。 总结起来,以太网交换机通过学习源MAC地址并在交换表中建立目的MAC地址与端口的映射关系,从而实现了数据的准确转发。这种基于MAC地址的转发方式提高了网络的安全性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞翔的瓜牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值