关注「开源Linux」,选择“设为星标”

回复「学习」,有我为您特别筛选的学习资料~

文章来源:朱仕耿个人博客

一位同事问了个关于二层和三层端口的概念及区分,以及关于VLANIF、PVID的问题。感觉不少人有类似的困惑。简单聊了几句,把一些交流的内容贴一下,供参考。

  • 二层接口,可以简单理解为只具备二层交换能力的接口,例如二层交换机的物理接口,或者三层交换机的物理接口(一般而言,这些接口缺省时为二层模式,某些款型具备切换为三层模式的能力)。

  • 二层接口不能直接配置IP地址,并且不直接终结广播帧。二层接口收到广播帧后,会将其从同属一个广播域(VLAN)的所有其他接口泛洪出去。

  • 三层接口维护IP地址与MAC地址。

  • 三层接口终结广播帧,三层接口在收到广播帧后,不会进行泛洪处理。

  • 二层接口在收到单播帧后,会在MAC表中查询该数据帧的目的MAC地址,然后依据表项指引进行转发,如果没有任何表项匹配,则进行泛洪。三层接口在收到单播帧后,首先判断其目的MAC地址是否为本地MAC地址,如果是,则将数据帧解封装,并解析出报文目的IP地址,然后进行路由查询及转发。因此二层接口与三层接口在数据处理行为上也存在明显差异。

  • 二层接口有几种类型(这里说的是以太网二层接口):access、trunk、hybrid。三层接口则没有上述类型。

  • 三层接口有物理形态的,也有逻辑形态的,典型的物理接口如路由器的三层物理端口;逻辑接口如VLANIF,以及以太网子接口,例如GE0/0/1.1。等等。VLANIF与其关联的VLAN的VLAN-ID对应(例如VLANIF10对应VLAN10,VLANIF10作为一个三层逻辑接口,可以与同属于VLAN10的设备直接进行二层通信),而以太网子接口,通常也会绑定相应的VLAN-ID,从而与相应的VLAN对接。这两种典型的三层接口均可以直接配置IP地址。

  • 在以太网二层交换网络里,VLAN是一个非常基础的东西。每个VLAN都是一个逻辑的广播域,每个VLAN都使用对应的ID进行标识,这是VLAN-ID。

  • 接口缺省VLAN标识,即PVID(Port Default VLAN ID),指的是二层接口上的缺省VLAN-ID(每个二层接口上有且只有一个VLAN-ID作为PVID),也就是说,PVID必定是某一个具体VLAN的VLAN-ID。PVID的作用是,当这个接口收到了流量,并且该流量不携带任何802.1Q Tag(VLAN-ID信息),该接口便认为这些流量属于PVID对应的VLAN。当然,PVID还会影响接口发送数据帧,这里不再赘述。缺省情况下,所有接口的PVID均为VLAN1。

    • 对于Access接口,缺省VLAN就是它允许通过的VLAN,修改接口允许通过的VLAN即可更改接口的缺省VLAN。

    • 对于Trunk接口和Hybrid接口,一个接口可以允许多个VLAN通过,但是只能有一个缺省VLAN,修改接口允许通过的VLAN不会更改接口的缺省VLAN,即变更接口的缺省VLAN(PVID)需要使用特定的命令。

  • 三层接口未必一定对应VLAN-ID,例如路由器的三层物理接口,就不维护关于VLAN-ID的相关信息,当然,该接口也无法识别携带VLAN-ID的数据帧,除非你基于这个物理接口创建了逻辑子接口,并通过该子接口与相应的VLAN对接。

  • 在三层交换机上,每个VLAN都有对应的VLANIF,VLANIF指的是VLAN对应的逻辑三层接口,这个三层接口在VLAN被创建后可以直接赋予IP地址,具备路由转发能力。一个VLAN对应一个VLANIF,VLAN与VLANIF的标识相同。


关注「开源Linux」加星标,提升IT技能

一文看懂二层接口、三层接口、PVID及VLANIF的更多相关文章

  1. 一文读懂HDMI和VGA接口针脚定义

    一文读懂HDMI和VGA接口针脚定义 摘自:http://www.elecfans.com/yuanqijian/jiekou/20180423666604.html   HDMI概述 HDMI是高清 ...

  2. 一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系

    我们知道,不同肤色的人外貌差别很大,而双胞胎的辨识很难.有意思的是Web服务器/Web容器/Web应用程序服务器/反向代理有点像四胞胎,在网络上经常一起出现.本文将带读者对这四个相似概念如何区分. 1 ...

  3. [转帖]一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系

    一文看懂web服务器.应用服务器.web容器.反向代理服务器区别与联系 https://www.cnblogs.com/vipyoumay/p/7455431.html 我们知道,不同肤色的人外貌差别 ...

  4. 【转帖】一文看懂docker容器技术架构及其中的各个模块

    一文看懂docker容器技术架构及其中的各个模块 原创 波波说运维 2019-09-29 00:01:00 https://www.toutiao.com/a6740234030798602763/ ...

  5. 一文看懂Java序列化

    一文看懂Java序列化 简介 Java实现 Serializable 最基本情况 类的成员为引用 同一对象多次序列化 子父类引用序列化 可自定义的可序列化 Externalizable:强制自定义序列 ...

  6. 一文看懂https如何保证数据传输的安全性的【转载、收藏】

    一文看懂https如何保证数据传输的安全性的   一文看懂https如何保证数据传输的安全性的 大家都知道,在客户端与服务器数据传输的过程中,http协议的传输是不安全的,也就是一般情况下http是明 ...

  7. [转帖] 一文看懂:"边缘计算"究竟是什么?为何潜力无限?

    一文看懂:"边缘计算"究竟是什么?为何潜力无限? 转载cnbeta   云计算 雾计算 边缘计算...   知名创投调研机构CB Insights撰文详述了边缘计算的发展和应用前景 ...

  8. 一文看懂Stacking!(含Python代码)

    一文看懂Stacking!(含Python代码) https://mp.weixin.qq.com/s/faQNTGgBZdZyyZscdhjwUQ

  9. Nature 为引,一文看懂个体化肿瘤疫苗前世今生

    进入2017年,当红辣子鸡PD-1疗法,一路横扫多个适应症.而CAR-T治疗的“小车”在获得FDA专委会推荐后也已经走上高速路,成为免疫治疗又一里程碑事件.PD-1.CAR-T之后,下一个免疫治疗产品 ...

随机推荐

  1. URL转义特定字符

    import java.net.URLDecoder; import java.net.URLEncoder; import java.nio.charset.Charset; // 实例代码 Str ...

  2. 面试问题之C++语言:多态

    什么是多态? 概念:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性.简单的说,就是用基类的引用指向子类的对象. 为什么要用多态呢? 原因:封装可以隐藏实现细节,使得代码模 ...

  3. springboot使用自定义注解和反射实现一个简单的支付

    优点: 未使用if else,就算以后增加支付类型,也不用改动之前代码 只需要新写一个支付类,给添加自定义注解@Pay 首先: 定义自定义注解 Pay 定义 CMBPay ICBCPay 两种支付 根 ...

  4. 一个注解@Recover搞定丑陋的循环重试代码

    使用背景 在实际项目中其中一部分逻辑可能会因为调用了外部服务或者等待锁等情况下出现不可预料的异常,在这个时候我们可能需要对调用这部分逻辑进行重试,代码里面主要就是使用for循环写一大坨重试的逻辑,各种 ...

  5. Creating a File Mapping Object

    创建一个文件映射对象 映射一个文件的第一步是通过调用CreateFile函数来打开一个文件.为了确保其他的进程不能对文件已经被映射的那一部分进行写操作,你应该以唯一访问(exclusive acces ...

  6. Asp.Net Core之Identity应用(上篇)

    一.前言 在前面的篇章介绍中,简单介绍了IdentityServer4持久化存储机制相关配置和操作数据,实现了数据迁移,但是未对用户实现持久化操作说明.在总结中我们也提到了, 因为IdentitySe ...

  7. jQ模拟打字效果插件typetype

    typetype是一个jquery插件,可以模拟人类的打字效果. 效果图如下所示: 查看演示 http://weber.pub/demo/160828/jQuery.Type/jQuery.type. ...

  8. 解决Mui中popover 顶部弹出菜单弹出位置不准确以及无法收回的问题

    前言 最近公司的项目转向使用Hbuilder开发移动端项目,其中想要通过在顶部标题栏加入弹出菜单的方式,来定位长列表的位置,如图所示. 问题 Mui的功能貌似还不是很完善,在使用这个弹出菜单的时候,发 ...

  9. 《深入理解ES6》笔记—— Promise与异步编程(11)

    为什么要异步编程 我们在写前端代码时,经常会对dom做事件处理操作,比如点击.激活焦点.失去焦点等:再比如我们用ajax请求数据,使用回调函数获取返回值.这些都属于异步编程. 也许你已经大概知道Jav ...

  10. SQL语句总结---表操作

    https://blog.csdn.net/hallomrzhang/article/details/85010014 表的操作 1.查看表结构 desc 表名 2.创建表结构的语法 create t ...