版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://chenzhuoyou.blogbus.com/logs/35484267.html

网络安全平台厂商往往需要用到一项比较特殊的技术,那就是Bypass,那么到底什么是Bypass呢,Bypass设备又是如何来实现的?下面我就对Bypass技术做一下简单的介绍和说明。
  一、 什么是Bypass。
  大家知道,网络安全设备一般都是应用在两个或更多的网络之间,比如内网和外网之间,网络安全设备内的应用程序会对通过他的网络封包来进行分析,以判断是否有威胁存在,处理完后再按照一定的路由规则将封包转发出去,而如果这台网络安全设备出现了故障,比如断电或死机后,那连接这台设备上所以网段也就彼此失去联系了,这个时候如果要求各个网络彼此还需要处于连通状态,那么就必须Bypass出面了。
  Bypas顾名思义,就是旁路功能,也就是说可以通过特定的触发状态(断电或死机)让两个网络不通过网络安全设备的系统,而直接物理上导通。所以有了 Bypass后,当网络安全设备故障以后,还可以让连接在这台设备上的网络相互导通,当然这个时候这台网络设备也就不会再对网络中的封包做处理了。
  下面一个图示说明了Bypass的方式。左边是正常状态下,两个网络的封包都经过应用软件处理后再传播。右边是设备处于Bypass后,设备的应用程序已经不再对网络封包处理了。

二、 Bypass分类即应用方式:
  Bypass一般按照控制方式或者称为触发方式来分,可以分为以下几个方式
  1、 通过电源触发。这种方式下,一般是在设备没有通电的情况下,Bypass功能打开,如果设备一旦通电后,Bypass立即调整为关闭状态。
  2、 由GPIO来控制。在进入OS后,可以通过GPIO来对特定的端口操作,从而实现对Bypass开关的控制。
  3、 由Watchdog来控制。这种情况实际是对方式2的一种延伸应用,可以通过Watchdog来控制GPIO Bypass程序的启用与关闭,从而实现对Bypass状态的控制。使用这种方式后,平台如果死机就可以由Watchdog来打开Bypass。
  在实际的应用中,这3种状态往往是同时存在的,尤其是1和2两种方式。
  下图是研华FWA-3140系列的Bypass状态说明,大家可以参考一下。

 在实际的应用中,这3种状态往往是同时存在的,尤其是1和2两种方式。一般的应用方法为:在断电的情况下,设备处于Bypass打开状态,然后设备上电后,由于BIOS可以对Bypass作操作,所以在BIOS接管设备后,Bypass仍然处于打开状态,然后OS启动,当OS启动后,一般会执行GPIO 的Bypass程序,将Bypass关闭,这样可以应用程序就可以发挥作用了。也就是说在整个启动过程中,几乎不会造成网络的断开。只有在设备刚刚上电到 BIOS接管这短短的2-3秒钟的时间会使网络断开。关于更具体的应用,大家可以参考一下下面这篇文章,这篇文章是以研华FWA-3140为例,做的一个应用,地址为:http://www.panabit.com/document/panabit_bypass.html
  三、 Bypass实现的原理分析
  上面简单说明了一下Bypass的控制方式,下面针对Bypass工作原理作一下简要的说明,主要从硬件和软件两个层面来分析。以研华的FWA-3140系列产品为研究对象
  1、 硬件层面。
  在硬件层面上,要实现Bypass,主要使用的就是继电器。这些继电器主要连接两个Bypass网口的各个网口信号线上,下图以其中一根信号线来说明继电器在其中的工作方式。以电源触发为例,当断电的情况下,继电器内的开关将会跳拨到1的状态,即将LAN 1 的RJ45接口上的Rx直接和LAN2 的RJ45 Tx 导通,而当设备上电以后,开关就会导通到2上,这样如果要使LAN1和LAN2 上的网络间通讯,就需要通过这台设备上的应用程序来实现了。
  
 2、 软件层面。
  之前在Bypass的分类中谈到了GPIO和Watchdog两种方式来控制、触发Bypass,实际上这两种方式都是对 GPIO作操作,然后由GPIO来控制硬件上的继电器作相应的跳转。具体一点,就是相应的GPIO如果被置成高电平,那么继电器就相应的跳转到位置1,相反如果GPIO杯置成了低电平,则继电器就跳转到位置2。以研华FWA-3140为例,下图说明了FWA-3140的GPIO所控制的方式。

 以上图为例,如果对GPIO27 的Bit3 写入“0”或“1”,就可以对LAN 1/2 所组成的Bypass进行开关的控制,同理如果操作对象为GPIO 28 ,则可以实现对LAN3/4 Bypass的控制。
  在DOS下可以用如下的Debug程序来才测试Bypass的控制方法和状态。

 有了上面的实例,就可以完全实现由软件来控制Bypass的状态了。
  另外对于Watchdog Bypass,实际上是在上面的GPIO控制的基础上,增加Watchdog控制Bypass。首先系统激活Watchdog功能,传统上,当 Watchdog生效后,系统会Reset ,但如果你使用了Watchdog Bypass功能,则在Watchdog生效后,系统不会Reset,而是将相对应的网口Bypass打开,使设备呈现为Bypass状态。实际是这种 Bypass,也是通过GPIO来控制Bypass的,只不过这种情况下,向GPIO写入低电平的工作由Watchdog来执行,不需要另外编程来写 GPIO。值得注意的事,如果你使用了Watchdog Bypass,则Watchdog将不能再实现让系统Reset了。以研华FWA-3140为例,FWA-3140在主板上,会有一个3PIN的跳线,如果跳成1-2则Watchdog实现传统的Reset动作,如果将跳线设定为2-3,那么就会选择到Watchdog Bypass功能,这种情况下如果Watchdog生效后,系统就会打开Bypass功能。

Bypass功能及原理介绍相关推荐

  1. 无线充电动牙刷芯片方案功能和原理介绍

    一.无线充电动牙刷简介 主要分两大部分 1.    电动牙刷控制 电动牙刷安工作原理分两种:低端的电机旋转电动牙刷和高端磁芯结构声波式电动牙刷. 后者较前者,具有可控力度.摆动方向及高频高速等优点. ...

  2. C#进行AutoCAD二次开发实例之倒角功能实现原理介绍

    内容提要:         今天又是周五,到了双休的日子,比较兴奋,看了一晚上的<最强大脑>,顿时赶脚智商成了硬伤...刚才躺下打算睡觉,觉得还是应该写写CAD二次开发的相关一些内容,原因 ...

  3. 硬件bypass原理介绍

    硬件bypass 原理介绍 一 硬件bypass 目的: 作为串接产品为了避免产品的单点故障,在设备出现断电,死机时,不能因为串接产品的不可用而导致用户的网络不可用,硬件

  4. 中兴SDH原理介绍及中兴E300网管介绍

    姓名 苟忠兴 培训课程 中兴SDH原理介绍及中兴E300网管介绍 培训心得 1. SDH概念: SDH(Synchronous Digital Hierarchy,同步数字体系)是一种将复接.线路传输 ...

  5. heartbeat原理介绍

    heartbeat原理介绍 HeartBeat运行于备用主机上的Heartbeat可以通过以太网连接检测主服务器的运行状态,一旦其无法检测到主服务器的"心跳"则自动接管主服务器的资 ...

  6. Springboot中的缓存Cache和CacheManager原理介绍

    一.背景理解 什么是缓存,为什么要用缓存? 程序运行中,在内存保持一定时间不变的数据就是缓存.简单到写一个Map,里面放着一些key,value数据,就已经是个缓存了.所以缓存并不是什么高大上的技术, ...

  7. Hadoop 底层原理介绍

    1 概述 Apache Hadoop是一个软件框架,可在具有数千个节点和PB级数据的大型集群上进行分布式处理. Hadoop主要包含四个项目:Hadoop Common.Hadoop分布式文件系统(H ...

  8. kafka集群原理介绍

    kafka集群原理介绍 @(KAFKA)[kafka, 大数据] kafka集群原理介绍 一基础理论 二配置文件 一java调优 二参数说明 三错误处理 四zookeeper中的内容 1brokers ...

  9. spark之2:原理介绍

    spark之2:原理介绍 @(SPARK)[spark, 大数据] 1.spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速.因此运行spark的机器应该尽量的大内存,如96G以 ...

  10. SAP Fiori Elements 框架里 Smart Table 控件的工作原理介绍

    这是 Jerry 2021 年的第 34 篇文章,也是汪子熙公众号总共第 310 篇原创文章. Jerry 前一篇文章 深入掌握 SAP Fiori Elements 工作原理系列之二:如何给 Fio ...

最新文章

  1. @程序员,第一批00后开始报考AI专业了
  2. Java_质数_两种解法(时间对比)
  3. MySQL面试题 数据库设计三范式
  4. C、CPP const 详解
  5. UI帮手|小样机大作用
  6. python mysql python.h_MySQLdb/_mysql.c:38:20: fatal error: Python.h: No such file or directory
  7. vm驱动程序版本不正确_微软 Win10 版本 2004 获得新版 Intel/Nvidia 显卡驱动程序
  8. Ribbon风格下,依然叫菜单或者菜单卡、菜单页
  9. matlab矩阵二阶微分方程求解,MATLAB解含参数方程、矩阵方程、二阶微分方程组
  10. 《C++ Primer 5th》知识点总结练习题解
  11. PC硬件设备配置介绍与选型参考
  12. 如何用定积分求椭圆的周长_怎么用微积分求椭圆的周长?
  13. 流量分析和强制执行ntopng
  14. 【微信小程序】选择器组件picker
  15. iOS 屏幕尺寸、分辨率、适配
  16. 使用Python3采集小说网站
  17. [嵌入式开发模块]SHT30/20 温湿度传感器 驱动模块
  18. android9使用type-c接口,插入线控耳机与数据线监听混乱
  19. 什么是多租户saas架构设计
  20. android 陀螺仪简单的使用

热门文章

  1. 空硬盘恢复linux,linux使用foremost恢复文件,硬盘恢复
  2. 小程序源码:首席省钱赚钱专家微信小程序源码下载,淘宝客 外卖侠 外卖cps 首席多多客 八合一小程序源码
  3. dbeaver一款全能的数据库连接工具dbeaver
  4. 微信小程序双层图片swiper滑动(底部图片模糊处理)实现
  5. linux脚本开头的#!/bin/bash有什么作用
  6. jQuery源码学习(一)
  7. ctf-web-sql注入
  8. SPSS教程—如何安装加权kappa计算插件
  9. Oracle书籍推荐MySQL书籍推荐
  10. Source Insight 4.0黑色仿IDEA主题