路由器能隔绝广播,那要VLAN有什么用?既配置了VLAN又划分在不同的网段是不是有些多余了?透彻理解每一个字的真正涵义,有时并不那么容易。以下文字为了尝试让同学们透彻理解这些字的真正涵义。广播报文,就是任何主机无条件接收的报文。无条件这三个字就不多解释了,可以理解为必须、强制的。广播报文,如果没有IP协议头,只有Ethernet协议头,那么就是二层广播,二层广播地址 = FF:FF: FF:FF: FF:FF。如果有IP协议头,那么就是三层广播,三层广播地址 = 255.255.255.255。如果高音喇叭是广播,管你愿不愿意听,你一定能听到。单播就是你和朋友在打电话,两者参与的点对点通信。电脑开机的时候,需要一个IP地址与外部的世界通信。哪位大神能做点慈善事业,给这台电脑分配一个IP地址啊?这位做慈善事业的大神名字叫:DHCP服务器。电脑并不知道有没有大神,也不知道大神的IP地址。如果知道大神的IP地址,就可以与大神单播通信了,对吗?电脑并不care这些。每台电脑开机的时候都会使用广播来碰碰运气,于是发出了一个DHCP广播报文。交换机检查DHCP广播报文的目的MAC= FF:FF: FF:FF: FF:FF,知道这是一个广播报文。然后怎么处理?需要将这个DHCP广播报文,发给这个广播域中的每一个端口。因为广播的涵义是每一个端口连接的电脑都需要接收,交换机这么做很好理解吧?广播域,就是一个广播报文可以扩散的势力范围。比如,高音喇叭(广播),它的扩散范围就是一个广播域。默认情况下,交换机所有端口处于一个广播域。假设交换机有48个端口,那么这48个端口都处于同一个广播域。交换机会将DHCP广播报文复制(copy)47次,将报文依次从47个端口流出(outgoing)。不是48个端口吗?怎么只从47个端口流出?其中有一个进口(incoming),即交换机接收到DHCP广播报文那个端口,需要剔除出去。不要忘记,一个大型的网络可能有成百上千台交换机,上文中的47个端口通常会有1-2个端口连接其它交换机。那么DHCP广播报文就顺利地流到了其它交换机,然后继续扩散到所有端口。而其它的交换机还会连接着另外的交换机,就这么循环下去。假设网络里有100台交换机,一共48 * 100 = 4800个端口,那么4799个端口都会收到DHCP广播报文。如果每个端口都连着电脑,那么4799个DHCP广播报文,就会产生4799次网卡的硬件中断,中断CPU的正在处理的工作,来处理这个DHCP广播报文。对于99.9%的电脑来说,完全是一种地地道道的骚扰,因为它们压根不是DHCP服务器大神,中断CPU难道很好玩吗?不就是4799次广播报文吗?计算机CPU高速计算能力处理起来还不是小菜一碟?如果4800台电脑都发一次DHCP广播报文呢?那么就是4800 *4800 = 23,035,200 。如果是48000台电脑,每台主机一天发100个报文呢?48000 * 48000 * 100 = 230400000000 次报文复制/天。广播报文不光骚扰电脑的CPU,还消耗交换机硬件吞吐能力。你以为交换机的复制报文行为是很轻松的事吗?其实并不是,复制报文的操作一样会消耗硬件资源,一样会消耗内部数据总线资源。站着说话轻松,是因为我们并不知道交换机背后所付出的努力。而为了保护交换机被广播报文的骚扰,以及保护那些电脑的CPU的免受广播的骚扰,必须将广播域的势力范围大大缩小。用哪把砍刀将广播域的势力范围砍小呢?不同的电脑属于不同的业务部门,相同的业务部门使用同一个VLAN,一个VLAN就是上文的一个广播域。只要将交换机端口分配到不同的VLAN里,就可以实现将交换机端口划分到不同的广播域。这句话如果看不懂,实在抱歉,真的帮不上你了。接下来就简单了,对于入口(incoming)的广播报文,需要转发到哪些出口(outgoing)呢?那么就根据入口(incoming port)属于哪个VLAN,然后把属于该VLAN的所有端口过滤出来,广播报文只转发到这些过滤出来的端口(入接口除外),因为它们属于一个广播域。而不要将广播报文发到所有的端口。
本文最后更新于2021-3-6,已超过 3个月没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
获取更多资讯请加入交流群