从Switch到Vlan - II

什么是Vlan?
Vlan是在相同广播域(BroadCast Domain)的一组网络设备。
广播域,指广播域里面的任何一个设备,进行广播,其他设备都会收到;
冲突域(Collision Domain)呢?像使用Hub连接的Pc,或者Pc连接到Switch的一个Port,都是一个冲突域,即只有一个设备可以发信息,其他设备如果也发送信息,那么会导致冲突。
如果不设置Vlan, 那么连接在Switch的所有设备,都接收相同的广播,如果设置Vlan, 那么可以根据Vlan而接收指定的广播。
这有什么好处呢?
我们知道,网络设备通讯使用的是Mac地址,位于OSI第2层,而全球的所有网卡的Mac地址不会重复,是唯一的。(不遵守规则者例外,毕竟Mac地址可以修改)
而位于第3层的IP地址可以设置多个,你一定尝试过自己的Pc的单独网卡设置过多个IP地址,这是允许的,因为最终网络设备通讯是通过Mac地址的。
当Pc同其他设备通讯试,只知道对方IP地址,不知道Mac地址,所以需要使用Arp,通过广播,发送目的IP地址,目的机器收到后,会返回确认信息,从而知道了对方Mac地址。
如果不设置Vlan,你的Pc有2个IP地址,那么每个地址第一次发送信息时,都会产生广播,所有同Switch连接的设备,都会收到,不论是否同这个IP地址在相同网段,还是不同网段。
如果设置了Vlan,那么只有相同网段的设备才会收到广播,其他设备不会收到,从而减轻了网络负载。
也就是说,虽然所有设备都是连接在相同Switch上,但是它们彼此不可以互相通讯,如果想互相通讯,需要路由器的支持。

现在我们有了另外一个问题,我的Pc的单独网卡,是不是因为有了2个IP地址,既可以同vlan1通讯,又可以同Vlan2通讯呢?
答案是可以,但是要求网卡有Trunk功能,或者,装2个普通网卡,每个有自己单独的IP地址。

什么是Trunk呢?
对于普通网卡,在第2层工作,需要发送和接收Frame,Frame是第2层的网络基本单元,第3层是Packet,第4层是Segment。
Frame有自己基本的格式,像一列火车,有车头提供动力,车尾放置邮件,中间车厢有硬座,软座,卧铺和餐车。普通网卡可以理解这列火车,知道怎样区分火车的每个车厢。
使用Vlan的Frame,有所不同,需要增加一节车厢,说明自己属于哪个Vlan。
所以要求,或者Pc提供2个普通网卡,分别处理不同的Frame,或者使用的唯一网卡有Trunk功能,可以区分Frame中的Vlan,并可以产生对应的Frame,设置Vlan信息,送给Switch。

如果除了Switch,其他网络设备都不支持Vlan,那么Switch怎样工作?
Switch会在收到Frame时,以及送出Frame时,作一个封装。加入新的车厢,标记vlan,然后根据Vlan作相应处理,送给对应Vlan的Port。送出Port前,需要解开封装,还原成普通的Frame。
主要的2种封装协议:Cisco 的InterSwitch Link (ISL) protocol和IEEE's 802.1Q

Vlan是否可以存在于多个Switch?
Vlan功能强大,可以存在于多个Switch,就像是路由器,可以交换路由信息一样,Switch也需要交换Vlan信息,当然,也像路由器,可以手工设置Vlan信息,对于小规模的Switch可以,但是对于很多的Swtich,需要Vtp(Vlan Trunk Protocol)。
因为Vlan可以存在于多个Swtich,所以允许Pc使用不同Switch的Port,而照旧属于某个Vlan。
路由器交换路由信息,是使用Routing Protocol,Switch交换Vlan信息,是通过Vtp,vtp仅可以在支持Trunk的Port间传播。
当我们在某台Switch上,增加,删除,修改某个Vlan时,Vtp会把这些改变通知其他Switch,从而保证配置的连续性。
当设置Vtp时,Switch可以是以下3种状态中的一种:
Server,Client,Transparent
Server是默认的状态,可以增加,删除,修改vlan,Transparent也允许这样做,唯一的区别是:Transparent只影响自己,而Server却可以通过Vtp传递给其他Switch。
而且Tranparent收到Vtp信息时,所作的仅仅是通过自己的其他Port把Vtp信息送出去,然后忘记刚才发生的一切。
而Server,client收到Vtp信息时,需要作更新。

posted on 2007-02-12 10:47  Pierce  阅读(783)  评论(1编辑  收藏  举报

导航