什么是应用网关?它的工作原理是什么?

什么是应用网关?它的工作原理是什么?,第1张

你去看下这个介绍的比较清楚,有图文http://infoshangducom/tech/basic_gateway2asp

应用网关是将一个网与另一个网进行相互连通,提供特定应用的网际间设备。

网关必须能实现相应的应用协议。

应用网关可看作是运行于要求特定业务的客户机与提供所需业务的服务器之间的中间过程。在这类模型中,从客户机来看它起着服务器的功能,而从服务器来看它又是一个客户机。

应用网关可设在应用层或设在传输层。

应用层网关:网关在应用层上工作,或称代理服务器(Proxyserver)。

线路层网关:网关在传输层上工作。

所以作为应用网关,可以是硬件设备也可以是pc+软件

Zuul 网关是具体核心业务服务的看门神,相比具体实现业务的系统服务来说它是一个边缘服务,主要提供动态路由,监控,弹性,安全性等功能。在分布式的微服务系统中,系统被拆为了多套系统,通过zuul网关来对用户的请求进行路由,转发到具体的后台服务系统中。

本 Chat 主要内容如下:

网关是具体核心业务服务的看门神,相比具体实现业务的系统服务来说它是一个边缘服务,主要提供动态路由,监控,弹性,安全性等功能,下面我们从单体应用到多体应用的演化过程来讲解网关的演化历程。

一般业务系统发展历程都是基本相似的,从单体应用到多应用,从本地调用到远程调用。对应单体应用架构模式(如下图1),由于只需一个应用,所有业务模块的功能都打包为了一个 War 包进行部署,这样可以减少机器资源和部署的繁琐。

图1 单体应用

在单体应用中,网关模块是和应用部署到同一个jvm进程里面的,当外部移动设备或者web站点访问单体应用的功能时候,请求是先被应用的网关模块拦截的,网关模块对请求进行鉴权、限流等动作后在把具体的请求转发到当前应用对应的模块进行处理。

随着业务的发展,网站的流量会越来越大,在单体应用中简单的通过加机器的方式可以带来的承受流量冲击的能力也越来越低,这时候就会考虑根据业务将单体应用拆成若干个功能独立的应用,单体应用拆为多个应用后,由于不同的应用开发对应的功能,所以多应用开发之间可以独立开发而不用去理解对方的业务,另外不同的应用模块只承受对应业务流量的压力,不会对其他应用模块造成影响,这时候多体的分布式系统就出现了,如下图2。

图2 多体应用

如上图在多体应用中业务模块A和B单独起了个应用,每个应用里面有自己的网关模块,如果业务模块多了,那么每个应用都有自己的网关模块,这样复用性不好,所以可以考虑把网关模块提起出来,单独作为一个应用来做服务路由,如下图3:

如上图当移动设备发起请求时候是具体发送到网关应用的,经过鉴权后请求会被转发到具体的后端服务应用上,对应前端移动设备来说他们不在乎也不知道后端服务器应用是一个还是多个,他们只能感知到网关应用的存在。

Zuul是Netflix开源的一个网关组件,在Netflix内部系统中Zuul被用来作为内部系统的门面,如下图是Zuul在Netflix内部使用的一个架构图:

如上图最上层的移动设备或者网站首先通过aws负载均衡器把请求路由到zuul网关上,zuul网关则负责把请求路由到具体的后端service上。

Zuul开源地址 https://githubcom/Netflix/zuul

Zuul网关的核心是一系列的过滤器,这些过滤器可以对请求或者响应结果做一系列过滤,Zuul 提供了一个框架可以支持动态加载,编译,运行这些过滤器,这些过滤器是使用责任链方式顺序对请求或者响应结果进行处理的,这些过滤器直接不会直接进行通信,但是通过责任链传递的RequestContext参数可以共享一些东西。

虽然Zuul 支持任何可以在jvm上跑的语言,但是目前zuul的过滤器只能使用Groovy脚本来编写。编写好的过滤器脚本一般放在zuul服务器的固定目录,zuul服务器会开启一个线程定时去轮询被修改或者新增的过滤器,然后动态进行编译,加载到内存,然后等后续有请求进来,新增或者修改后的过滤器就会生效了。

在zuul中过滤器分为四种:

如下图为zuul10的工作原理:

如上图,当zuul接受到请求后,首先会由前置过滤器进行处理,然后在由路由过滤器具体把请求转发到后端应用,然后在执行后置过滤器把执行结果写会到请求方,当上面任何一个类型过滤器执行出错时候执行该过滤器。

本节作者使用zuul的版本:

总结:zuul10时候当zuul接受到一个请求后会同步执行前置过滤器、路由过滤器、后置过滤器,等执行完毕后在同步把结果返回为调用方,调用方在整个过程中是阻塞的。其实SpringBoot集成的zuul就是自己实现了个前置过滤器做选择路由,然后自己实现了个路由过滤器根据前置过滤器选择的路由具体做路由转发。

Netty作为高性能异步网络通讯框架,在dubbo,rocketmq,sofa等知名开源框架中都有使用,如下图zuul20使用netty server作为网关监听服务器监听客户端发来的请求,然后把请求转发到前置过滤器(inbound filters)进行处理,处理完毕后在把请求使用netty client代理到具体的后端服务器进行处理,处理完毕后在把结果交给后者过滤器(outbound filters)进行处理,然后把处理结果通过nettyServer写回客户端。

总: 在zuul10时候客户端发起的请求后需要同步等待zuul网关返回,zuul网关这边对每个请求会分派一个线程来进行处理,这会导致并发请求数量有限。而zuul20使用netty作为异步通讯,可以大大加大并发请求量。

网关曾经是很容易理解的概念。在早期的因特网中,术语网关即指路由器。路由器是网络中超越本地网络的标记, 这个走向未知的“大门”曾经、现在仍然用于计算路由并把分组数据转发到源始网络之外的部分,因此, 它被认为是通向因特网的大门。随着时间的推移,路由器不再神奇,公共的基于IP的广域网的出现和成熟促进了路由器的成长。 现在路由功能也能由主机和交换集线器来行使,网关不再是神秘的概念。现在,路由器变成了多功能的网络设备, 它能将局域网分割成若干网段、互连私有广域网中相关的局域网以及将各广域网互连而形成了因特网, 这样路由器就失去了原有的网关概念。然而术语网关仍然沿用了下来,它不断地应用到多种不同的功能中, 定义网关已经不再是件容易的事。~

目前,主要有三种网关: ·协议网关

·应用网关

·安全网关

唯一保留的通用意义是作为两个不同的域或系统间中介的网关,要克服的差异本质决定了需要的网关类型。 一、协议网关  协议网关通常在使用不同协议的网络区域间做协议转换。这一转换过程可以发生在OSI参考模型的第2层、第3层或2、3层之间。 但是有两种协议网关不提供转换的功能:安全网关和管道。由于两个互连的网络区域的逻辑差异, 安全网关是两个技术上相似的网络区域间的必要中介。如私有广域网和公有的因特网。这一特例在后续的“组合过滤网关”中讨论, 此部分中集中于实行物理的协议转换的协议网关。1、管道网关  管道是通过不兼容的网络区域传输数据的比较通用的技术。数据分组被封装在可以被传输网络识别的帧中,到达目的地时, 接收主机解开封装,把封装信息丢弃,这样分组就被恢复到了原先的格式。

  管道技术只能用于3层协议,从SNA到IPv6。虽然管道技术有能够克服特定网络拓扑限制的优点,它也有缺点。 管道的本质可以隐藏不该接受的分组,简单来说,管道可以通过封装来攻破防火墙,把本该过滤掉的数据传给私有的网络区域。 2、专用网关  很多的专用网关能够在传统的大型机系统和迅速发展的分布式处理系统间建立桥梁。 典型的专用网关用于把基于PC的客户端连到局域网边缘的转换器。该转换器通过X25网络提供对大型机系统的访问。 这些网关通常是需要安装在连接到局域网的计算机上的便宜、单功能的电路板,这使其价格很低且很容易升级。在上图的例子中, 该单功能的网关将大型机时代的硬连线的终端和终端服务器升级为PC机和局域网。 3、2层协议网关  2层协议网关提供局域网到局域网的转换,它们通常被称为翻译网桥而不是协议网关。 在使用不同帧类型或时钟频率的局域网间互连可能就需要这种转换。  (1)帧格式差异  IEEE802兼容的局域网共享公共的介质访问层,但是它们的帧结构和介质访问机制使它们不能直接互通

  翻译网桥利用了2层的共同点,如MAC地址,提供帧结构不同部分的动态翻译,使它们的互通成为了可能。 第一代局域网需要独立的设备来提供翻译网桥,如今的多协议交换集线器通常提供高带宽主干, 在不同帧类型间可作为翻译网桥,现在翻译网桥的幕后性质使这种协议转换变得模糊,独立的翻译设备不再需要, 多功能交换集线器天生就具有2层协议转换网关的功能。 替代使用仅涉及2层的设备如翻译网桥或多协议交换集线器的另一种选择是使用3层设备:路由器。 长期以来路由器就是局域网主干的重要组成部分。如果路由器用于互连局域网和广域网, 它们通常都支持标准的局域网接口,经过适当的配置,路由器很容易提供不同帧类型的翻译。 这种方案的缺点是如果使用3层设备路由器需要表查询,这是软件功能,而象交换机和集线器等2层设备的功能由硬件来实现, 从而可以运行得更快。  (2)传输率差异 很多过去的局域网技术已经提升了传输速率,例如,IEEE 8023以太网现在有10Mbps、100Mbps和1bps的版本, 它们的帧结构是相同的, 主要的区别在于物理层以及介质访问机制,在各种区别中,传输速率是最明显的差异。令牌环网也提升了传输速率, 早期版本工作在4Mbps速率下,现在的版本速率为16Mbps,100Mbps的FDDI是直接从令牌环发展来的,通常用作令牌环网的主干。 这些仅有时钟频率不同的局域网技术需要一种机制在两个其它方面都兼容的局域网间提供缓冲的接口,现今的多协议、 高带宽的交换集线器提供了能够缓冲速率差异的健壮的背板  如今的多协议局域网可以为同一局域网技术的不同速率版本提供内部速率缓冲,还可以为不同的802兼容的局域网提供2层帧转换。 路由器也可以做速率差异的缓冲工作,它们相对于交换集线器的长处是它们的内存是可扩展的。 其内存缓存进入和流出分组到一定程度以决定是否有相应的访问列表(过滤)要应用,以及决定下一跳, 该内存还可以用于缓存可能存在于各种网络拓扑间的速率差异二、应用网关 应用网关是在使用不同数据格式间翻译数据的系统。典型的应用网关接收一种格式的输入,将之翻译, 然后以新的格式发送。输入和输出接口可以是分立的也可以使用同一网络连接。

  一种应用可以有多种应用网关。如Email可以以多种格式实现,提供Email的服务器可能需要与各种格式的邮件服务器交互, 实现此功能唯一的方法是支持多个网关接口。  应用网关也可以用于将局域网客户机与外部数据源相连,这种网关为本地主机提供了与远程交互式应用的连接。 将应用的逻辑和执行代码置于局域网中客户端避免了低带宽、高延迟的广域网的缺点,这就使得客户端的响应时间更短。 应用网关将请求发送给相应的计算机,获取数据,如果需要就把数据格式转换成客户机所要求的格式。  本文不对所有的应用网关配置作详尽的描述,这些例子应该概括了应用网关的各种分支。它们通常位于网络数据的交汇点, 为了充分地支持这样的交汇点,需要包括局域网、广域网在内的多种网络技术的结合。y

三、安全网关安全网关是各种技术有趣的融合,具有重要且独特的保护作用,其范围从协议级过滤到十分复杂的应用级过滤。防火墙主要有三类:  分组过滤 电路网关 应用网关 注意:三种中只有一种是过滤器,其余都是网关。 这三种机制通常结合使用。过滤器是映射机制,可区分合法的和欺骗包。每种方法都有各自的能力和限制,要根据安全的需要仔细评价。1、包过滤器  包过滤是安全映射最基本的形式,路由软件可根据包的源地址、目的地址或端口号建立许可权, 对众所周知的端口号的过滤可以阻止或允许网际协议如FTP、rlogin等。过滤器可对进入和/或流出的数据操作, 在网络层实现过滤意味着路由器可以为所有应用提供安全映射功能。作为(逻辑意义上的)路由器的常驻部分, 这种过滤可在任何可路由的网络中自由使用,但不要把它误解为万能的,包过滤有很多弱点,但总比没有好。  包过滤很难做好,尤其当安全需求定义得不好且不细致的时候更是如此。这种过滤也很容易被攻破。包过滤比较每个数据包, 基于包头信息与路由器的访问列表的比较来做出通过/不通过的决定,这种技术存在许多潜在的弱点。首先, 它直接依赖路由器管理员正确地编制权限集,这种情况下,拼写的错误是致命的, 可以在防线中造成不需要任何特殊技术就可以攻破的漏洞。即使管理员准确地设计了权限,其逻辑也必须毫无破绽才行。 虽然设计路由似乎很简单,但开发和维护一长套复杂的权限也是很麻烦的, 必须根据防火墙的权限集理解和评估每天的变化,新添加的服务器如果没有明确地被保护,可能就会成为攻破点。  随着时间的推移,访问权限的查找会降低路由器的转发速度。每当路由器收到一个分组, 它必须识别该分组要到达目的地需经由的下一跳地址,这必将伴随着另一个很耗费CPU的工作: 检查访问列表以确定其是否被允许到达该目的地。访问列表越长,此过程要花的时间就越多。  包过滤的第二个缺陷是它认为包头信息是有效的,无法验证该包的源头。 头信息很容易被精通网络的人篡改, 这种篡改通常称为“欺骗”。  包过滤的种种弱点使它不足以保护你的网络资源,最好与其它更复杂的过滤机制联合使用,而不要单独使用。2、链路网关  链路级网关对于保护源自私有、安全的网络环境的请求是很理想的。这种网关拦截TCP请求,甚至某些UDP请求, 然后代表数据源来获取所请求的信息。该代理服务器接收对万维网上的信息的请求,并代表数据源完成请求。实际上, 此网关就象一条将源与目的连在一起的线,但使源避免了穿过不安全的网络区域所带来的风险。  这种方式的请求代理简化了边缘网关的安全管理,如果做好了访问控制,除了代理服务器外所有出去的数据流都被阻塞。 理想情况下,此服务器有唯一的地址,不属于任何内部使用的网段。这绝对使无意中微妙地暴露给不安全区域的信息量最小化, 只有代理服务器的网络地址可被外部得到,而不是安全区域中每个联网的计算机的网络地址。 3、应用网关 应用网关是包过滤最极端的反面。包过滤实现的是对所有穿过网络层包过滤设备的数据的通用保护, 而应用网关在每个需要保护的主机上放置高度专用的应用软件,它防止了包过滤的陷阱,实现了每个主机的坚固的安全。  应用网关的一个例子是病毒扫描器,这种专用软件已经成了桌面计算的主要产品之一。它在启动时调入内存并驻留在后台, 持续地监视文件不受已知病毒的感染,甚至是系统文件的改变。 病毒扫描器被设计用于在危害可能产生前保护用户不受到病毒的潜在损害。  这种保护级别不可能在网络层实现,那将需要检查每个分组的内容,验证其来源,确定其正确的网络路径, 并确定其内容是有意义的还是欺骗性的。这一过程将产生无法负担的过载,严重影响网络性能。4、组合过滤网关  使用组合过滤方案的网关通过冗余、重叠的过滤器提供相当坚固的访问控制,可以包括包、链路和应用级的过滤机制。 这样的安全网关最普通的实现是象岗哨一样保护私有网段边缘的出入点,通常称为边缘网关或防火墙。 这一重要的责任通常需要多种过滤技术以提供足够的防卫。下图所示为由两个组件构成的安全网关:一个路由器和一个处理机。 结合在一起后,它们可以提供协议、链路和应用级保护。

   这种专用的网关不象其它种类的网关一样,需要提供转换功能。作为网络边缘的网关,它们的责任是控制出入的数据流。 显然的,由这种网关联接的内网与外网都使用IP协议,因此不需要做协议转换,过滤是最重要的。 保护内网不被非授权的外部网络访问的原因是显然的。控制向外访问的原因就不那么明显了。在某些情况下, 是需要过滤发向外部的数据的。例如,用户基于浏览的增值业务可能产生大量的WAN流量,如果不加控制, 很容易影响网络运载其它应用的能力,因此有必要全部或部分地阻塞此类数据。  联网的主要协议IP是个开放的协议,它被设计用于实现网段间的通信。这既是其主要的力量所在,同时也是其最大的弱点。 为两个IP网提供互连在本质上创建了一个大的IP网, 保卫网络边缘的卫士--防火墙--的任务就是在合法的数据和欺骗性数据之间进行分辨。5、实现中的考虑  实现一个安全网关并不是个容易的任务,其成功靠需求定义、仔细设计及无漏洞的实现。首要任务是建立全面的规则, 在深入理解安全和开销的基础上定义可接受的折衷方案,这些规则建立了安全策略。  安全策略可以是宽松的、严格的或介于二者之间。在一个极端情况下,安全策略的基始承诺是允许所有数据通过,例外很少, 很易管理,这些例外明确地加到安全体制中。这种策略很容易实现,不需要预见性考虑,保证即使业余人员也能做到最小的保护。 另一个极端则极其严格,这种策略要求所有要通过的数据明确指出被允许,这需要仔细、着意的设计,其维护的代价很大, 但是对网络安全有无形的价值。从安全策略的角度看,这是唯一可接受的方案。在这两种极端之间存在许多方案,它们在易于实现、 使用和维护代价之间做出了折衷,正确的权衡需要对危险和代价做出仔细的评估。

如何设置默认网关

  一台电脑的默认网关是不可以随随便便指定的,必须正确地指定,否则一台电脑就会将数据包发给不是网关的电脑,从而无法与其他网络的电脑通信。默认网关的设定有手动设置和自动设置两种方式。

  1 手动设置

  手动设置适用于电脑数量比较少、TCP/IP参数基本不变的情况,比如只有几台到十几台电脑。因为这种方法需要在联入网络的每台电脑上设置“默认网关”,非常费劲,一旦因为迁移等原因导致必须修改默认网关的IP地址,就会给网管带来很大的麻烦,所以不推荐使用。

  在Windows 9x中,设置默认网关的方法是在“网上邻居”上右击,在弹出的菜单中点击“属性”,在网络属性对话框中选择“TCP/IP协议”,点击“属性”,在“默认网关”选项卡中填写新的默认网关的IP地址就可以了。

  需要特别注意的是:默认网关必须是电脑自己所在的网段中的IP地址,而不能填写其他网段中的IP地址。

  2 自动设置

  自动设置就是利用DHCP服务器来自动给网络中的电脑分配IP地址、子网掩码和默认网关。这样做的好处是一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中所有的电脑均获得了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变动的网络。

  另外一种自动获得网关的办法是通过安装代理服务器软件(如MS Proxy)的客户端程序来自动获得,其原理和方法和DHCP有相似之处。由于篇幅所限,就不再详述了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 什么是应用网关?它的工作原理是什么?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情