请选择 进入手机版 | 继续访问电脑版

【网络技术】VLAN报文交互

[复制链接]
卓小兔 发表于 2020-12-31 18:08:51 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
VLAN简介

     
   

     
    先简朴的介绍一下VLAN的工作的原理,我们可以把它明白为将一台交换机在逻辑上分割成了数台交换机,VLAN生成的逻辑上的交换机是互不相通的。因此,在交换机上设置VLAN后,如果未做其他处置惩罚,VLAN间是无法通信的。想要实现VLAN间通信必须借助三层路由。
     
     
   

    TPID的值,固定为0x8100。交换机通过TPID,来确定命据帧内附加了基于IEEE802.1Q的VLAN信息。而实质上的VLAN ID,是TCI中的12位元。由于总共有12位,因此最多可供识别2的12次方,也就是4096个VLAN。
    而当数据帧脱离汇聚链路时,TPID和TCI会被去除,这时还会举行一次CRC的重新盘算。
     
    VLAN实例

     
   

     
    我们用PC1去ping一下PC3发现可以通
   

    现在SW1的G0/0/024接口上抓包,从报文的交互上来看,首先PC1归去发送ARP的请求广播包去获取PC3的MAC地点,收到了应答包之后再去发送ICMP报文,可以看到由于PC1的端口参加了VLAN10,数据包上封装上了802.1Q协议并打上了VLAN10的标签
   

     
    在PC3的接口下面抓一下包查察效果,我们可以发现封装的802.1Q头部已经被去除,因为ACCESS接口收到数据包后会判定VLAN ID是否和自己参加的VLAN一致,如果一致就去除802.1Q的头部,不一致则会被扬弃
   

     
     
    再用PC2去ping一下PC4,发现也是没有问题
   

    从报文上来看也打上PC2所在接口的VLAN标签
   

     
     
    接下来我们做一下实验,如果我们在SW2的G0/0/24接口上克制VLAN 10和VLAN 20的数据包通过会怎么样?
     
    [SW2]int g0/0/24
    [SW2-GigabitEthernet0/0/24]un  port trunk allow-pass vlan 10 20
     
    我们在SW2的G0/0/24抓一下包看一下,发现照旧可以收到数据包,这是因为SW1的G0/0/24允许VLAN 10和VLAN 20通过,但是奇怪的是这些ARP广播包已经没人应答了
   

     
    在PC3所在接口抓包看一下,效果发现这个接口压根就没有数据包,所以PC3也没有方法去回应那些ARP的广播包,这是因为虽然SW1允许VLAN 10 和VLAN 20的数据包通过,但是SW2没有允许这些数据包通过,SW2的G0/0/24 Trunk接口在吸收到数据包后会判定这个数据包携带的VLAN ID是否允许通过,如果不允许通过将会被扬弃
   

     
    我们看一下如果SW1的G0/0/24接口上就不允许VLAN 10和VLAN 20的数据包通过
     
    [SW1]int g0/0/24
    [SW1-GigabitEthernet0/0/24]un  port trunk allow-pass vlan 10 20
     
    [SW2]int g0/0/24
    [SW2-GigabitEthernet0/0/24]port trunk allow-pass vlan 10 20
     
    这个时候,SW1和SW2的G0/0/24都没有抓取到数据包,因为数据包在SW1上就已经被扬弃了
   

     
    本文部门参考以下文章,下面这篇文档写得不错,各人可以看一下
    https://blog.51cto.com/6930123/2115373
     
     
    本征VLAN

     
    看到了现在,你有没有一个疑惑,要是trunk接口吸收到一个没有VLAN ID的数据包会怎么做呢?
    当交换机的trunk接口收到了一个没有VLAN ID的数据包,就会自动打上接口的本征VLAN ID,通过一个实验我们来看一下,我们先把SW1的本征VLAN改成VLAN 10,默认的本征VLAN是1
     
    [SW1]int g0/0/24
    [SW1-GigabitEthernet0/0/24]port trunk pvid vlan 10
     
   

     
    在PC3接口上举行抓包,发现啥也没有,抓了个寥寂
   

     
     
    我们在拓扑上在增加一个PC5
   

    在PC5的接口上举行抓包,unbelievable,发现PC5的接口居然收到了PC1发送过来的数据包,这是因为SW2的G0/0/24的本征VLAN没有修改,收到了没有打上VLAN ID的数据包就会加上VLAN 1的标签,由于交换机默认接口都是VLAN 1,所以PC5收到了数据包,PC3没有
   

     
    如果这时候把PC5的IP地点改成PC3的IP地点,就会发生神奇的事情
   

    发现竟然ping通了
   

    我们在R5的接口上抓包发现,R1竟然在和R5举行通信
   

     
    我们把SW2的本征VLAN也改返来
     
    [SW2]int g0/0/24
    [SW2-GigabitEthernet0/0/24]port trunk pvid vlan 10
     
   

     
    SW2的G0/0/24接口收到了没有打上VLAN ID的数据包
   

     
    这时候R3的接口也收到了数据包,所以如果交换机两端的本征VLAN差异大概会造成原本可以通信的电脑不能通信,原本不能通信的反倒可以通行
   

     
    至此实验竣事!

来源:https://blog.csdn.net/weixin_46622350/article/details/111996873
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )