题主悬赏了80铜    |    已采纳 captain_teamo 的答案

一个关于vlan奇怪问题

微博   微信 2021-07-31 23:57     2个回答 其他
偶然发现了一个奇怪情况,虽然对使用没有任何影响但我直觉上觉得哪里有问题,想问问学网络的站友有没有什么高见
先说一下环境
光猫(端口1)-网管交换机-单臂Openwrt主路由(端口2),其他端都接在交换机另外的接口下。
Openwrt里给eth0划了两个Vlan10和Vlan20,分别作为wan(20),lan(10)
交换机下
PVID:
20:1
10:2 3 4 5
Vlan:
20(wan):1u 2t
10(lan):1x 2t 3u 4u 5u
按此方法划分时,按我理解是路由自己给帧打上10的tag,流入交换机时交换机只转发,交换机流出到路由时有什么tag进什么虚拟接口。但是这样在交换机监控里看到有近1/10的失败收包

去恩山上搜了一下,一个帖子中这种情况还挺多而且没有定论,MTU都设置了略低于1500不会出现什么大包误报的问题,也测试了不拆包根本发不了1500以上的包。

然后改成了
Vlan:
20(wan):1u 2t
10(lan):1x 2u 3u 4u 5u
路由上取消了lan的虚拟vlan直接通过eth0,按我理解这样是由交换机打上10的tag再转发,带10tag的包流出到路由时候由交换机去掉tag。看起来和上面那种方案并没有太大的区别,但是结果这样丢包情况竟然极大的减轻到几乎没有了(几十万分之一)

这种情况是不是因为openwrt对单口多Vlan支持其实并不是特别好?
方案2和方案1从各端看来到底是不是一样的?
带20tag的包流入端口2的时候交换机到底是怎么处理这个包的,这个物理端口既有untag又有tag的设定,这点vlan看的不是那么明白
回答
  • 为什么不问问神奇的海螺呢?
    2021-08-01 09:01
  • 本条答案已被采纳 captain_teamo
    pvid只是给入端口未打tag的数据打上tag,出去的包是绝对不会主动给你untag的。
    将2号端口的pvid改为默认的1试试?
    2021-08-01 12:00
    •    2021-08-01 13:50 回复 yagami_yang  @captain_teamo 设置为untagged的端口流出时不应该去掉相应tag吗,不然怎么被普通的端读取?
      方案1下,试过2号端口改什么PVID都是一样的都不影响上网。不过也情理之中吧,毕竟这样设置应该相当于一个trunk口对吧,和PVID无关。
    •    2021-08-01 15:34 回复 层主  @yagami_yang 3 4 5是untag,2号tag,2号又pvid了一遍。感觉就是op过来的部分没有tag的数据包不小心被pvid打上的tag导致数据失败了。所以方案一中,2号端口没必要设置pvid为10,改为默认的1。
    •    2021-08-01 16:24 回复 yagami_yang  @captain_teamo 刚刚试过了把pvid改成1也没有区别,且发现短期内丢包甚至会达到1/6。不过从路由ifconfig里看是0丢包,说明应该就是交换机里出了什么问题。
      方案1中端口2理论上不会流入没有tag的包,因为只有两个带vlan标签的虚拟接口,不论从哪个虚拟接口出去应该openwrt都会在出路由器前给帧打上tag对吧。不过话说回来,如果有不知名原因出现了untag帧,打上1的pvid他一样也无处可去啊
    •    2021-08-01 23:46 回复 层主  @yagami_yang 交换机是不是SG105Pro,我记得端口2与我的光猫会这样。
    •    2021-08-02 00:23 回复 yagami_yang  @captain_teamo 是水星的SG105pro,是不是这种交换机的误报还是什么设计缺陷?正准备给水星去个邮件咨询一下。
    • --= 展开其他2条评论 =--
发表评论,请先 登录
T