带有vlan tag的报文与网卡的交互关系

背景

        嵌入式Linux系统应用领域:路由器

        测试网络设备的功能,抓包往往更能精确的分析问题。

知识储备

    1.pvid和vid

        默认的pvid=vlan id(vid:vlan id);
        PVID为Port Vlan ID,关系到端口收发数据帧时的VLAN TAG 标记;
        pvid是交换机上的概念,说的是进入该端口的报文如果没有打vlan id就按pvid的值打上;
        vid是报文上的vlan tag的意思;
        一个端口可以属于多个vlan,但是只能有一个pvid;
        简单的说,VID(VLAN ID)是VLAN的标识,定义其中的端口可以接收发自这个VLAN的包;而PVID(Port VLAN ID)定义这个untag端口可以转发哪个VLAN的包。
        比如,当端口1同时属于VLAN1、VLAN2和VLAN3时,而它的PVID为1,那么端口1可以接收到VLAN1,2,3的数据,但发出的包只能发到VLAN1(以VLAN1值建立的虚拟interface)中。

    2.查看vlan和pvid表

        每种网络设备都有其厂家单独封装好的的查看vlan表和pvid表方法命令

        前面的t表示tag, u表示untag, 后面的ttt表示cpu口(只有带vlan/打了tag的报文才会经过cpu口,并不是流经此cpu口才会打tag)

 

分析

        大多数情况下设备通过其wan口抓取从internet中获取的报文进行分析,以wan口进行分析:

        1.进入设备的报文若没有vlan,进入对应端口(一般来自wan口),默认将该端口的pvid当作vlan对报文进行打tag, 再经过t(cpu口)-->eth2(物理网卡),因为现在报文vlan=1, 所以eth2.1接收此报文。也就是说,在eth2.1可以抓取到此报文(上层eth2也可以),在其他虚拟网卡eth2.2等上抓取不到该报文;
        2.进入设备的报文若带有vlan,进入对应端口(一般来自wan口),因为报文本身带有tag,所以到这一步不会有打tag动作,直接流经cpu口-->eth2网卡,若有此vlan的虚拟网卡,在此网卡可以抓取到此报文,没有则报文只能够在eth2抓取;


        3.从网卡出去的报文,经过cpu口-->经过对应port端口,若此口有untag,则出去的报文不带tag;
        4.从网卡出去的报文,经过cpu口-->经过对应port端口并且此口没有untag,报文本身有vlan_tag,则报文带tag; 报文本身不带vlan_tag,报文不带tag;

 

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值