VLAN(Virtual Local Area Network)

虚拟局域网(VLAN,802.1Q)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样。VLAN是一种比较新的技术,工作在OSI(Open System Interconnect,开放式系统互联)参考模型的第2层和第3层,一个VLAN就是一个广播域。VLAN通常在交换机或路由器上实现,在以太网帧中增加VLAN标签来给以太网帧分类,具有相同VLAN标签的以太网帧在同一个广播域中传送。802.1Q定义的32位标签位于分组包头的目的地址与源地址之后,包括3个优先位用于标识802.1q交换、1个识别位用于可选的令牌环网的外部、12个虚拟局域网ID位用于标识虚拟局域网的成员资格、16位用于修改“Ether Type"帧。VLAN内部成员间的通信可通过第3层的路由器来完成的,用户可以自由地在网络中移动办公,不论他在何处接入交换网络,他都可以与VLAN内其他用户自如通讯。在计算机网络中,一个网络可以被划分为多个不同的广播域,一个广播域对应了一个特定的用户组。VLAN具有以下优点:

  • 网络设备的移动、添加和修改的管理开销减少。
  • 可以控制广播活动。
  • 可提高网络的安全性。

在共享网络中,一个物理的网段就是一个广播域;在交换网络中,广播域可以是由一组任意选定的MAC地址组成的虚拟网段,使得网络中工作组的划分可以突破共享网络中的地理位置限制,而完全根据管理功能来划分。

VLAN-VPN 隧道技术通过在运营商接入端为用户的私网报文封装外层VLAN Tag,使报文携带两层VLAN Tag 穿越公网;在公网中,报文只根据外层VLAN Tag(即公网VLAN Tag)进行传输,用户的私网VLAN Tag 则当作报文中的数据部分来进行传输。

物理网卡、子网卡(虚拟网卡)、VLAN网卡之间的区别

物理网卡:指实体网络接口设备,如系统中的eth0、eth1等就属于这一类。

子网卡(虚拟网卡、逻辑网卡、物理网卡别名):依赖于一块物理网卡而存在(不是实际存在的单体网络接口设备),拥有独立的IP地址和配置文件,可以作为网络接口在系统中出现,如系统中eth0:1就是物理网卡eth0的一张子网卡;但当所依赖的物理网卡不启用时(Down状态),子网卡也不能工作。为应用配置单独的(虚拟)IP地址,以达到主机与应用的分离,在应用切换与迁移过程中可以做到动态切换,此时创建一张虚拟网卡便可轻松实现该目的。

Ubuntu Kylin 16.04 LTS是以eno1来命名第一块物理网卡,别的Linux版本可能会以eth0来命名第一块物理网卡。
下边是创建物理网卡eno1的第一块逻辑网卡eno1:0的三种方法:

1)sudo ifconfig -v eno1:0 172.17.0.15/16

2)在/etc/network/interfaces尾部添加下列行:
     allow-hotplug eno1:0 #可通过ifup eno1:0手动启动,ifdown eno1:0手动关闭
     #auto eno1:0 #auto可以开机自启动
     iface eno1:0 inet static
     address 172.17.0.15/16
     # netmask 255.255.0.0
     # network 172.17.0.0
     # broadcast 172.17.255.255

3)sudo ip addr add 172.17.0.15/16 brd + dev eno1 label eno1:0
   #可参考 http://www.policyrouting.org/iproute2.doc.html#ss9.1.1
   #scope global --- the address is globally valid.
   #scope site --- (IPv6 only) address is site local, valid only inside this site.
   #scope link --- the address is link local, valid only on this device.
   #scope host --- the address is valid only inside this host.
If your kernel supports alias interfaces, you can specify them with eth0:0 for the 
first alias of eth0. You can use them to assign a second address. To delete an alias
interface use ifconfig eth0:0 down.

VLAN网卡:它也不是实际存在的网络接口设备,也可以作为网络接口在系统中出现,但没有自己的配置文件,如系统中的eth0.1是与物理网卡eth0关联的VLAN网卡。如果将一个物理网卡通过vconfig命令添加到多个VLAN当中去的话,就会有多个VLAN虚拟网卡出现,所产生的相关VLAN信息都保存在/proc/net/vlan/config这个临时文件中的,而没有独立的配置文件。

计算机基础理论知识梳理篇(三):VLAN与VLAN网卡相关概念的更多相关文章

  1. 计算机基础理论知识梳理篇(一):数据类型长度、内存页、IPC

    字长与数据类型长度 字长指CPU在同一时间能够处理二进制数据的位数,是由其外接数据总线(地址总线决定了CPU的寻址空间,如16位微型机的地址总线为20位,其可寻址空间为220 = 1MB)的条数决定的 ...

  2. Oracle知识梳理(三)操作篇:SQL基础操作汇总

    Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:       CREATE TABLE  table_name ( col_ ...

  3. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  4. Go基础知识梳理(三)

    Go基础知识梳理(三) 结构 type Person struct { name string sex int } func main() { //推荐写法 person := Person{ nam ...

  5. JQuery基础知识梳理篇

    这周没事,优化线上项目,因为前端都在赶项目,我又若菜.于是前端数据展示也要自己来.看javascript看到吐,决定梳理一下Jquery基础知识.敲黑板) 闲扯结束,进入正题. 选择器 介绍 jque ...

  6. 【SQL】- 基础知识梳理(三) - SQL连接查询

    一.引言 有时为了得到一张报表的完整数据,需要从两个或更多的表中获取结果,这时就用到了"连接查询". 二.连接查询 连接查询的定义: 数据库中的表通过键将彼此联系起来,从而获取这些 ...

  7. c#基础知识梳理(三)

    上期回顾 - https://www.cnblogs.com/liu-jinxin/p/10824638.html 一.方法 一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块.每一个 C ...

  8. Salesforce LWC学习(二十六) 简单知识总结篇三

    首先本篇感谢长源edward老哥的大力帮助. 背景:我们在前端开发的时候,经常会用到输入框,并且对这个输入框设置 required或者其他的验证,当不满足条件时使用自定义的UI或者使用标准的 inpu ...

  9. android(eclipse)广播机制知识梳理(三)

    1:分类:   标准广播:没有先后顺序,无法被截断   有序广播:又先后顺序,可以截断 2:接收广播:首先进行注册,注册的方式有静态注册和动态注册.也就是在代码中注册和在AndroidManifest ...

随机推荐

  1. 探索版 webstorm快捷方式

    ctrl + alt + s            打开配置面板 Settings   国内的资料比较少,大概很多人已经放弃了原生快捷方式,不过我打算通关原生快捷方式.   在配置面板中  IDE S ...

  2. JPA学习笔记(8)——映射双向一对多关联关系

    双向一对多关联关系 前面的博客讲的都是单向的,而本问讲的是双向的(双向一对多 = 双向多对一) 什么是双向? 我们来对照一下单向和双向 单向/双向 User实体类中是否有List< Order& ...

  3. 【回文】leetcode - Shortest Palindrome

    题目: Shortest Palindrome Given a string S, you are allowed to convert it to a palindrome by adding ch ...

  4. Windows 下Oracle database 9i 64bit 仅仅有 Windows Itanium 64bit

    Windows 下Oracle database 9i 64bit 仅仅有 Windows Itanium 64bit,没有Windows x86-64bit的 详细请见例如以下的certificat ...

  5. Linux基础:xargs命令

    简介 xargs可以将输入内容(通常通过命令行管道传递),转成后续命令的参数,通常用途有: 命令组合:尤其是一些命令不支持管道输入,比如ls. 避免参数过长:xargs可以通过-nx来将参数分组,避免 ...

  6. 浅谈MySQL中的查询优化

    mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等.这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整 ...

  7. ServerSuperIO Designer IDE 发布,打造物联网通讯大脑,随心而联。附:C#驱动源代码。

    1.概况 注:ServerSuperIO Designer IDE 同行业网友随便使用,不涉及到软件使用限制的问题. 从2015年到现在的将近两年的时间,一直在开发.完善ServerSuperIO(S ...

  8. Django的Models

    Django的数据库配置: 1    django默认支持sqlite,mysql, oracle,postgresql数据库 2.   在django的项目中会默认使用sqlite数据库,如果要使用 ...

  9. 盘点selenium phantomJS使用的坑

    参考:http://www.jianshu.com/p/9d408e21dc3a   http://www.cnblogs.com/luxiaojun/p/6144748.html 豆瓣应该是ip被封 ...

  10. arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++: Command not found 解决方法

    执行下列命令时: ndk-build -j16 出现如下错误: Android NDK: WARNING: Ignoring unknown import directory: jni/../../. ...