ansity 发表于 2008-7-19 22:19:44

求各位帮忙排错

两台交换机,不用三层设备。sw1的f0/24与sw的f0/24口相连。sw1的f0/1接pc1,该端口属于vlan1,sw1的f0/24口设为trunk模式。sw2的f0/1接pc2,该端口属于vlan2。 sw2的f0/24口设置成access模式,并划入vlan2。
问:pc1和pc2不通过三层设备能正常通信不?


ps:我自己用catalyst2950实验时,怎么也不能通信,而且sw2的f0/24口一直处于协商状态。但是按照vlan打tage的说法,貌似两者之间应该通信说的通。

我知道,不同vlan之间要通信,必须用到三层设备,这是个硬性道理。

(ps 一下:sw1的所有端口都属于vlan2,sw2的所有端口都属于vlan3。pc1接sw1的f0/1口,sw1的f0/24(属于vlan2)和sw2的f0/24(属于vlan3)口相连, pc2接sw2的f0/1口。pc1和pc2属于不同的两个vlan,但是pc1和pc2却不经过三层设备能够正常通信。前提:pc1和pc2的ip地址在同一网段。)

所以,我个人觉得这题所要讨论的就是数据包是如何在交换机上打上vlan的标签这回事。

第一,对于access口来说,当其接收到带有vlan 标记的帧时,会将其丢弃。因而其只能接收不带tag的帧。当其接收到不带tag的帧时,却在交换机内将其打上所属vlan 的标签。
第二,对于trunk口,当其接收到带有tag的帧后,若trunk允许该vlan 的帧通过,则直接转发给对方的端口。若接收到不带tag的帧,而该trunk口却有允许native vlan通过,则直接转发至对方交换机,否则丢弃。

基于以上两点理论,当数据从pc1出发,到达sw1的f0/1口时,sw1接受该帧并将其打上vlan1的标签,并转发至所有同属于vlan 1的端口和允许该帧通过的trunk口。f0/24接收该帧后,将tag脱掉,并转发给sw2的f0/24口。sw2的f0/24口接收到不带tag的帧后,泛洪,转发给跟f0/24同属vlan2的所有端口(f0/24除外)。pc2接收到帧后,开始回应。回应的数据包从f0/1口进入sw2,进入sw2后,sw2泛洪,将其转发给所有同属于vlan2的端口(f0/1除外)。帧在sw2内打上vlan2的tag,而从f0/24口出来后,同样会将其tag脱掉,转发给sw1的f0/24口。而sw1的f0/24口收到不带vlan 标签的帧,直接转发给native vlan的所有端口,pc1收到数据。二者建立通信!


哈哈 经过多次排错实验,我终于验证了以上的理论!!!
以上完全正确!
只是做真机实验时,要将交换机默认的STP关闭!

[ 本帖最后由 ansity 于 2008-8-3 00:27 编辑 ]

fuxiaoli 发表于 2008-7-20 18:52:17

一,SW1的0/24与SW2的f0/24相连,一边设置为access模式,一边设置为trunk模式,当然就不能够协商成功。再之,没有三层设备,vlan1与vlan2就不能够通信。
二,SW1的0/24与SW2的f0/24相连,两边都设置成access模式,协商成功了,SW1的f0/24属于vlan2,SW2的f0/24属于vlan3。当pc1与pc2的ip地址是同一个网段时,pc1 ping pc2 时,pc1经过f0/1向所有属于vlan2的端口发送arp查询包,寻找pc2的mac地址,查询包发送至f0/24端口,而此时虽然SW1的f0/24属于vlan2,SW2的f0/24属于vlan3,但2和3都是在其各自vlan数据库当中的vlan id,故arp查询包将发送至SW2所有属于vlan3的端口,于是pc2做回应,接着通信建立。
三,个人认为,在一台交换机中,那个端口属于什么模式,属于那个vlan是被记录在vlan数据库中的,所以数据应该是在经过trunk的时候封装(打标签)的,至于你在第二点中提到的vlan2与vlan3的通信,首先你要认识到pc1与pc2要在同一个网段,再次f0/24都被设置为了access模式,所以应该不存在打标签的问题,所谓的不同vlan是针对不同交换机而言的,所以就得出了你的结果。
   自己的一点想法~~~不知道能不能帮到你~~~-- -- --

[ 本帖最后由 fuxiaoli 于 2008-7-20 18:53 编辑 ]

ansity 发表于 2008-7-20 20:17:31

回复 2# 的帖子

哈哈 你能够回答就已经很感谢了
页: [1]
查看完整版本: 求各位帮忙排错