天天看点

设计错误引来的思考

   今天工作不忙,闲来无事,正好同事问我一个vlan的问题:局域网里面有vlan,然后一台2960做接入交换机,每个口接一台pc,比如f0/1,属于vlan2,接pc1,现在,问题来了,办公室多来了一个人,要用pc2和网络,也属于vlan2,问我,能不能在f0/1下挂一个傻瓜交换机,pc1和pc2连接这个傻瓜交换机,都用vlan2段的地址。这显然是可以的,之前也碰到过这个问题,他一试,确实可以。

我忽然有一个想法:假如把这个傻瓜交换机换成一台2960,然后2960什么配置也不做,可不可以?

之前我并没有考虑过傻瓜交换机的通信原理,以为是很简单的事情。现在换成是2960了,确实值得去考虑一下。

为什么换成2960了要考虑一下?我是这么想的:默认cisco交换机端口全部是access,且属于vlan1,而上面是一个access vlan2的接口,vlan信息根本不同步,那么就不能通信,不能用2960。

可是一个傻瓜交换机都能做到的事情,cisco就不能做到了?这是什么道理??

我决定做实验去研究一下,先用模拟器再用真机,模拟器就用cisco的packet tracert 5.2。

第一个实验:请看附件图片1

设计错误引来的思考

图片1.jpg (20.88 kb)

3台pc网关均为192.168.1.1,然后都去ping 192.168.1.1,发现,是能ping通的

这就说明,我的猜测是错误的,用2960代替傻瓜交换机是可以的

至于原因,下面再来研究

三层交换在这里没什么用嘛,换成2层的来看看

第二个实验:请看附件图片2

设计错误引来的思考

图片2.jpg (20.61 kb)

这里3台pc的网关仍然为192.168.1.1,然后去ping 192.168.1.1,也是能通的,这跟预想的情况是一样的。

下面的交换机全部接口为vlan1,那我改成其他的vlan,比如vlan3,那结果如何?

第三个实验:请看附件图片3

设计错误引来的思考

图片3.jpg (25.28 kb)

这里3台pc的网关仍然为192.168.1.1,所改变的是下面交换机的端口全部access vlan 3,还有个vlan 3的地址

那么,现在在pc上ping 192.168.1.10这肯定是通的

那在pc上ping 192.168.1.1通不通呢?

有点小兴奋,居然通了!!!

百思不得其解啊百思不得其解

为什么?为什么?如果我在两个交换机上划不同的vlan,能不能通?对,2层交换,不是3层

请看最后一个实验

第四个实验:请看附件图片4

设计错误引来的思考

图片4.jpg (22.1 kb)

图中4台pc均未设置网关,掩码为24位

我们用4台pc互相去ping,看看会是什么结果

结果如何?

交换机0上的主机0  192.168.1.2(属于vlan10)能够ping通交换机1上的主机3  192.168.1.5(属于vlan20)

其他的均ping不通

哈哈,是不是很神奇,2层交换,不同vlan间能互通

可是为什么?为什么会这样?这好像跟我所学的冲突啊,本来不应该是这样的,这。。这。。太不可思议了

难道是模拟器出了问题?用真机去试试

事实上,用真机是一样的效果

这,就是vlan的秘密

  这样的情况,如果你是的经验十足的工程师的话,可能你就不会这样设计网络,因为这样的网络设计是没有什么意思的,在实际环境中。因为我们会选择两个交换机间使用trunk来传递不同vlan之间的信息。为什么我在这里会将此博文提一下呢,因为它说明了一个vlan之间的小知识点哦。

   不知道你想透了没有。呵呵……是什么原因会出现上面的那种情况,主机0只能与主机3通信。其它都不可以?

   它们之间就在于一个tag与untag。

   对于access接口,个人pc上的数据到达交换机之后,交换机就会给它打上一个vlan tag,然而在离开交换机的时候交换机又会将这个vlan tag 剥掉,所以出现上面4的情况。

   如主机0发一个报文到交换机0的时候,交换机0将它打上vlan 10的tag,但是当它从接口fa0/0出来的时候,这个vlan tag就被剥掉了,然而数据到达交换机1的时候,接口又给它打上的vlan 20的tag,所以到达对端之后就只能与vlan 20网段的pc进行通信了。