LAN 表示 Local Area Network ,本地局域网,通常使用 Hub 或者 Switch 来连接LAN 中的计算机。一般来说,两台计算机连入同一个 Hub 或者 Switch 时,他们就在同一个LAN中。
 
一个LAN 表示一个广播域。其含义是:LAN中的所有成员都会受到任意一个成员发出的广播包。
 
VLAN 表示 Virtual LAN。一个带有VLAN 功能的 Switch 能够将自己的端口划分出多个LAN。计算机发出的广播包可以被同一个LAN中的其他计算机收到,但位于其他LAN的计算机则无法收到。简单的说,VLAN将一个交换机分成了多个交换机,限制了广播的范围,在二层将计算机隔离到不同的VLAN中。
 
比方说,有两组机器,Group A 和 Group B ,我们想配置成Group A 中的机器可以互相访问,Group B 中的机器也可以互相访问,但是 Group A 和 Group B 中的机器无法互相访问。一种方法是使用两个交换机,A和B分别接到不同的交换机上。另一种方法是使用一个带VLAN功能的交换机,将 A 和 B的机器分别接到不同的VLAN中。
 
请注意,VLAN的隔离是二层上的隔离,A 和 B 无法互相访问指的是二层广播包(比如arp)无法跨域VLAN的边界。但在三成上(比如IP)是可以通过路由器让A 和 B 互通的。概念上一定要分清楚。
 
现在的交换机几乎都是支持VLAN的。通常交换机的端口有两种配置模式: Access 和 Trunk,如下图
 
 
Access 口
 
这些口被打上了VLAN的标签,表明该端口属于哪个VLAN。不同VLAN用VLAN ID 来区分,VLAN ID 的范围是 1- 4096 。Access 口都是直接与计算机网络相连的,这样从该网卡出来的数据包流入 Access口后就被打上了所在的VLAN 标签。Access 口只能属于一个VLAN。
 
Trunk 口
 
架设有两个交换机 A 和 B 。A上有 VLAN1(红)、VLAN2(黄)、VLAN3(蓝);B 上也有VLAN1、2、3,那如何让 AB 上相同的VLAN之间能够通信呢?
 
办法是将 A 和 B 连起来,而且连接 A 和 B 的端口要允许 VLAN1、2、3 这三个VLAN的数据通过。这样的端口就是 Trunk 口了。VLAN 1、2、3 的数据包在通过Trunk 口到达对方交换机的过程中始终带着自己的VLAN 标签。
 
了解了VLAN的概念之后,我们来看KVM虚拟化环境下是如何实现 VLAN 的,见下图
 
 
eth0 数宿主机上的物理网卡,有一个命名为 eth0.10的自身与之相连。
eth0.10 就是VLAN设备了,其VLAN ID 就是 VLAN10
eth0.10 古仔命名为 brvlan10 的Linux Bridge上,虚机VM1 的虚拟网卡vnet0也挂载brvlan10 上。
 
这样配置的效果就是:宿主机用软件实现了一个交换机(虚拟的),上面定义了一个VLAN10 。 eth0.10 、brvlan10 和 vnet0 都分别接到了 VLAN 10 的Access 口上。而eth0 就是一个 Trunk口。VM1 通过 vnet0 发出来的数据包会被打上 VLAN10 的标签。
 
eth0.10 的作用是:定义了VLAN10
 
brvlan10 的作用是:Bridge 上连接的其他设备自动加入到 VLAN10 中。
 
下面我们在增加一个 VLAN20 ,如图
 
 
这样虚拟交换机就有两个VLAN了,VM1 和 VM2分别属于 VLAN10 和 VLAN 20 。对于新创建的虚机,只需要将其虚拟网卡放入对应的 Bridge中,就能使用其所属的 VLAN。
 
VLAN 设备总是以母子关系出现,母子设备之间是一对多的关系。
 
一个母设备(eth0),可以有多个子设备(eth0.10  eth0.20 ....),而一个子设备只有一个母设备。

O012、Linux如何实现VLAN的更多相关文章

  1. Linux 如何实现 VLAN - 每天5分钟玩转 OpenStack(12)

    LAN 表示 Local Area Network,本地局域网,通常使用 Hub 和 Switch 来连接 LAN 中的计算机.一般来说,两台计算机连入同一个 Hub 或者 Switch 时,它们就在 ...

  2. Linux 如何实现 VLAN

    LAN 表示 Local Area Network,本地局域网,通常使用 Hub 和 Switch 来连接 LAN 中的计算机.一般来说,两台计算机连入同一个 Hub 或者 Switch 时,它们就在 ...

  3. Linux基础:VLAN篇

    一.二层基础知识 1.1 vlan介绍 本小节重点: vlan的含义 vlan的类型 交换机端口类型 vlan的不足 1.1.1 vlan的含义 局域网LAN的发展是VLAN产生的基础,因而先介绍一下 ...

  4. 动手实践 Linux VLAN - 每天5分钟玩转 OpenStack(13)

    本节我们来看如何在实验环境中实施和配置如下 VLAN 网络 配置 VLAN 编辑 /etc/network/interfaces,配置 eth0.10.brvlan10.eth0.20 和 brvla ...

  5. How to create vlan on Linux (with Cisco Catalyst Switch)

    In this article I want to share to you on how to create and configure vlan on Linux through Cisco Ca ...

  6. Linux实现的IEEE 802.q VLAN

    本文转载自: http://blog.chinaunix.net/uid-20786208-id-4291059.html Technorati 标签: Linux VLAN   ---------- ...

  7. vlan 以及 Linux实现的IEEE 802.1Q VLAN

    vlan 以及 Linux实现的IEEE 802.1Q VLAN Vlan的概念 VLAN技术介绍 VLANVLAN概述 以太网是一种基于CSMA/CD(Carrier Sense Multiple ...

  8. linux安装VLAN,系统怎么划分VLAN打标签上交换机

    前几天公司一台物理机需要连接公网,但是公网需要网卡打标签上去. 由于没有做过linux主机划分VLAN的操作,因此去查了一下,需要利用vconfig这个命令. 但是纠结的是,系统源中没有这个包.(很坑 ...

  9. 动手实践 Linux VLAN

    本节我们来看如何在实验环境中实施和配置如下 VLAN 网络 配置 VLAN 编辑 /etc/network/interfaces,配置 eth0.10.brvlan10.eth0.20 和 brvla ...

随机推荐

  1. python3笔记二十:时间操作time

    一:学习内容 time时间戳 time元组 time字符串 time时间转换图解 二:time 需要引入:import time 1.概念 UTC(世界协调时间):格林尼治天文时间,世界标准时间,在中 ...

  2. State Threads之编程注意事项

    原文: Programming Notes 1. 移植 State Thread 库可移植到大多数类 UNIX 平台上,但是该库有几个部分需要依赖于平台特性,以下列出了这些部分: 线程上下文初始化. ...

  3. 【转】python 输入一个时间,获取这个时间的下一秒

    原文:https://blog.csdn.net/l_d_56/article/details/84832198 输入一个时间,获取这个时间的下一秒 PS:下面代码使用于 python 2.7 tim ...

  4. BitmapRegionDecoder

    Android加载大图——BitmapRegionDecoder(转)   BitmapRegionDecoder,从API10就引入了.如下图:   NPONRY0T35GE$13{254X8Z1. ...

  5. ACCESS_ONCE的作用

    如果你看过 Linux 内核中的 RCU 的实现,你应该注意到了这个叫做 ACCESS_ONCE() 宏. ACCESS_ONCE的定义如下: #define __ACCESS_ONCE(x) ({ ...

  6. Linux内存简单汇总

    Linux内存主要用来存储系统和应用程序的指令,数据,缓存等 一,内存映射 1,内核给每个进程提供一个独立的虚拟机地址空间,并且这个地址空间是连续的 2,虚拟地址空间内部又被分为内核空间和用户空间 3 ...

  7. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_5 响应之使用forward和redirect进行页面跳转

    这个方式用的比较少. forward 转发或者重定向 返回forward关键字就表现现在想使用的就是请求转发 redirect

  8. IPTV系统的VOD与TV业务性能测试

    IPTV的未来发展正在成为业界的焦点话题.据市场研究公司MRG的统计,全球IPTV用户将由2004年的200万增加至2010年的2000万,预计全球IPTV市场2005-2010年的复合增长率为102 ...

  9. Azure sql database 监控存储过程的传参情况

    背景 实施开发的同事找到我,反馈说项目中使用Azure sql database 之后,无法使用Profiler来监控自己开发的存储过程的参数传参情况.确实profiler这些实例级别的工具在Azur ...

  10. python识别图片中的信息

    好好学习的第一步 一心一意的干好一件事儿,问自己 我做什么 我怎么做 做的结果是啥 例子1 问题 回答 我做什么: 识别图片上的信息 我怎么做: 百度+谷歌 结果是啥: 完成识别 1 安装PIL pi ...