干了15年弱电,跟VLAN打了半辈子交道。今天就跟大伙儿聊聊,这玩意儿到底是干啥用的。
VLAN,全称叫虚拟局域网,说白了就是把一个物理网络,在逻辑上切成好几个互不相干的小网络。每个小网络自己玩自己的,广播消息也只在自个儿家里传,传不到隔壁去。
为啥要搞这么个东西?老早以前的以太网,用的是CSMA/CD那套,大家伙儿挤在一根线上抢着发数据。设备一多,冲突就跟菜市场吵架似的,广播包满网飞,网速慢得跟蜗牛爬一样。后来用了交换机,冲突的问题是解决了,可广播泛滥的毛病还在。你想想,一个办公室几百台电脑,谁吼一嗓子,全楼都得听,那不乱套了?
VLAN就是来治这个病的。它把一个LAN切成好几个逻辑上的小VLAN,每个VLAN里头的设备互相通信没问题,但跨VLAN就不让直接通了。广播包也就憋在自个儿的小圈子里,出不去。
实际施工经验: 我头一回用VLAN是给一个写字楼做网络改造。那栋楼里租了十几家公司,共用一台交换机。以前没做VLAN,一到下班时间,A公司的打印机能被B公司的人误打出来,还闹过笑话。后来我把每家公司划到不同的VLAN里,广播风暴没了,安全也上来了,客户直夸专业。不过有个坑——跨VLAN通信得配三层交换或路由器,一开始忘了这茬,结果财务部的服务器和前台收银系统不通,又跑回去加了个VLANIF接口才搞定。所以记住:VLAN只管二层隔离,三层互通得另想办法。
VLAN的好处很明显:广播域小了,带宽省了,网络也稳了。一个VLAN里出了故障,不会把整个网络拖垮。而且你想啊,搞个“虚拟工作组”,人换工位了,只要VLAN不变,权限跟着走,省得天天改IP。
有人拿VLAN和子网比。子网也能隔离通信,但那是三层的东西,VLAN是二层的。两者没必然关系,你在同一个子网里可以划好几个VLAN,反过来也行。别搞混了。
交换机要识别不同VLAN的报文,得在数据帧里加个标签。IEEE 802.1Q协议规定加4个字节的VLAN Tag,里头有个VID字段,取值范围1到4094。0和4095是保留的,别乱用。
交换机内部处理的数据帧都带Tag,但连到用户电脑、打印机这些设备时,它们只认不带Tag的普通帧。所以交换机的接口得会加Tag、剥Tag。接口上有个缺省VLAN(PVID),决定了给进来的帧打什么标签。
常见的接口类型有三种:Access、Trunk和Hybrid。
Access接口一般接终端设备。它只处理不带Tag的帧,进来时打上PVID的Tag,出去时把Tag剥掉。简单说,就是“一根筋”,只属于一个VLAN。
Trunk接口用来连交换机或路由器。它能带多个VLAN的Tag通过,但只有缺省VLAN的帧出去时不带Tag(剥掉)。有的厂商管这个缺省VLAN叫Native VLAN。注意,不同厂商默认Native VLAN可能不一样,华为是VLAN 1,思科也是VLAN 1,但接在一起时最好统一,不然容易出乱子。
Hybrid接口最灵活,既能接终端,又能接交换机。它允许某些VLAN的帧带Tag出去,某些不带,全凭你配。比如在QinQ场景里,Hybrid接口能剥掉外层Tag,Trunk就干不了这活。
省钱技巧: 小公司预算有限,别一上来就买三层交换机。其实用二层交换机配VLAN,再加个便宜的傻瓜路由器做单臂路由,也能实现VLAN间通信。路由器一个口接Trunk,配子接口,每个子接口对应一个VLAN,成本能省一半。不过注意,路由器转发性能有限,流量大了容易卡,适合几十台设备的场景。要是上百台,还是老老实实上三层交换。
VLAN的实际应用场景挺多的。最常见的是二层隔离——比如商务楼里好几家公司共用网络,把每家公司的接口划到不同VLAN,各家数据互不干扰。还有按IP子网划分VLAN的,员工换工位也不影响权限。
要是需要VLAN间的三层互访,就得靠三层交换机或路由器了。比如两个部门在不同VLAN,中间用三层交换机配VLANIF接口,就能互相访问。
踩过的坑: 有回给客户做VLAN间互访,三层交换机上配了VLANIF,路由也写了,可就是不通。查了半天,发现是Trunk接口上没允许VLAN通过。华为交换机默认Trunk只允许VLAN 1,其他VLAN得手动加“port trunk allow-pass vlan all”或指定VLAN。还有一次,Hybrid接口的PVID配错了,导致打上的Tag不对,数据包乱窜。所以配完后一定得用“display vlan”和“display port vlan”检查一遍,别嫌麻烦。
最后提一嘴相关协议。IEEE 802.1Q是VLAN的标准;LNP能动态协商接口类型,省得手动配;QinQ就是给VLAN Tag再加一层Tag,用在运营商网络里扩展VLAN数量。这些以后有机会再细聊。
总之,VLAN这玩意儿,用好了是神器,用不好就是坑。多练多试,自然就熟了。
