一、vlan_filter 功能

内核3.8版本以后的 bridge 增加了一个新功能叫 VLAN filter

VLAN filter 主要有两个功能

可以给进出的数据打vlan tag ,剥离vlan tag,要看后面跟的参数

起到过滤功能,比如接口vid设置为100,则只让vlan100的数据通过,直接丢弃其他数据

废话不多说,直接上命令

$ ip link set br0 type bridge vlan_filtering 1

或者

$ echo 1 > /sys/class/net/brx/bridge/vlan_filtering

$ bridge vlan add dev veth01 vid 100 pvid untagged master

bridge vlan add -- 增加一个VLAN过滤条目

dev NAME -- 与此VLAN相关的接口

vid VID -- 标识VLAN的VLAN ID

tunnel_info TUNNEL_ID -- 映射到此vlan的隧道ID(没用过,不懂什么意思)

pvid -- 指定的VLAN在入口时将被视为PVID。任何未标记的帧都将分配给该VLAN

untagged -- 指定的VLAN在出口时将被视为未标记

self -- 在指定的物理设备上配置了VLAN。如果该设备是bridge,则必选

master -- 默认配置

bridge vlan delete

bridge vlan show

bridge vlan tunnelshow

有了 VLAN filter, Linux Bridge 就像一个真正的交换机,我们不再需要创建多个 VLAN 和网桥,直接在 Bridge 上打上/剥离 VLAN 标记。

二、SVI 接口 -- VLAN 间路由

一个交换机可能会有多个VLAN与其相连,则需要通过三层流量让这些VLAN间进行通信。而SVI(Switch virtual interface)即为路由间选择的虚拟VLAN接口。

废话不多说直接上命令

增加SVI接口

$ ip link add link br0 name br0.100 type vlan id 100

$ ip addr add 192.168.1.1/24 dev br0.100

连接VM1和VM2的接口增加VLAN过滤ID 100 和 200

$ ip link set br0 type bridge vlan_filtering 1

$ bridge vlan add dev veth1 vid 100 pvid untagged master

VM1和VM2的默认网关指向SVI接口

$ ip route rep default via 192.168.1.1

关键一步:br0也要增加VLAN过滤ID 100 和 200。当VM1第一次想要发数据到VM2,会先问网关的MAC地址,ARP请求到达veth1后会打上ID=100的VLAN TAG。然后数据会到达br0.100,br0.100会作ARP应答,数据到达br0后,若br0没有这增加这两个ID的VLAN过滤条目,则会将数据丢弃。所以 br0也要增加VLAN过滤ID 100 和 200(感觉解释得不太清楚,反正就要打,不打数据就会被丢 :sweat_smile:)

$ bridge vlan add dev br0 vid 100 pvid untagged self

其实要不要加这个 pvid untagged我也没太搞清楚……:sweat:评论区有大神指点就好了。

三、其他功能

基本操作,废话不多说。

四、参考文档

linux的bridge,Linux Bridge 详解相关推荐

  1. 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解

    [linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...

  2. linux ps(process status) 命令详解

    linux ps(process status) 命令详解 功能说明:报告程序状况. 语 法:ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名称> ...

  3. Linux操作系统上lsof命令详解

    Linux操作系统上lsof命令详解 2011-10-08 18:31:31 http://xjsunjie.blog.51cto.com/999372/682865 标签:Linux lsof命令 ...

  4. linux slocate(secure locate) 命令详解

    linux slocate(secure locate) 命令详解 功能说明:查找文件或目录. 语 法:slocate [-u][--help][--version][-d <目录>][查 ...

  5. (传送门)linux命令总结dd命令详解

    linux命令总结dd命令详解 https://www.cnblogs.com/ginvip/p/6370836.html 懒癌末期,不想花时间拷贝内容+排版,而且,原文排版就已经很棒了,我在这里只是 ...

  6. Linux上的free命令详解

    Linux上的free命令详解 转自: http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html 解释一下Linux上f ...

  7. linux下sort命令使用详解---linux将文本文件内容加以排序命令

    转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...

  8. linux PHP 编译安装参数详解

    linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  9. Linux下的awk用法详解

    Linux下的awk用法详解 一.awk介绍 二.awk的语法 三.awk常见用法 四.awk其他用法 五.awk语言特性 一.awk介绍 1.AWK 是一种处理文本文件的语言,是一个强大的文本分析工 ...

  10. linux send与recv函数详解

    linux send与recv函数详解 1 #include <sys/socket.h> 2 ssize_t recv(int sockfd, void *buff, size_t nb ...

最新文章

  1. 对称加密算法之DES介绍
  2. 初步了解mac下C源码的编译过程
  3. 苏宁的另类“存在感”
  4. vue-element-admin文档gitee地址
  5. 二分查找(5种方式实现二分查找),栈
  6. 计算机视觉之OpenCV教程 ---Mat类基础(一)
  7. 大众继续深耕SUV市场:5款新车型先于上海车展登场,ID. ROOMZZ成点睛之笔
  8. 虚拟化精华问答 | 如何为虚拟机分配任务?
  9. 都匀中专学计算机,都匀计算机专业中专学校学几年
  10. 页面中php传值后循环列表js获取点击的id
  11. 通信原理实践(一)——音频信号处理
  12. 云服务器微信faq,开发者FAQ
  13. 谷歌神经网络机器翻译NMT:人人可利用TensorFlow快速建立翻译模型
  14. Mysql数据库入门 (基础知识点 由来 各种指令 如何运用)
  15. input onfocus
  16. 瑞芯微rk2818(android系统2.1),从Android 2.1开始 瑞芯微RK2818要火
  17. latex表格内部自定义换行
  18. 学网络安全需要什么基础?
  19. 软件测试:保障软件质量的关键性关口——记中国工商银行软件开发中心北京研发_manok_新浪博客...
  20. 大数据精准营销(五)

热门文章

  1. 转载:为某燃气公司做的一部卡通角色广告动画
  2. 接口性能测试案例分析
  3. Unity 改变鼠标指针的方法
  4. 批量打印cad的dwg文件图纸的解决方案
  5. 一个二本本科生如何才能进入腾讯,阿里,百度这些大厂?
  6. c语言编黑白棋的思路,黑白棋的问题。。555。。头发都掉了。。。
  7. 腾讯云短信(个人记录)
  8. 计算年龄:DATEDIF函数
  9. 缠中说禅形态挖掘之九笔形态
  10. 游戏背景音乐的种类—动态音效