三下五除二 轻易搞定VLAN!

  VLAN技术是交换技术的重要组成部分。它将物理上直接相连的网络从逻辑上划分为多个子网。每个VLAN有相对应的一个广播域,不同VLAN之间需要通过第三层交换技术才能通信。

  三层交换技术通俗地讲,就是将路由与交换合二为一的技术。路由器在对第一个数据流进行路由后,将会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此映射表直接从二层进行交换而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。

  VLAN的配置涉及到VTP,VLAN中继的配置。

  VLAN中继(VLAN Trunk),在Cisco交换机初级配置之端口配置有提到,也称VLAN主干,只要是指交换机与交换机或者交换机与路由器相互连接端口上配置的中继模式(Trunk模式),中继模式允许属于不同VLAN的数据帧都可以通过中继链路传输数据。

  VTP(VLAN中继协议)。通过VTP可以保证整个网络VLAN信息的一致。首先要知道VTP有三种模式,服务模式、客户模式和透明模式。交换机初始状态是透明模式,它可以配置VLAN信息,可以收到VTP服务器发来的VLAN信息但并不运用到本交换机,而是直接转发到其他交换机,值得注意的是不会广播自己的VLAN信息。而服务器模式是可以统一配置VLAN信息,而且会自动将信息广播到网上其他交换机。客户模式就是不能配置VLAN信息,VLAN信息都是收到服务器广播的VLAN配置。

  划分VLAN的方法有三种:

1 静态VLAN:这种划分方法通常是网络管理人员手动为交换机每个端口静态配置VLAN。这种静态分配方法有它的优缺点,一旦配置好除非是网络管理人员重新设定,不然端口对应的VLAN是固定的,相对动态的配置方法来说,配置是比较麻烦,但是比较安全和容易维护。

2 动态VLAN:常用的局域网动态划分VLAN的方法有以下四种

l)基于MAC地址的VLAN
  基于MAC地址的VLAN,是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。

2)基于子网的VLAN
  基于子网的VLAN,是通过所连计算机的IP地址,来决定端口所属VLAN的。不像基于MAC地址的VLAN,即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP地址不变,就仍可以加入原先设定的VLAN

3)基于用户的VLAN
  基于用户的VLAN,是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。

4)基于网络协议划分
  基于网络协议划分,是VLAN按网络层协议来划分,可分为IP、IPX、DECnet、AppleTalk、Banyan等VLAN网络。这种按网络层协议来组成的VLAN,可使广播域跨越多个VLAN交换机。

  现在我们分别以Cisco 1900和2950型号的交换机为例子,看如何简单创建VLAN。我们为每个部门创建一个VLAN并把相应端口设置到相应VLAN里面。有关端口配置命令请参考端口配置篇(http://www.pconline.com.cn/network/skills/0603/763872.html)


Cisco 2950系列交换机

Cisco 1900
创建VLAN:
  switch>en
  switch#config t
  switch(config)#hostname 1900
  1900(config)#vlan 2 name AC  /*创建名为AC的VLAN2
1900(config)#vlan 3 name HR  /*创建名为HR的VLAN3
1900(config)#vlan 4 name MIS  /*创建名为MIS的VLAN4
1900(config)#exit
1900#

端口配置VLAN:
1900#config t
1900(config)#int e0/2
  1900(config-if)#vlan-membership static 2  /*设置端口属于VLAN2
  1900(config-if)#int e0/4
  1900(config-if)#vlan-membership static 3  /*设置端口属于VLAN3
  1900(config-if)#int e0/5
  1900(config-if)#vlan-membership static 4  /*设置端口属于VLAN4
  1900(config-if)#exit
  1900(config)#exit
1900#

Cisco 2950
创建VLAN:
 switch>en
switch#config t
switch(config)#hostname 2950
2950(config)#exit
2950#vlan database
  2950(vlan)#vlan 2 name AC    /*创建名为AC的VLAN2
  VLAN 2 added:
  Name: AC
  2950(vlan)#vlan 3 name HR   /*创建名为HR的VLAN3
  VLAN 3 added:
  Name: HR
  2950(vlan)#vlan 4 name MIS   /*创建名为MIS的VLAN4
  VLAN 4 added:
  Name: MIS
2950(vlan)#apply      /*创建完毕后必须用apply命令提交
  APPLY complete
  2950(vlan)#end
  2950#

端口配置VLAN:
 2950#config t
2950(config)#int f0/2
  2950(config-if)#switchport access vlan 2     /*设置端口属于VLAN2
  2950(config-if)#int f0/3
  2950(config-if)#switchport access vlan 3  /*设置端口属于VLAN3
  2950(config-if)#int f0/4
  2950(config-if)#switchport access vlan 4     /*设置端口属于VLAN4
  2950(config-if)#exit
  2950(config)#exit
  2950#

  这种静态配置只适合最简单的小型局域网,对于大型局域网建议应用三层交换机以及启用VTP协议统一进行配置。在后续的文章笔者会介绍如何配置VTP以及交换机另外一个重要协议STP(Spanning Tree Protocol)。

(0)

相关推荐

  • 三下五除二 轻易搞定VLAN!

    VLAN技术是交换技术的重要组成部分.它将物理上直接相连的网络从逻辑上划分为多个子网.每个VLAN有相对应的一个广播域,不同VLAN之间需要通过第三层交换技术才能通信. 三层交换技术通俗地讲,就是将路由与交换合二为一的技术.路由器在对第一个数据流进行路由后,将会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此映射表直接从二层进行交换而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率. VLAN的配置涉及到VTP,VLAN中继的配置. VL

  • PHP基于关联数组20行代码搞定约瑟夫问题示例

    本文实例讲述了PHP基于关联数组20行代码搞定约瑟夫问题.分享给大家供大家参考,具体如下: 记得前段时间一写做java开发的兄弟对我说他java60行做了个约瑟夫问题,挺不错的.调侃php应该写这个挺不行的. 于是 呵呵... 洋洋洒洒 20行,写完自己都有些不相信了.哈哈 让不了解php的见识哈php的快捷轻便之处. ps:其实个人挺反感用代码行数来衡量代码数量的,感觉常把代码行数挂嘴边的大多无奈装2.此文仅属闲余娱乐. 回顾一下约瑟夫问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最

  • 一个方法搞定iOS下拉放大及上推缩小

    下面这种效果在ios应用中很常见: 实现思路: 1、创建头部的视图和tableview,需要注意的是tableview要设置contentInset,contentInsent 的顶部要和头部视图的背景图的高度一样,否则会有空隙(或是有遮挡). myTableView.contentInset = UIEdgeInsetsMake(headRect.size.height-navHeight-navHeight, 0, 0, 0); 2、对头部视图的背景图片的尺寸进行处理,当然,你也可以直接找一

  • 轻松搞定iOS远程消息推送

    一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://www.jb51.net/article/93602.htm这篇博客中有详细的介绍,这里主要讨论远程推送的流程与配置过程. 二.远程推送机制的原理 1.从一张很火的图说起 搜索IOS远程推送,你总能看到一张如下的流程示意图,因为这张图确实很火,所以我也将它引用在此: 这张图示意的很清晰,大致意思是这样:你的应用服务端将消息发送到apple的APNS服务器,APNS服务器将消息推送到指定的Iphone,最后由

  • JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查

    正文 前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue也确实挺火,各种入门博文眼花缭乱,博主也不敢说写得多好,就当是个学习笔记,有兴趣的可以看看. 一.MVVM大比拼 关于MVVM,原来在介绍knockout.js的时候有过讲解,目前市面上比较火的MVVM框架也是一抓一大把,比如常见的有Knockout.js.Vue.js.AvalonJS.An

  • php一个文件搞定微信jssdk配置

    php一个文件搞定微信jssdk配置: 包括缓存,包括https通讯,获取微信access_token,签名什么的都有.但是防范性编程做得比较少,商业用的话,需要完善下代码. 使用姿势 ^ajax(Common.ServerUrl + "GetWX.php", { data: { Type: "config", url: location.href.split('#')[0] }, dataType: 'json', type: 'get', timeout: 50

  • 只需五句话搞定JavaScript作用域(经典)

    JavaScript的作用域一直以来是前端开发中比较难以理解的知识点,对于JavaScript的作用域主要记住几句话,走遍天下都不怕... 一."JavaScript中无块级作用域" 在Java或C#中存在块级作用域,即:大括号也是一个作用域. public static void main () { if(1==1){ String name = "seven"; } System.out.println(name); }// 报错 public static v

  • 一篇文章搞定JavaScript类型转换(面试常见)

    为啥要说这个东西?一道面试题就给我去说它的动机. 题如下: var bool = new Boolean(false); if (bool) { alert('true'); } else { alert('false'); } 运行结果是true!!! 其实啥类型转换啊,操作符优先级啊,这些东西都是最最基本的.犀牛书上有详细的介绍.但我很少去翻犀牛书的前5章... 比如说优先级那块儿,很多书都教育我们,"不用去背诵优先级顺序,不确定的话,加括号就行了."平常我们写代码时也确实这么做的

  • BootstrapTable+KnockoutJS相结合实现增删改查解决方案(三)两个Viewmodel搞定增删改查

    前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打算正式将ko用起来,于是乎对ko和bootstraptable做了一些封装,在此分享出来供园友们参考.封装思路参考博客园大神萧秦,如果园友们有更好的方法,欢迎讨论. KnockoutJS系列文章: BootstrapTable与KnockoutJS相结合实现增删改查功能[一] BootstrapTa

  • 3kb jQuery代码搞定各种树形选择的实现方法

    自制Jquery树形选择插件. 对付各种树形选择(省市,分类..)90行Jquery代码搞定,少说废话直接上插件代码.稍后介绍使用说明.是之前写的一个插件的精简版. 1.Jquery插件代码 (function (j) { j.fn.attrs = function (option) { var root = this, data = []; //默认参数 var def = { url: '/ajax/GetSort/', str: root.attr("str") || '0',

随机推荐