写给非网工的CCNA教程(5)应用最为广泛的网络--局域网LAN

    xiaoxiao2023-11-01  26

        本系列的文章主要是讲解网络基础,CCNA嘛。在这之前,我们讨论了IP地址、MAC地址,也简单介绍了IP协议、ARP协议、ICMP协议,并且通过ping命令后面的技术原理,提到的了路由表、ARP表。

       但是我们都只是讨论了两台主机通过网线直连的方式,现实中可是通过网络来连接通信的主机。这网络是个抽象的概念,对应的物理设备可是多种多样,比如交换机、路由器、防火墙、负载均衡器。而网络类型也是丰富多彩,比如我们最最常见的以太网、wifi,还有我们移动通信的2G/3G/4G/5G,当然还有其他的,就不一一举例了。

        不过这么多技术,我们得掌握最基础的技术--数据包交换技术,而这涉及到的网络设备就是我们平时所说的交换机,更严格地说,应该是以太网交换机。难道还有其他交换机么?是的,比如用于存储设备网络的FC交换机。

        接下来开始说我们的数据包交换技术。

       上篇文档中,我们分析了PC-A和PC-B通过网线直连的通信原理,但现实情况是很少出现这两者直连。现实中的设备都是通过网络来连接的。

        网络,有LAN和WAN之分,即局域网,广域网。当然我们该系列文章,都是讲的LAN。LAN到底是什么呢?LAN其实就是一台交换机或者一组级联的交换机组成的局域网,如下图所示。

        这里的交换机都是指以太网交换机,没有特殊说明,提到的交换机都是指以太网交换机,谁让它使用最广泛呢。当然了,以太网交换机可是有二层和三层之分的,没有特殊说明,都是指二层。

     

    1 LAN连接实现同网段设备的通信

    1.1 LAN的拓扑图

        PC-A和PC-B连接二层交换机SW-A上,PC-C连接在二层交换机SW-B上,PC-D连接在二层交换机SW-C上。SW-A、SW-B和SW-C级联,PC-A、PC-B、PC-C和PC-D的IP地址都是在同一个网段。

        各个设备IP地址和MAC地址如下表所示。

    设备IP地址MAC地址PC-A192.168.10.1 /241111.1111.1111PC-B192.168.10.2 /242222.2222.2222PC-C192.168.10.3 /243333.3333.3333PC-D192.168.10.4 /244444.4444.4444

    1.2 LAN连接的同网段设备通信原理    

        在前文中,我们知道一台设备要发数据给另一台设备,会根据目标设备的IP地址,查找本地的路由表,找到网关,如果网关为On-link,则说明目标设备跟自己在同一个网段。

        接下来就会根据目标设备的IP地址,去找ARP表中目标设备对应的MAC地址,如果找不到,就ARP广播,等待目标设备回复。最后根据以目标设备的MAC地址为目的MAC,IP地址为目的IP地址封装报文,发送出去。

        前文中,源设备和目标设备是通过网线直连的,本文中两者之间是通过二层交换机互联的,不过源设备发送数据的相关机制不会变,网络的问题不可能影响到终端设备的处理机制。

        因此我们只需要搞清楚,二层交换机收到源设备的数据,要怎么转发到目标设备,就掌握了LAN连接的同网段设备是如何通信的。

     

    2 交换机工作原理

          二层交换机要转发数据到目标设备,有两个条件:

        (1)目标设备连接在哪个端口,要不然通过哪个端口把数据发送出去呢?

        (2)转发数据的依据,即根据什么来转发数据呢?

    2.1 MAC表

        在交换机内部维持着一个MAC地址转发表(简称MAC表),记录着MAC地址与端口的映射关系。我们知道MAC代表了一个设备,那么据此可知一个MAC表现代表了一台设备连到此交换机的哪个端口。

        那MAC表里面的表现是怎么形成的? 其实任何一个数据进入到交换机后,交换机会记录这数据是从哪个端口进来的,并且解封装数据得到数据的源MAC地址。然后把数据的源MAC地址和来源端口写到MAC表,同时启用一个定时器,,表明这条记录在MAC表里面持续时间,到期后自动清除。所以说交换机中的MAC表,是通过MAC学习的方式形成的。

        我们举个例子,PC-A要通过SW-A发送数据到PC-B,由于A只有B的IP地址,没有MAC地址,于是发送ARP广播。

        SW-A收到此ARP广播后,会把数据的来源端口--Gi0/1和数据的源MAC--A的MAC地址,写到MAC表,如下所示。

    SW-A#show mac address-table Mac Address Table ------------------------------------------- Mac Address Type Ports ----------- -------- ----- 1111.1111.1111 DYNAMIC Gi0/1

    2.2 交换机数据转发原理

        当数据进入交换机后, 交换机解封装数据,得到目的MAC地址,

       (1)如果目的MAC地址是广播地址, 就从除数据来源端口以外的所有端口转发出去, 即广播;

       (2)如果目的MAC地址是单播地址,就去查找MAC表:

                如果找到对应的表项, 就从表项中的端口把数据转发出去;

                如果没有找到, 就从除数据进来的端口以外的所有端口转发出去,即广播;

       (3)如果目的MAC地址是组播地址,是根据组播地址表去转发的, 而不是MAC表,本文不做过多讨论。

        接上面的例子,PC-A要通过SW-A发送数据到PC-B。

        SW-A把A对应的MAC表项写到MAC表以后,根据ARP广播包的目的MAC是广播地址,于是把它从除Gi0/1以外的所有端口转发出去,本例中就是从Gi0/2和Gi0/21转发出去。

        连到SW-A上的Gi0/2口的PC-B,会回复此数据。SW-A收到PC-B的回复后,会把数据的来源端口--Gi0/2和数据的源MAC--B的MAC地址,写到MAC表,如下所示。

    SW-A#show mac address-table Mac Address Table ------------------------------------------- Mac Address Type Ports ----------- -------- ----- 1111.1111.1111 DYNAMIC Gi0/1 2222.2222.2222 DYNAMIC Gi0/2

    2.3 交换到无限

    (1)SW-B如何处理此ARP广播

        继续上面的例子,SW-A除了把PC-A的ARP广播从Gi0/2口转发出去外,也会从Gi0/21口转发出去。

        当SW-B从Gi0/21口收到此ARP广播,同样的道理SW-B会把数据来源端口--Gi0/21和源MAC--A的MAC地址写到自己的MAC表中,如下图所示。

    SW-B#show mac address-table Mac Address Table ------------------------------------------- Mac Address Type Ports ----------- -------- ----- 1111.1111.1111 DYNAMIC Gi0/22

        然后SW-B广播此数据,本例中会从Gi0/1和Gi0/22口转发出去。连到Gi0/1口的PC-C收到数据后,解封装ARP广播帧,发现不是询问自己,于是丢弃。

    (2)SW-C如何处理此ARP广播

        连到Gi0/22口的SW-C收到此广播后,也会把数据来源端口--Gi0/22和源MAC--A的MAC地址写到自己的MAC表中,如下图所示。

    SW-C#show mac address-table Mac Address Table ------------------------------------------- Mac Address Type Ports ----------- -------- ----- 1111.1111.1111 DYNAMIC Gi0/21

        然后SW-C也会广播此书,本例中会从Gi0/1转发出去。连到Gi0/1口的PC-D收到数据后,解封装ARP广播帧,发现不是询问自己,于是丢弃。

        由于SW-C后,没有接其他交换机,至此广播结束,MAC学习也完成。

    (3)交换到无限

        通过这一次数据的发送(不一定非得是广播啊),SW-A、SW-B和SW-C都学习到了PC-A接到自己的哪个端口,不一定非得PC-A与自己直连,从而在整个LAN内部的交换机的MAC表里面都有PC-A的MAC表项。

        同样的如果PC-B、PC-C、PC-D只要有数据发送,经过哪台交换机,哪台交换机就会在MAC表项中,记录B对应的表项。经过多次数据的交互,整个LAN内部所有交换机都有每个终端的MAC表项。

        这些设备可以在LAN内部任意通信,无论接到哪台交换机,无论交换机数量多与少,这也就是我们通常所说的交换到无限。

    2.4 LAN的不足

        从上面的分析中,不难看出只要有个广播请求出现,会导致整个LAN内部所有的交换机都会广播此请求,这无疑浪费了交换机的带宽。

        另外,接到交换机上的所有设备都会收到此广播,即使它不是此广播的目标者,这无疑是对非目标设备的一种攻击。

        因此在生产环境中,我们很少直接使用LAN,而是在LAN上启用VLAN,具体请看下一篇。当然了,有些小的企业,也会直接使用LAN,比如几十号人的公司,两台48口交换机搞定,不怕广播。

    2.5 考察交换机性能的好坏

        从上可知,整个LAN内部的每一台交换机都会记录LAN内部所有终端设备的MAC表项,如果终端设备数量很多很多,交换机里面的MAC表项就会剧增,所以说支持最大MAC表项的多少,成为衡量一台交换机性能的很重要的一个指标。

        当然了,MAC表项的增多,也会导致查表时的速度快慢,这也是很重要的一个指标。其他的就不多说了,毕竟本文是讲原理,而不是产品选型。

    最新回复(0)