热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【网络技术】VLAN与以太网交换机的工作机制解析

拓补说明如图。PC1和PC3同处VLAN10,PC2和PC4同处VLAN20,4台PC的IP地址同处在10.10.10.024的这个IP地址段中。PC1和PC2通过交换机1接入网络

《【网络-理论】vlan和以太网交换机工作原理》

拓补说明

如图。PC1和PC3同处VLAN10,PC2和PC4同处VLAN20,
4台PC的IP地址同处在10.10.10.0/24的这个IP地址段中。
PC1和PC2通过交换机1接入网络,PC3和PC4通过交换机2接入网络。

配置说明

  1. 交换机1的配置

system-view #进入系统视图
[Huawei]sysname Switch1 #配置系统名称为Switch1
[Switch1]vlan 10 #创建VLAN10
[Switch1-vlan10]quit #退出VLAN10视图
[Switch1]vlan 20 #创建VLAN20
[Switch1-vlan20]quit #退出VLAN20视图
[Switch1]interface GigabitEthernet 0/0/1 #进入千兆以太网接口 0/0/1
[Switch1-GigabitEthernet0/0/1]port link-type access #配置端口链路类型为access
[Switch1-GigabitEthernet0/0/1]port default vlan 10 #配置端口默认VLAN为10
[Switch1-GigabitEthernet0/0/1]quit #退出千兆以太网接口 0/0/1
[Switch1]interface GigabitEthernet 0/0/2 #进入千兆一台网接口 0/0/2
[Switch1-GigabitEthernet0/0/2]port link-type access #配置端口链路类型为ACCESS
[Switch1-GigabitEthernet0/0/2]port default vlan 20 #配置端口默认VLAN 为20
[Switch1-GigabitEthernet0/0/2]quit #退出千兆以太网接口 0/0/2
[Switch1]interface GigabitEthernet 0/0/3 #进入千兆以太网接口 0/0/3
[Switch1-GigabitEthernet0/0/3]port link-type trunk #配置端口链路类型为 trunk
[Switch1-GigabitEthernet0/0/3]port trunk allow-pass vlan 10 20 #配置端口trunk允许通过的vlan为 10 和 20

  1. 交换机2的配置

system-view #进入系统视图
[Huawei]sysname Switch2 #配置系统名称为Switch2
[Switch2]vlan 10 #创建VLAN 10
[Switch2-vlan10]quit #退出VLAN10视图
[Switch2]vlan 20 #创建VLAN 20
[Switch2-vlan20]quit #退出VLAN 20视图
[Switch2]interface GigabitEthernet 0/0/1 #进入千兆以太网接口 0/0/1
[Switch2-GigabitEthernet0/0/1]port link-type access #配置端口链路类型为access
[Switch2-GigabitEthernet0/0/1]port default vlan 10 #配置端口的默认VLAN为10
[Switch2-GigabitEthernet0/0/1]quit #退出千兆以太网接口 0/0/1
[Switch2]interface GigabitEthernet 0/0/2 #进入千兆以太网接口 0/0/2
[Switch2-GigabitEthernet0/0/2]port link-type access #配置端口链路类型为access
[Switch2-GigabitEthernet0/0/2]port default vlan 20 #配置端口的默认VLAN为20
[Switch2-GigabitEthernet0/0/2]quit #退出千兆以太网接口 0/0/2
[Switch2]interface GigabitEthernet 0/0/3 #进入千兆以太网接口 0/0/3
[Switch2-GigabitEthernet0/0/3]port link-type trunk #配置端口链路类型为 trunk
[Switch2-GigabitEthernet0/0/3]port trunk allow-pass vlan 10 20 #配置端口trunk允许通过的vlan为 10 和 20

  1. PC的配置
    PC1配置IP地址为 10.10.10.1 子网掩码为255.255.255.0
    《【网络-理论】vlan和以太网交换机工作原理》PC2配置IP地址为 10.10.10.2 子网掩码为255.255.255.0
    《【网络-理论】vlan和以太网交换机工作原理》PC3配置IP地址为 10.10.10.3 子网掩码为255.255.255.0
    《【网络-理论】vlan和以太网交换机工作原理》PC4配置IP地址为 10.10.10.4 子网掩码为255.255.255.0
    《【网络-理论】vlan和以太网交换机工作原理》

测试结果

PC1 PING同属vlan10的主机PC3IP地址为:10.10.10.3,通了

PC>PING 10.10.10.3
Ping 10.10.10.3: 32 data bytes, Press Ctrl_C to break
From 10.10.10.3: bytes=32 seq=1 ttl=128 time=78 ms
From 10.10.10.3: bytes=32 seq=2 ttl=128 time=62 ms
From 10.10.10.3: bytes=32 seq=3 ttl=128 time=62 ms
From 10.10.10.3: bytes=32 seq=4 ttl=128 time=62 ms
From 10.10.10.3: bytes=32 seq=5 ttl=128 time=78 ms
--- 10.10.10.3 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 62/68/78 ms
PC>

PC1 PING不同vlan的主机PC2 IP地址为 10.10.10.2,不通

PC>PING 10.10.10.2
Ping 10.10.10.2: 32 data bytes, Press Ctrl_C to break
From 10.10.10.1: Destination host unreachable
From 10.10.10.1: Destination host unreachable
From 10.10.10.1: Destination host unreachable
From 10.10.10.1: Destination host unreachable
From 10.10.10.1: Destination host unreachable
--- 10.10.10.2 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
PC>

结果分析

ps:我们所有的主机均处在同一IP地址段中,无需网关地址便可通信

  1. PC1 PING 同vlan的主机pc3通了。
    通信过程: PC1想给PC3发包,需要提前知道对方的mac地址,以便二层封包使用。为了得到PC3的mac地址,首先PC1会发送一个arp包,包的内容如下:
    《【网络-理论】vlan和以太网交换机工作原理》
    发送者的Mac地址是PC1自己的MAC地址【54-89-98-6F-2A-3E】
    发送者的IP地址是PC1自己的IP地址【10.10.10.1】
    目标的mac地址由于不知道,而且需要让交换机将这个报文以广播形式发送,所以目标mac为【FF:FF:FF:FF:FF:FF】全网广播的mac地址
    目标的IP地址就是PC3的IP地址【10.10.10.3】
    PC1将这个arp请求包就发送出去了。

首先,这个数据包到达交换机1的G0/0/1口,交换机一看,这个数据没有带VLAN标记,那我就打上接收端口的vlan标记,然后记录下来数据帧中的源MAC地址,和收到该报文的端口号,生成MAC地址表,这就是常说的MAC地址学习的过程。然后在看目的mac地址,发现目的MAC地址不存在于交换机的MAC地址表,那我就将这个数据包,以广播的形式发送。至于广播发送到哪些端口呢?一看这个数据包有vlan标记10,那我就将这个数据包以广播的形式发送到所有允许vlan10通过的端口中去。当然收到该报文的端口不会发送。这个报文就通过交换机1的g0/0/3端口发送到了交换机2的G0/0/3。交换机2一看有vlan标记,而且这个vlan标记是我允许通过的,那我就不再打vlan标记了。查看数据包中第层次数据帧中的信息,发现源mac地址不存在于我的MAC地址表,那我就将源MAC地址和收到该数据包的端口号存入mac地址表,再看目的Mac地址不存在于我的mac地址表,那我就以广播的形式发送,发送到哪些端口呢?一看数据包带有vlan10的标记。那我就发送到除了接收端口以外的所有打vlan10标记的端口,这是数据包被发送到了交换机2的g0/0/1端口,一看这个端口的标记和我数据包的vlan标记一模一样,那我就将这个数据包的vlan标签剥掉后,再通过交换机2的G0/0/1端口发送出去。PC3收到了这个arp包,一看目的IP地址是PC3自己的,那我就产生如下的一个ARP数据包以单播的形式进行回应。

《【网络-理论】vlan和以太网交换机工作原理》发送者的MAC地址就填上自己的MAC地址【54-89-98-F2-38-D5】
发送者的IP就填上自己的IP地址【10.10.10.3】
目标的mac地址,我们可以从收到的arp包中进行提取【54-89-98-6F-2A-3E】
目标的IP地址,我们也可以从收到的arp包中进行提取【10.10.10.1】
然后PC3就将这个ARP回应报文在发送出去

首先交换机2的G0/0/1端口收到了这个数据包,发现是没有带VLAN 标记的,那我就打上接收端口的vlan标记10 ,然后再查看数据包的第二层数据帧中的信息,一看源MAC地址不存在于自己的MAC地址表,那么,我就将MAC地址和接收到该数据的端口号存入我自己的MAC地址表,进行MAC地址学习。一看目的MAC地址存在于我的MAC地址表,对应的端口号是G0/0/3,而且G0/0/3这个端口允许当前数据包携带的vlan标记10通过,那么,就将这个数据包通过交换机2的G0/0/3端口发送出去。此时交换机1的G0/0/3端口收到了这个数据包,发现携带的vlan标记是接收端口G0/0/3允许通过的,那我就接收进来。然后再解析数据包的第二层数据帧中的内容,发现源MAC,不存在于我的MAC地址表,那么我就将该MAC地址和接收端口存入我的MAC地址表,进行MAC地址学习。查看目的MAC地址,存在于MAC地址表,对应的端口是G0/0/1,而且G0/0/1端口允许当前数据包携带的vlan标记10通过,那么我就将这个数据包通过交换机1的G0/0/1端口发送出去,数据包经过交换机1的端口G0/0/1是,发现携带的vlan标记和端口打的vlan标记是一样的,那么,我就将这个vlan标记剥去后再发送出去。PC1此时收到了这个数据包,一看目的IP地址是我自己的IP,那么我就将其接收下来。

现在PC1知道了PC2的mac地址,那我,我就可以将PING 的数据包封装起来发送出去了。
由于数据包再交换机中的转发过程都是一样的,博主这里就不再详细列举了。
现在数据包既能发送过去,又能接收到对端返回的应答消息。证明网络已经通了。

  1. PC1 PING PC2不通
    首先 PC 1 依旧是需要获取对方的【PC2的】MAC地址。
    pc 1就会先发送一个arp请求报文
    《【网络-理论】vlan和以太网交换机工作原理》发送者的MAC地址就是PC1自己的MAC地址【54-89-98-6F-2A-3E】
    发送者的IP地址就是PC1自己的IP地址【10.10.10.1】
    目标的MAC地址依旧是使用【FF:FF:FF:FF:FF:FF】广播MAC地址
    目的IP地址使用PC2的IP地址【10.10.10.2】

首先,这个数据包到达交换机1的G0/0/1口,交换机一看,这个数据没有带VLAN标记,那我就打上接收端口的vlan标记,然后记录下来数据帧中的源MAC地址,和收到该报文的端口号,生成MAC地址表,这就是常说的MAC地址学习的过程。然后在看目的mac地址,发现目的MAC地址不存在于交换机的MAC地址表,那我就将这个数据包,以广播的形式发送。至于广播发送到哪些端口呢?一看这个数据包有vlan标记10,那我就将这个数据包以广播的形式发送到所有允许vlan10通过的端口中去。当然收到该报文的端口不会发送。这个报文就通过交换机1的g0/0/3端口发送到了交换机2的G0/0/3。交换机2一看有vlan标记,而且这个vlan标记是我允许通过的,那我就不再打vlan标记了。查看数据包中第层次数据帧中的信息,发现源mac地址不存在于我的MAC地址表,那我就将源MAC地址和收到该数据包的端口号存入mac地址表,再看目的Mac地址不存在于我的mac地址表,那我就以广播的形式发送,发送到哪些端口呢?一看数据包带有vlan10的标记。那我就发送到除了接收端口以外的所有打vlan10标记的端口,这是数据包被发送到了交换机2的g0/0/1端口,一看这个端口的标记和我数据包的vlan标记一模一样,那我就将这个数据包的vlan标签剥掉后,再通过交换机2的G0/0/1端口发送出去。PC3收到了这个arp包,一看目的IP地址不是PC3自己的,那我就丢弃不做处理。结果网路中没人响应,那我PC1就无法获取PC2的MAC地址,也就无法封装PING包,自然就无法通信。


推荐阅读
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 配置多VLAN环境下的透明SQUID代理
    本文介绍如何在包含多个VLAN的网络环境中配置SQUID作为透明网关。网络拓扑包括Cisco 3750交换机、PANABIT防火墙和SQUID服务器,所有设备均部署在ESXi虚拟化平台上。 ... [详细]
  • 在DELL Inspiron 14R上部署CentOS X64 6.4的详细步骤
    本文详细记录了在DELL Inspiron 14R笔记本电脑上安装CentOS X64 6.4操作系统的过程,包括遇到的问题及解决方法。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文档详细介绍了思科交换机的基本配置命令,包括进入特权模式、配置交换机名称及密码、VLAN配置、端口访问、查看配置信息、恢复出厂设置以及远程登录设置等。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
author-avatar
mobiledu2502860911
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有