VLAN,到底是二层技术还是三层技术?

来自:车小胖谈网络 (微信号:chexiaopangnetwork),作者:车小胖谈网络

现在的项目动辄都提VLAN,不管甲方是否有这个需求,提VLAN就必须上三层交换。这就带来一个误区,很多人都误认为VLAN是只有三层交换机才有的功能。我以为VLAN本身应该属于二层技术,三层交换只是用于VLAN间通信。本人才疏学浅,还请大咖来讨论一下VLAN到底属于二层技术还是三层技术?

 

 

先用生活里的例子来比喻一下什么是VLAN,以及VLAN解决哪些问题。

在魔都中心城区,经常有一些大房子被用来群租,有时大客厅也会放几张床用于出租,睡在客厅里的人肯定不爽的,因为有打呼噜的、有磨牙的、有梦游的、有说梦话的,一地鸡毛。


为了克服以上的互相干扰,二房东将客厅改造成若干个小房间,小房间还有门锁,这样每个房间就有了自己的私密空间,又可以有一定的安全性,至少贵重的物品可以放在房间里不怕别人拿错了。

上文的大客厅,代表的是一个大型广播域,假设这个广播域对应的网段是10.1.0.0/16,理论上这个广播域可以容纳65535台终端,终端之间的通信模式是:先广播ARP发现对方的MAC地址,然后点对点单播通信。

不要小看广播ARP的影响,它会影响所有的终端,如果每一台终端平均一小时发一个广播包,一共是65535个,每一个将会被复制65535次,一共会产生4.3亿次的广播数据。

此外局域网里不光只有ARP是广播,还有Windows文件共享、打印机共享所依赖的NETBIOSNBT(NETBIOS Over TCP)CIFS/SMB协议也会发广播包,以及DHCP也会发广播包,所以广播对网络的影响是M*N^2 (其中M为依靠广播的应用,N为终端的数目)。

如何抑制广播报文的影响?

大家可否知道,为何以太网(Ethernet)会垄断性的流行?那是因为简单易用,无需用户配置就可以用。其实这不是没有代价的,这是以网络嘈杂度为代价实现网络的简单易用。换句话说,简单的外表背后,依靠广播交互来完成网络自动化配置。

广播在一个广播域内无法抑制,如果抑制也就等于抛弃了网络易用性。在网络嘈杂度与网络易用性的天平。

最终选择了网络简单易用,也意味着我们依然会依靠嘈杂的广播来实现自动化配置。

既然在一个大广播域内无法减少广播,那我们换个思路,从二房东那里寻求一点灵感,把大广播域分割成很多小广播域是不是会好一些?

一个VLAN一个广播域

现在我们将大广播域所对应的网段10.1.0.0/16分割成255个,那它们所对应的网段为10.1.1.0/24、10.1.2.0/24、10.1.3.0/24…10.1.255.0/24,它们对应的VLAN ID为1、2、3…255,这样每个广播域理论可以容纳255个终端,广播的影响指数下降(相比4.3亿次,这里只有255^2= 65535)。嗯,这是一个不错的想法。

VLAN实现在二层交换机上的,二层交换机没有网段的概念,只有路由器才有网段的概念。

以上的255个网段的配置是配置在路由器的子接口上,每个子接口(Sub-Interface)采用802.1Q VLAN ID封装,这样就把网段和对应的VLAN联系了起来,子接口通常作为此网段的缺省网关。

如果采用三层交换机来替代路由器,则使用 Interface VLAN ID 来将VLAN与网段联系起来,和使用路由器类似。

VLAN可以提供安全性

我们还从二房东学习到,可以将每个房间加锁,我们可以让三层交换机(VLAN之间的路由)、路由器、防火墙设置一些ACL(Access-List),允许或拒绝VLAN之间的通信。

一个VLAN,对应一个网段
VLAN是二层虚拟技术,VLAN对应IEEE 802.1Q协议标准,802协议标准定义的是数据链路层的标准,VLAN TAG通常位于Ethernet Header 与IP Header之间。

正是因为一个VLAN,对应一个网段,所以我们需要三层设备来路由不同VLAN(网段)的主机通信。

为何要一个VLAN一个网段?

为何不同的VLAN不可以使用相同的网段?那我要问这位同学,那你准备如何在这两个VLAN之间通信呢?使用路由器、三层交换机?呵呵,你压根就无法配置,不信可以试试看。那可以使用桥接吗?可以,但已经失去了划分VLAN的初衷了,初衷是啥?减小广播域的范围,现在又桥接起来了,到底是为了什么?

为了部署网络业务的灵活性!

推荐↓↓↓
程序员的那点事
上一篇:趣谈TCP协议的缺陷 下一篇:NAT:端口受限类型和对称型有什么区别?(续)