个人理解:

1、交换机的核心在于Mac地址学习,使其能在全双工/半双工下进行转发工作。

2、对于专业的交换机来说,使用的是专业的网络芯片并自己实现里面的协议,比如说华为的,为什么能卖那么贵,贵在于网络芯片和系统,设备的零件其实没几个钱。

3、专业的交换机走的是芯片级转发,比用Linux实现的CPU转发是不同级别的速度。对于芯片级的通讯采用的是各家硬件厂商提供的标准,与Linux这种不一样。

4、如果要看下这两种区别的对比,可以购买一个Mikrotik RouterOS设备,然后在里面设置转发模式(CPU或硬件)来对比两者之间的区别。

实现Linux交换机的过程:

1、Linux时间简单的交换机只为了简单的了解和使用,对于大型网络环境来说不建议使用,玩一下可以了。

2、要实现比较专业的交换机,先精简内核,只保留网络驱动,实现市面上流行的协议,实现一个Web和命令行管理等等,有时还需要自行研制工控主板来兼容Linux。

下面是实现简单的交换机的过程:

1、使用brctl工具实现网桥,也就是桥接,把各网卡桥接在一起,桥接已经提供了Mac地址学习功能,所以直接就可以实现傻瓜交换机的功能。

2、使用vconfig实现vlan的划分(我没实践过这个)

下面是常用的命令:

创建 Bridge:brctl addbr [BRIDGE NAME]
删除 Bridge:brctl delbr [BRIDGE NAME]
attach 设备到 Bridge:brctl addif [BRIDGE NAME] [DEVICE NAME]
从 Bridge detach 设备:brctl delif [BRIDGE NAME] [DEVICE NAME]
查询 Bridge 情况:brctl show
创建 VLAN 设备:vconfig add [PARENT DEVICE NAME] [VLAN ID]
删除 VLAN 设备:vconfig rem [VLAN DEVICE NAME]
设置 VLAN 设备 flag:vconfig set_flag [VLAN DEVICE NAME] [FLAG] [VALUE]
设置 VLAN 设备 qos:
vconfig set_egress_map [VLAN DEVICE NAME] [SKB_PRIORITY] [VLAN_QOS] vconfig set_ingress_map [VLAN DEVICE NAME] [SKB_PRIORITY] [VLAN_QOS] 查询 VLAN 设备情况:cat /proc/net/vlan/[VLAN DEVICE NAME]
创建 VETH 设备:ip link add link [DEVICE NAME] type veth
创建 TAP 设备:tunctl -p [TAP DEVICE NAME]
删除 TAP 设备:tunctl -d [TAP DEVICE NAME]
查询系统里所有二层设备,包括 VETH/TAP 设备:ip link show
删除普通二层设备:ip link delete [DEVICE NAME] type [TYPE]
查看 MAC 学习表:brctl showmacs <bridge-name>

对于要实现集线器:

1、在上面的网桥基础上去除Mac地址学习即可

# 比如br1的网桥
brctl setageing br1 0
brctl setfd br1 0

参考:

https://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/index.html

https://www.thegeekstuff.com/2017/06/brctl-bridge/

Linux/CentOS实现交换机-简单的交换机实现的更多相关文章

  1. esxi 配置 交换主机 虚拟机交换机 linux centos 配置双网卡

    最近手里的项目网络环境是 192.168.199.1 直接到防火墙 192.168.1.x 是内网网段 走到 防火墙下的一个三层交换机 现在需要将内网的三台服务器端口映射出去,需要到防火墙去做映射,防 ...

  2. 阿里云服务器Linux CentOS安装配置(七)域名解析

    阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...

  3. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

  4. 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat

    阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat  执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...

  5. 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器

    阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 我在阿里云购买的服务器配置 CPU:1核 内存:2G 系统盘:40G 公共镜像:CentOS 6.5 64位 公网带宽:1Mbps ...

  6. Linux(centos)系统各个目录的作用详解

    Linux(centos)系统各个目录的作用详解 文件系统的类型 LINUX有四种基本文件系统类型:普通文件.目录文件.连接文件和特殊文件,可用file命令来识别. 普通文件:如文本文件.C语言元代码 ...

  7. Linux centos关机与重启命令详解与实战

    Linux centos重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 10 过10分钟自动重启(root用户使用) 4.s ...

  8. linux centos安装编译phantomjs 2.0的方法

    phantomjs 2.0最新版的官方不提供编译好的文件下载,只能自己编译,有教程但是过于简单,特别是服务器上要安装N多的支持.折腾到现在终于装好了并且能正常运行了,截图mark一下: linux c ...

  9. linux centos cli all proxy

    linux centos 下代理http.https.ftp.all_proxy 全局使用代理: export http_proxy=http://host:port/ export https_pr ...

随机推荐

  1. Linux中Nginx安装与配置详解

    转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...

  2. HDU 1863 畅通工程 最下生成树问题

    题目描述:给出图,要你求是否存在最小生成树,如果存在,要求输出最小权值和,如果不存在,输出? 解题报告:又是一个最裸的克鲁斯卡尔,并且要判断是否存在最小生成树的问题.废话不多说,给个短代码: #inc ...

  3. 跳过复制错误——slave_skip_errors、slave_exec_mode

    这一篇写写复制错误处理相关的另两个参数slave_skip_errors.slave_exec_mode,基本环境参考<复制错误处理——sql_slave_skip_counter> 一. ...

  4. Aho-Corasick 多模式匹配算法、AC自动机详解

    Aho-Corasick算法是多模式匹配中的经典算法,目前在实际应用中较多. Aho-Corasick算法对应的数据结构是Aho-Corasick自动机,简称AC自动机. 搞编程的一般都应该知道自动机 ...

  5. mitmproxy实践

    首先附上github地址:https://github.com/mitmproxy/mitmprox,上面的内容永远是最新的 作为一名测试穿戴设备相关app的工程师,与数据打交道是常事,那么,如果想要 ...

  6. Tesseract-OCR 3.05 多过语言文字识别(运行程序+中英日韩语言包)

    最新版本 静态编译 tesseract 3.05.00dev leptonica-1.73 libgif 5.1.3 : libjpeg 8c : libpng 1.6.16 : libtiff 3. ...

  7. Oracle学习笔记:with as子查询用法

    With as短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句用到.该语句会在真正的查询之前预先构造一个临时表,之后可以多次使用做 ...

  8. Java编程的逻辑 (72) - 显式条件

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  9. #Plugin 中国省市选择插件

    中国省市选择插件  ChineseCities 1.原生JS,不依赖jquery,zepto 2.前端学习交流群:814798690 源码查看 点击下载 https://github.com/chao ...

  10. net mvc cms

    .NET作品集:linux下的.net mvc cms   cms程序架构 本程序是主要是用于企业网站开发的,也可以做博客程序,程序是从之前上一篇的.net 博客程序改进过来的,主要技术由webfor ...