网络性能是影响的效率的重要因素。

大的广播域分割方法,旨在提高网络性能。一个接口上,可是,路由器的LAN接口数量有限,它的主要功能是在网络间数据传输,而不是对终端设备提供网络接入。

訪问LAN的功能还是由接入层交换机来实现。

与三层交换机相类似,通过在二层交换机上创建VLAN来降低广播域。现代交换机就是通过VLAN来构造的,因此在某种程度上,学习交换机就是学习VLAN。

1、问题的产生:

上一节已经讲过广播域的概念:即广播帧传播覆盖的范围。例如以下图所看到的,当网络上的全部设备在广播域产生大量的广播以及多播帧,就会与数据流竞争带宽。这是由网络管理数据流组成,如:ARP,DHCP,STP等。例如以下图所看到的,如果PC 1产生ARP。Windows登录。DHCP等请求:

这些广播帧到达交换机1之后,遍历整个网络并到达全部节点直至路由器。

随着网络节点添加。开销的总数也在增长,直至影响交换机性能。

通过实施VLAN断开广播域将数据流隔离开来,可以解决这一问题。

2、什么是VLAN:

VLAN(virtual local area network)是一组与位置无关的逻辑port。VLAN就相当于一个独立的三层网络。VLAN的成员无需局限于同一交换机的顺序或偶数port。

下图显示了一个常规的部署。左边这张图节点连接到交换机,交换机连接到路由器。全部的节点都位于同一IP网络,由于他们都连接到路由器同一接口。

图中没有显示的是,缺省情况下,全部节点实际上都是同一VLAN。因此。这样的拓扑接口可看作是基于同一VLAN的,如上面右图所看到的。比如,Cisco设备默认VLAN是VLAN 1,也称为管理VLAN。默认配置下包括全部的port,体如今源地址表(source address table,SAT)中。该表用于交换机依照目的MAC地址将帧转发至合适的二层port。

引入VLAN之后。源地址表依照VLAN将port与MAC地址相相应起来。从而使得交换机可以做出很多其它高级转发决策。下图显示了show
mac address table和show vlan命令的显示输出。全部port(FA0/1 – FA0/24)都在VLAN 1。

还有一种经常使用的拓扑结构是两个交换机被一个路由器分离开来。例如以下图所看到的。这样的情况下,每台交换机各连接一组节点。每一个交换机上的各节点共享一个IP地址域,这里有两个网段:192.168.1.0和192.168.2.0。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb2JyeWFudA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

注意到两台交换机的VLAN同样。非本地网络数据流必须经过路由器转发。

路由器不会转发二层单播,多播以及广播帧。这样的拓扑逻辑在两个地方类似于多VLAN:同一VLAN下的节点共享一个通用地址域,非本地数据流(相应多VLAN情况不同VLAN的节点)需通过路由器转发。在一台交换机上加入一个VLAN。去掉还有一台交换机的话,结构例如以下所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb2JyeWFudA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" height="420" width="500" alt="">

每个VLAN相当于一个独立的三层IP网络,因此,192.168.1.0上的节点试图与192.168.2.0上的节点通信时。不同VLAN通信必须通过路由器。即使全部设备都连接到同一交换机。二层单播。多播和广播数据仅仅会在同一VLAN内转发及泛洪,因此VLAN 1产生的数据不会为VLAN 2节点所见。仅仅有交换机能看得到VLAN。节点和路由器都感觉不到VLAN的存在。加入了路由决策之后,能够利用3层的功能来实现很多其它的安全设定,很多其它流量以及负载均衡。

3、VLAN的作用:

安全性:每个分组的敏感数据须要与网络其它部分隔离开,降低保密信息遭到破坏的可能性。例如以下图所看到的,VLAN 10上的教职工主机全然与学生和訪客数据隔离。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb2JyeWFudA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

节约成本:无需昂贵的网络升级。而且带宽及上行链路利用率更加有效。

性能提高:将二层网络划分成多个逻辑工作组(广播域)降低网络间不必要的数据流并提升性能。

缩小广播域:降低一个广播域上的设备数量。

如上图所看到的:网络上有六台主机但有三个广播域:教职工,学生。訪客。

提升IT管理效率:网络需求相似的用户共享同一VLAN,从而网络管理更为简单。当加入一个新的交换机,在指定portVLAN时。全部策略和步骤已配置好。

简化项目和应用管理:VLAN将用户和网络设备汇集起来,以支持不同的业务或地理位置需求。

每个VLAN相应于一个IP网络,因此,部署VLAN的时候必须结合考虑网络地址层级的实现情况。

4、交换机间VLAN:

多交换机的情况下,VLAN是怎么工作的呢?下图所看到的的这样的情况,两个交换机VLAN同样,都是默认VLAN 1。即两个交换机之间的联系同在VLAN 1之内。路由器是全部节点的出口。

这时单播,多播和广播数据自由传输,全部节点属于同一IP地址。这时节点之间的通信不会有问题。由于交换机的SAT显示它们在同一VLAN。

而以下这样的连接方式就会有问题。

因为VLAN在连接port的主机之间创建了三层边界,它们将无法通信。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb2JyeWFudA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

细致看上图,这里有非常多问题。第一,全部主机都在同一IP网,虽然连接到不同的VLAN。第二,路由器在VLAN 1,因此与全部节点隔离。最后,两台交换机通过不同的VLAN互连。每一点都会造成通信阻碍,合在一起,网络各元素之间会全然无法通信。

交换机用满或同一管理单元物理上彼此分离的情形是非经常见的。

这样的情况下。VLAN须要通过trunk延伸至相邻交换机。

trunk可以连接交换机,在网络间传载VLAN信息。

例如以下图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb2JyeWFudA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

对之前的拓扑的改进包含:

* PC 1和PC 2分配到192.168.1.0网段以及VLAN 2。

* PC 3和PC 4分配到192.168.2.0网段以及VLAN 3。

* 路由器接口连接到VLAN 2和VLAN 3。

* 交换机间通过trunk线互连。

注意到trunkport出如今VLAN 1。他们没实用字母T来标识。

trunk在不论什么VLAN都没有成员。

如今VLAN跨越多交换机。同一VLAN下的节点能够物理上位于不论什么地方。

5、什么是Trunk:

Trunk是在两个网络设备之间承载多于一种VLAN的端到端的连接,将VLAN延伸至整个网络。没有VLAN Trunk,VLAN也不会很实用。VLAN Trunk同意VLAN数据流在交换机间传输,所以设备在同一VLAN,但连接到不同交换机。可以不通过路由器来进行通信。

一个VLAN trunk不属于某一特定VLAN,而是交换机和路由器间多个VLAN的通道。例如以下图所看到的,交换机S1和S2,以及S1和S3之间的链路,配置为传输从VLAN10,20,30以及90的数据流。

该网络没有VLAN trunk就无法工作。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb2JyeWFudA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

当安装好trunk线之后。帧在trunk线传输是就行使用trunk协议来改动以太网帧。

这也意味着交换机port有不止一种操作模式。

缺省情况下。全部port都称为接入port。当一个port用于交换机间互连传输VLAN信息时,这样的port模式改变为trunk,节点也路由器通常不知道VLAN的存在并使用标准以太网帧或“untagged”帧。trunk线可以使用“tagged”帧来标记VLAN或优先级。

因此,在trunkport,执行trunk协议来同意帧中包括trunk信息。

例如以下图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb2JyeWFudA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

PC 1在经过路由表处理后向PC 2发送数据流。这两个节点在同一VLAN但不同交换机。过程例如以下:

* 以太网帧离开PC 1到达Switch 1。

* Switch 1的SAT表明目的地是trunk线的还有一端。

* Switch 1使用trunk协议在以太网帧中加入VLAN id。

* 新帧离开Switch 1的trunkport被Switch 2接收。

* Switch 2读取trunk id并解析trunk协议。

* 源帧依照Switch 2的SAT转发至目的地(port4)。

VLAN tag例如以下图所看到的,包括类型域,优先级域,CFI(Canonical Format Indicator)指示MAC数据域。VLAN ID。

网络基础知识系列:阐述VLAN和Trunk的更多相关文章

  1. Java 网络编程(一) 网络基础知识

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951826.html 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机 ...

  2. C# 基础知识系列- 14 IO篇 文件的操作 (3)

    本篇继续前两篇内容,跟大家介绍一下Path类以及FileSystemInfo这个类的主要方法和属性. 上文提到,在<C# 基础知识系列-IO篇>之文件相关的内容完结之后,会带领大家开发一个 ...

  3. iOS网络基础知识

    iOS网络基础知识 1.一次HTTP请求的完整过程 (1)浏览器或应用发起Http请求,请求包含Http请求Http(请求),地址(url),协议(Http1.1)请求为头部 (2)web服务器接收到 ...

  4. 基础知识系列☞C#中→属性和字段的区别

    "好吧...准备写个'基础知识系列',算是记录下吧,时时看看,更加加深记忆···" 其实本来准备叫"面试系列"... 字段.属性.你先知道的哪个概念? ***我 ...

  5. 基础知识系列☞Abstract和Virtual→及相关知识

    转载地址→http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的 ...

  6. 网络基础知识、ASP.NET 核心知识(1)*

    为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...

  7. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  8. 学习javascript基础知识系列第三节 - ()()用法

    总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...

  9. Linux运维笔记(一)网络基础知识

    网络基础知识 一.基本概念 1.ARPANET & TCP/IP:以“软件”技术将网络硬件整合,使得不同的计算机或者数据可以通过这个软件达成数据沟通(TCP/IP技术也被称为Internet) ...

随机推荐

  1. bzoj2301(莫比乌斯反演+分块)

    传送门:2301: [HAOI2011]Problem b 题意:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y ...

  2. 开发指南专题4:JEECG高速微云开发平台--JEECG开发环境的搭建

    开发指南专题4:JEECG微云高速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...

  3. J2EE互联网产品打造

    CSDN的各位技术朋友们,你们好: 我司最近正在研发一套J2EE的互联网产品,前期功能设计例如以下: 1.权限管理 2.菜单管理 3.系统设置 4.页面管理[主要做静态化] 5.任务管理[数据同步以及 ...

  4. Struts2第一个工程helloStruts极其基本配置

    前面已经准备好了Struts-2.3.15,现在就可以直接搭建Struts2的工程了.前面http://blog.csdn.net/huangchnegdada/article/details/917 ...

  5. 【mysql】关于子查询的一个例子

    假设表my_tbl包含三个字段a,b,c:现在需要查询表中列a的每个不同值下的列b为最小值的记录量. 比如表记录为: a  b  c 1  3  'cd' 2  3  'nhd' 1  5  'bg' ...

  6. C++ 在字符串中插入子串+推断字符串是否由空格组成

    // Example3.cpp : 定义控制台应用程序的入口点. #include "StdAfx.h" #include <string> #include < ...

  7. Android基于cordova3.3插件开发

    最近的工作项目,需要使用cordova插件开发,详细Cordova角色,不会走,你可以去百度自身OK该,直接启动.详细过程,我有一个小Demo解说提前进行. 还只是接触,东西太理论基础,我也不太清楚, ...

  8. XML解析中的namespace初探

    原文:XML解析中的namespace初探 初学者在解析XML文件的时候最容易遇到的问题恐怕就是XML的namespace了,本文旨在对namespace做一个简要的介绍. namespace的意义无 ...

  9. Learning To Rank之LambdaMART前世今生

    1.       前言 我们知道排序在非常多应用场景中属于一个非常核心的模块.最直接的应用就是搜索引擎.当用户提交一个query.搜索引擎会召回非常多文档,然后依据文档与query以及用户的相关程度对 ...

  10. eclipse 重构(转)

    Eclipse中的重构类型        如果你看一下Eclipse的重构菜单,可以看到四部分.第一部分是撤销和重做.其他的三部分包含Eclipse提供的三种类型的重构. 第一种类型的重构改变代码的物 ...