VLAN和子网之间的区别与联系
通常来说,子网和VLAN的相似之处在于它们都处理网络的一部分的分段或分区。但是,VLAN是数据链路层(OSI L2)的构造,而子网是网络层(OSI L3)的IP构造,它们解决网络上的不同问题。尽管在VLAN和子网之间创建一对一关系是一种常见的做法,但是它们是独立的第2层和第3层构造,这在设计网络时增加了灵活性。

子网(IPv4实现)
IP地址可以在逻辑上划分(也称为子网划分)为两个部分:网络号(路由前缀)和主机标识符。属于子网的网络设备在其IP地址中共享公共网络前缀。网络前缀是通过在IP地址和子网掩码(通常为255.255.255.0)之间应用按位与运算来确定的。使用示例地址192.168.5.130,网络前缀(子网)为192.168.5.0,而主机标识符为0.0.0.130。
当源地址和目的地址的网络 前缀不同时,流量将通过路由器在子网之间交换或路由(许多现代交换机还具有路由器功能)。路由器构成子网之间的逻辑和物理边界。
子网划分网络的好处因每个部署方案而异。在大型组织或使用无类域间路由(CIDR)的组织中,必须有效地分配地址空间。当子网由不同的内部组管理时,它还可以提高路由效率,或在网络管理中具有优势。子网可以按层次结构进行逻辑排列,将组织的网络地址空间划分为树状路由结构。
VLAN
VLAN具有与物理局域网相同的属性,但是即使设备未连接在同一网络交换机上,它也允许将设备更容易地组合在一起。通过VLAN组分隔的端口可以以类似于将设备连接到它们自己的单独交换机的 方式分隔流量。VLAN可以以相对较低的成本提供非常高的安全性和极大的灵活性。
网络架构师使用VLAN对流量进行分段,以解决可伸缩性,安全性和网络管理等问题。交换机不能(或至少不应该)在VLAN之间桥接IP流量,因为这样做会破坏VLAN广播域的完整性,因此,如果一个VLAN以某种方式被破坏,则不会妨碍网络的其余部分。服务质量方案可以针对实时(VoIP)或低延迟要求(SAN)优化VLAN上的流量。
如果没有VLAN,则交换机会认为该交换机上的所有设备都在同一广播域中,因此VLAN实质上可以在单个物理基础架构上创建多个第3层网络。例如,如果将DHCP服务器插入交换机,它将为该交换机上配置为DHCP的任何主机提供服务。通过使用VLAN,可以轻松地拆分网络,因此某些主机将不使用该DHCP服务器,并且将获取本地链接地址,或从其他DHCP服务器获取地址。
其他想法
您可以拥有一个物理网络并通过简单地分配不同的子网(例如192.168.0.0和192.168.1.0)来配置两个或多个逻辑网络。但是,问题在于两个子网都通过同一交换机传输数据。所有其他主机(无论它们位于哪个子网)都可以看到通过交换机的流量。结果是安全性很低,并且由于所有流量都使用相同的主干,因此可用带宽更少。
或者,您可以为每个逻辑网络创建一个VLAN。每个VLAN(或逻辑网络)的带宽可用性不再共享,并且由于连接每个VLAN网络的交换机将不允许流量在VLAN之间交叉,因此提高了安全性。
通常,VLAN是许多应用程序(包括音频)的较好选择,但有时子网划分是有意义的。主要原因是:
- 缓解性能问题,因为LAN不能无限扩展。广播过多或帧泛滥到未知的目的地将限制其规模。这两种情况中的任何一种都可能由于使以太网LAN中的单个广播域太大而引起。但是,带宽耗尽(除非它是由广播数据包或帧泛滥引起的)通常无法通过VLAN和子网划分来解决,因为它们不会增加可用带宽量。通常由于缺乏物理连接(服务器上的NIC太少,组中的端口太少,需要提高端口速度等原因而发生这种情况)。第一步是监视网络流量并确定故障点。一旦了解了流量如何在LAN上移动,就可以出于性能原因开始考虑子网划分。
- 限制/控制在第3层或更高层的主机之间移动的流量的需求。如果要控制主机之间的IP(或TCP或UDP等)流量,而不是攻击第2层的问题,则可以考虑子网划分子网,并在子网之间添加具有ACL的防火墙/路由器。
VLAN和子网之间的区别与联系的更多相关文章
- select、poll、epoll之间的区别总结
select.poll.epoll之间的区别总结 05/05. 2014 select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪 ...
- 你真的会玩SQL吗?EXISTS和IN之间的区别
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- 2、实现不同子网之间的信息交流(互相可以PING通)
一.环境: 二个不同的虚拟子网 VMnet1: 192.168.155.0/24 VMnet8: 192.168.170.0/24 编辑 --> 虚拟网络编辑器 (查看自己的子网,相应修改就行) ...
- [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别
要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
@property (nonatomic, assign) NSString *title; 什么是assign,copy,retain之间的区别? assign: 简单赋值,不更改索引计数(Refe ...
- javascrip中parentNode和offsetParent之间的区别
首先是 parentNode 属性,这个属性好理解,就是在 DOM 层次结构定义的上下级关系,如果元素A包含元素B,那么元素B就可以通过 parentElement 属性来获取元素A. 要明白 off ...
- 面试问题5:const 与 define 宏定义之间的区别
问题描述:const 与 define 宏定义之间的区别 (1) 编译器处理方式不同 define宏是在预处理阶段展开: const常量是编译运行阶段使用: (2) 类型和安全检查不同 ...
- 关于背景图相对父容器垂直居中问题 —— vertical-align 和 line-height 之间的区别
html css <div class="register-wrapper"> <div class="register"> &l ...
- 转:WCF、WebAPI、WCFREST、WebService之间的区别
WCF.WebAPI.WCFREST.WebService之间的区别 注明:转载 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API ...
随机推荐
- linux下的特殊模式
单用户模式 ubuntu 16.04 单用户操作 1.重启操作系统,BIOS引导过后一直按住shift,出现GUN Grub菜单: 2.选择Advanced options for Ubuntu选项回 ...
- Git详解之基础使用
前言 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停 ...
- Linux守护进程之systemd
介绍 历史上,Linux 的启动一直采用init进程:下面的命令用来启动服务. $ sudo /etc/init.d/apache2 start # 或者 $ service apache2 star ...
- jsp路径
访问静态资源的时候${pageContext.request.Context}没有作用,在浏览器F12调试的时候发现,路径并没有被解释为项目的根路径,而是没有解释出来,还是${pageContext. ...
- Mybatis基础(二)
Mybatis连接池 Mybatis连接池提供了三种配置方式,配置的位置在SqlMapConfig.xml的dataSource标签中,其type属性就是配置连接池的种类.type的可取值 1.POO ...
- HTTPS 详解一:附带最精美详尽的 HTTPS 原理图
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 前言 作为一个有追求的程序员,了解行业发展趋势和扩充自己的计算机知识储备都是很有 ...
- 1759: 学生信息插入(武汉科技大学结构体oj)(已AC)
#include<stdio.h>struct student { long no; char name[9]; int score;} t;void input(struct stude ...
- 15、WAN
WAN wide area network 覆盖较大地理范围的数据通信网络使用网络提供商和电信公司所提供的传输设施传输数据 通过不同WAN协议,将LAN延伸到远程站点的其他LAN广域网接入处于OSI七 ...
- QtGui实现计算圆的面积
dialog.h #ifndef DIALOG_H #define DIALOG_H #include <QtWidgets/QDialog> #include <QtWidgets ...
- pycham设置头文件内容
pycharm软件 设置头文件方法 File->settings->Editor->File and Code Templates->Python Script #!/usr ...