查看: 16351|回复: 13

802.1Q Vlan问题

[复制链接]
发表于 2006-4-17 17:41:09 | 显示全部楼层 |阅读模式
求802.1Q Vlan的详细原理?

[ 本帖最后由 菜鸟人飞 于 2006-4-20 09:56 编辑 ]
回复

使用道具 举报

发表于 2006-4-18 09:29:48 | 显示全部楼层
802.1Q协议,即Virtual Bridged Local Area Networks协议,主要规定了VLAN的实现,它是一个有关Trunk封装方式的标准,很多厂商的设备都支持这个标准。和ISL不同,IEEE 802.1Q是在数据帧的中间位置加上4个字节的标识,前2个字节是标记协议标识(Tag Protocol Identifier,TPID),0x8100代表IEEE 802.1Q,后2个字节为标记控制信息(Tag Control Information,TCL),其中就包含了VLAN的信息。
回复

使用道具 举报

发表于 2006-4-18 09:40:52 | 显示全部楼层
802.1Q是VLAN协议的一种,它定义了基于端口的VLAN模型。支持802.1Q协议的设备在发送VLAN数据包时,都会在数据包的源地址和协议类型(长度)之间添加一个长4字节的802.1Q报头,封装后的以太网数据包报头结构如下:

目标MAC  源MAC  802.1Q  协议类型/长度  数据  FCS
   6字节     6字节    4字节            2字节     未知    4字节

802.1Q的4个字节中,包括2个字节的标签协议标识(TPID--Tag Protocol Identifier,值是0X8100),2个字节的标签控制信息(TCI--Tag Control Information)。
802.1Q报头中有以下字段:
Protocol Type:指明该数据包是一个802.1Q数据包,取值0x8100;
Priority:指明该数据包的优先级,一般情况下置0;
CFI:此位一般忽略,置0;
VLAN ID:这是一个12位的域,指明VLAN的ID,一共4096个;

不过需要注意的是,当前网络中的计算机,大多不支持802.1Q,也就是说计算机发送出去的数据包的数据包中不包含这802.1Q报头,同时也无法识别这包含802.1Q的数据包。所以网络中出现802.1Q数据包时,采用如下的传送方式。
源主机发出数据包时,并不包含802.1Q报头信息,支持802.1Q的第一个设备(当前网络中大多是交换机)为该数据包添加802.1Q报头信息,并将其往目的端发送,在支持802.1Q的最后一个设备上去除该802.1Q报头信息,再将去除802.1Q报头的数据包传送目的主机。

附802.1Q的详细数据包解码图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2006-4-18 13:40:49 | 显示全部楼层
楼上的说得太详细了,不过我还想了解一下这个协议有什么应用?
回复

使用道具 举报

发表于 2006-4-18 16:31:22 | 显示全部楼层
原帖由 天蓝 于 2006-4-18 13:40 发表
楼上的说得太详细了,不过我还想了解一下这个协议有什么应用?

802.1Q,也就是Virtual Bridged Local Area Networks协议,它规定了VLAN的实现,即应用于VLAN。
回复

使用道具 举报

 楼主| 发表于 2006-4-19 16:31:18 | 显示全部楼层

802.1Q Vlan入口和出口规则

感谢以上各位的解答,不过能再讲一下802.1QVlan的入口规则和出口规则最好了,802.1QVlan的入口规则和出口规则也就是说当交换机收到一个数据包(这个数据包有可能带Tag头,有可能不带Tag头)后,按照怎样的规则转发出去(从交换机出来的数据带不带Tag标记)?
回复

使用道具 举报

发表于 2006-4-20 09:49:04 | 显示全部楼层
我个人理解的入/出口规则如下:
如果交换机的某些端口(假设1~4)属于同一个VLAN, 那么当1 端口收到一个数据包时交换机看到该数据包没有802.1Q标签头,它会根据1端口所属的VLAN组自动给该数据包添加一个VLAN标签头,然后将数据包传递给转发模块,如果转发模块连接的端口支持802.1Q,则不对数据包作任何改动,如果连接的端口不支持802.1Q,那么它会将该标签头支掉,然后再进行发送。

其步骤可以简述为以下三步:
1。接收过程
负责接收数据包,数据包可以是带802.1Q标签头的也可以不带,如果不带交换机会知道根据该端口所属的VLAN添加上相应的标签头,带了所不做任何更改;
2。查找过程
根据数据包的目的MAC地址和VLAN 标识等信息决定把该数据包发送到哪个端口;
3。发送过程
将数据包发送到出去,如果该接收主机不能识别802.1Q标签头,那么就将该标签头去掉,如果接收端能够识别(如是交换机),则不去掉直接发送出去。
回复

使用道具 举报

发表于 2006-4-20 09:53:55 | 显示全部楼层
可参见资源共享区的802.1Q和802.1P的详细实现,http://www.csna.cn/forum.php?mod=viewthread&tid=60
回复

使用道具 举报

发表于 2008-3-6 21:53:15 | 显示全部楼层
引用一下三楼的:
源主机发出数据包时,并不包含802.1Q报头信息,支持802.1Q的第一个设备(当前网络中大多是交换机)为该数据包添加802.1Q报头信息,并将其往目的端发送,在支持802.1Q的最后一个设备上去除该802.1Q报头信息,再将去除802.1Q报头的数据包传送目的主机。

想问一下添加的802.1Q报头信息是不是所有的四个字节,包括优先级标签?如果要对一个主机发出的信息进行优先级设置,是不是只要在路由(支持802.1Q)中设置就可以了?
回复

使用道具 举报

发表于 2008-11-12 21:02:43 | 显示全部楼层

回复 3# 的帖子

朋友,你能抓到1q的报文真是难得,现在的网卡在收到带vlan tag的报文时都会主动剥离vlan tag或者干脆直接丢弃,我试过向我的笔记本网卡发送q-in-q的报文结果抓包看到网卡主动剥掉了外层标记,只有个内层标记残留下来,很是让人头疼,不知道你是通过怎样的方式抓到的上面显示的这个报文,方便的话希望分享一下,谢谢。
回复

使用道具 举报

发表于 2008-11-12 22:46:33 | 显示全部楼层
原帖由 chensha 于 12/11/2008 21:02 发表
朋友,你能抓到1q的报文真是难得,现在的网卡在收到带vlan tag的报文时都会主动剥离vlan tag或者干脆直接丢弃,我试过向我的笔记本网卡发送q-in-q的报文结果抓包看到网卡主动剥掉了外层标记,只有个内层标记残留下来 ...

N老的帖子你也顶,不过回复你一下,你说的现象跟网卡驱动,甚至是NDIS驱动有关。
科来的捕获驱动实现的层次不算太低,故要受一些影响。
回复

使用道具 举报

发表于 2008-11-26 14:30:44 | 显示全部楼层
谢谢分享, 呵呵
回复

使用道具 举报

发表于 2008-11-29 21:33:52 | 显示全部楼层

回复 10# 的帖子

修改注册表可以,GOOGLE一下
回复

使用道具 举报

发表于 2008-11-29 21:38:57 | 显示全部楼层
QINQ主要用于扩展VLAN 资源。对于电信部门单用户单VLAN改造,实现PPPOE用户绑定,对VLAN资源需求较多,可以通过QINQ实现。对于以后单用户单业务单VLAN,VLAN资源需求更多。可以通过SVLAN实现业务区分、Cvlan实现端口区分。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表