一个数据包从交换机 3 口进去,2 口出来为什么 tag 变了??(ENSP)?

拓扑请看配图
数据包在 3 口时 vlan id 是 17    从 2 口发出来为什么 vlan id 变成了 16  
3 口为 trunk 口    pvid 默认为 1      允许 17 通过
2 口为 trunk 口   pvid 默认为 1      允许 16 通过
为什么 vlan id 变了??  
Trunk 发送数据与本端口 pvid 不同,不是保留 tag 发送吗?   不应该还是 17 么?

还是说我理论知识记错了?
求大神指点

回答·42
最热
最新
  • 首先 172.17 这个网段的主机应该是属于 vlan17 172.16 网段的主机是 vlan16 简单说下单方向转发流程  1 pc 发送数据包封装 三层 源 172.17.x.x 目的 172.16.x.x 跨网段访问的话 交给网关 因此 二层封装 源 mac 172.17.x.x pc 的 mac 目的 mac vlan17 的网关地址的 mac 2 下面交换机 access 端口收到数据包后根据端口 pvid 添加标签 17 进入转发流程 开始解封装 解到二层封装查 mac 地址表 网关 mac 对应的出接口是 trunk 端口 pvid1  数据帧打的标签是 17 因此带标签从 trunk 发给上面的交换机 3 上面交换机从 trunk 链路收到带标签的数据帧 根据原有标签直接进入转发进程 解二层封装 查 mac 地址表    vlan17 的网关应该是坐落在上面的交换机的 因此 查 mac 地址表的时候 目的 mac 地址(网关的 mac 地址)应该是本机的 vlan17 的接口地址 目的地址为本机地址 因此解三层封装 根据目的 ip 地址查找 ip 路由表  确定出接口 这个查路由表的过程 把包从 vlan17 转发到了 vlan16 在出接口重新封装的时候添加 16 的标签 三层不变 二层重新封装
  • 从抓包看,是垮网段访问,vlan16 和 vlan17 分别对应源和目的网段;通过三层转发换了 vlan id,正常 你看看两个口报文的二层报头,源 mac 和目的 mac 发生了变化,说明是走的三层通信
  • 1.truk 接口下收到一个携带 pvid 的数据包 会看自己是接口下是否允许次 vlan 通过 2.trunk 接口下收到一个不带 pvid 的数据包,会打上本端口的 pvid 转发数据 3.trunk 转发的时候 先匹配允许列表在看自己是否有 pvid
  • 在去好好学习下 vlan 技术和 trunk 吧
  • 重新看资料,不是 VLAN 变了。是数据配置。两个端口就不会通。除非用 VLAN1
  • 三层转发了,当然变了,还是去学下基础吧
  • 交换机一里应该是有两个 vlan,vlan16 对应 172.16,vlan17 对应 172.17; 从 172.16.0.2 访问 172.17.0.253,数据包从交换机一的 2 口进带着 tag 标签 16,交换机检查目的地址,发现不在同一个网段,执行查路由表动作,发现本地有 172.17 网段,172.17 的 vlan tag 标签是 17,把数据包里的 tag 标签字段 16 替换为 17,在放行 vlan 17 的接口进行广播,因为 3 口放行了 vlan17,所以你能在这个接口抓到数据包里的 vlan tag 字段为 17。
  • 你这两个 vlan 不是同网段,ip 包经过网关 ip 转发了。所以会改变 vlan 标签,等你学路由就明白了
  • 是不是在 sw1 配置 svi 了哦。是的话就是通过三层网关转换 pvid 了。
  • 你确定不是通过三层 vlan 转发的吗?

推荐关注

正在加载中...