路由器能隔绝广播,那要VLAN有什么用,既配置了VLAN又划分在不同的网段是不是有些多余了?
题主的意思是不要VLAN,可以吗?
当然可以。可以是可以,但是每台主机都能接收到路由器同一个接口(三层/路由)下所有的广播报文。
既然路由器隔离广播,为何主机能收到路由器同一个接口(三层/路由)下所有的广播报文?
很显然啊,因为路由器隔离广播报文,是以三层接口为最小单元的。换句话说,接口1的广播报文不会扩散到接口2,同理接口2的广播报文也不会扩散到接口1。
但是,接口1的广播报文,在到达路由器接口1之前的广播扩散行为,路由器是无法控制的。也就是说,由于没有VLAN的逻辑隔离,接口1延伸出去的势力范围,其实是一个广播域,广播报文会在这个广播域自由扩散。路由器接口1的存在是让这个广播域内的广播报文无法扩散到其它三层接口/广播域,比如接口2,仅此而已。
广播报文的最大益处是在DHCP、ARP、以及NetBios能够方便主机之间的通信。但是广播报文的副作用占据网络带宽资源、消耗每台接收主机的CPU处理时间,因为无论愿不愿意,广播报文需要强制接收,并被CPU处理。一旦广播域内的主机数量过大,广播报文数量也会急剧增加,从而影响广播域内每台主机。
没有VLAN的存在,路由器接口物理延伸出去的即为一个广播域。为了限制广播域的面积(一个广播域内主机的数量),在主机数量固定的情况下,势必要增加路由器的三层物理接口。意味着路由器的物理接口会随着主机的数量等比例增长,这显然不是好的option。
有了VLAN的存在,可以在广播报文在到达路由器三层接口之前,已提前将不同广播域/网段/VLAN的广播报文提前隔离开了。有了VLAN的隔离广播报文的利器,路由器的三层接口剩下的工作很简单,就是跨网段路由IP报文,使得不同网段主机之间的通信成为可能。
但是上文使用路由器的三层路由物理(PHY)接口,这种接口最不友好的地方在于:
不同的三层物理接口延伸出去的区域,必须是不同的VLAN。
举个例子,接口1延伸出去VLAN 10、20、30。那么接口2延伸出去VLAN就不能是10、20、30,只能选择别的了。这样方便吗?
当然不方便啦,试想一个公司的10楼有HR的员工,连接在路由器接口1的vlan 10 上。12楼依然有HR员工,也想使用vlan 10上,且大家工作在一个相同的广播域/网段。但是12楼的连着的是路由器的接口2,很显然他们不能使用10楼一样的广播域/网段。
解决方案?
- 基于VLAN三层路由接口的三层交换机
- 基于VLAN三层路由子接口的路由器
- 基于VLAN三层路由子接口的防火墙
以上三种解决方案都可以,一般对安全要求不高的会使用方案1、2。对网络安全要求严格的会使用方案3,即在接入层会对进入流量做安全过滤,只有security policy允许放行,才使用路由转发将IP报文转发出去,否则一律丢弃处理。
以上三种解决方案,都是利用VLAN在二层的强大的隔离能力,使得不同VLAN/网段/广播域之间的一切报文,包括广播报文井水不犯河水。
一旦它们之间需要跨网段通信,就需要以上三个设备介入了。这同样也不是难事,因为以上三个设备在每一个VLAN里都有自己的三层路由接口,都可以充当三层网关,这种路由接口是基于软件的,想要多少有多少,上限的数量受限于VLAN ID 的4096。
尽管三种设备三层路由接口/子接口,限于路由转发能力也是有上限的,但是支持几十个路由接口通常是没有问题的。这对于绝大多数公司来说已经绰绰有余了。对于大型机构,只要提升防火墙的型号,增加两台冗余设备,一样也是绰绰有余的。
作者|车小胖谈网络|公众号