一 一些基本常识


一 一些基本常识
1、交换机不认识IP,只认识MAC。2、交换机是在内网,一个局域网内通信的设备。3、路由器是在不通的网段进行通信的设备。4、网关是一个网络硬件设备,一般情况下是路由器,也可以是一台服务器。5、如果数据是在局域网内通信,不需要网关,如果数据不在局域网内通信,需要发到其他网段,就需要网关参与通信。二 网关的作用1、网关在所有内网计算机访问的不是本网段的数据报时使用。2、将内网IP转换成公网IP,将公网IP转换为内网IP。三 网关基本概念网关的英文名称:gateway,又叫做网间连接器、协议转换器。网关是在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转换、路由选择、数据交换等网络兼容功能的设施。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同时,网关也可以提供过滤和安全功能。大多数网关运行在OSI 7层协议的顶层--应用层。四 传统意义网关由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP。五网关示意图
六 网关解释一般来说,路由器的LAN接口的IP地址就是你所在局域网中的网关。当你所在的局域网的计算机需要和其它局域网中的计算机,或者需要访问互联网的时候,你所在局域网的计算机会先把数据包传输到网关(路由器的LAN接口),然后再由网关进行转发。举个简单的例子,一套房子内部有三个房间、一个大门,房子可以比喻成你的电脑所在的局域网,三个房间可以比喻成你所在局域网中的三台电脑,房子的大门可以比喻成网关。当你在房子内的一个房间进入另一个房间的时候并不需要经过房子的大门。在局域网中也是一样的,处在同一局域网的中计算机进行通信的时候并不需要用到网关。当你需要到邻居家去玩的时候需要要从你家房子的大门出去。相应的,局域网中的计算机需要和其它局域网中的计算机、和互联网上的计算机进行通信的时候,数据包必须要通过网关才可以到达。这就是为什么我们在有路由器上网的时候,必须要把计算机中的默认网关地址设置成路由器LAN接口的地址的原因,因为路由器的LAN接口就是你所在网络的网关,你的电脑要上网,数据包必须要经过网关转发出去。目前家用路由器一般使用192.168.1.1和192.168.0.1作为LAN接口的地址,这两个地址也是最常见的网关地址。作为普通的用户,只需要记住,手动配置ip地址的时候,默认网关的地址就是路由器的LAN接口的地址,也就是你路由器的管理页面登陆地址。如果你选择自动获取ip地址,那么就不需要关注默认网关地址了,但路由器的DHCP服务器分配下来的默认网关也一定是路由器的LAN接口的ip地址。七 家庭访问默认网关界面界面如下:
什么是网关?
网关(Gateway)指的是这一个网络连接到另一个网络的“关口”,它又称网间连接器、协议转换器。在Internet网里,网关的作用是一种连接内部网与Internet上其它网的一种中间设备,通俗来说,也叫做“路由器”。网关地址是能够理解成内部网与Internet网信息传输的一种通道的地址。根据不一样的分类准则来说,网关也有非常多的种类,在TCP/IP的协议里网关的使用频率是最常用的,而在这个地方我们所讲到的“网关”全都是指向TCP/IP协议下的网关。
默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。
网关的作用
所有网络都有一个边界,限制与直接连接到它的设备的通信。因此,如果网络想要与该边界之外的设备,节点或网络通信,则它们需要网关的功能。网关通常被表征为路由器和调制解调器的组合。
网关在网络边缘实现,并管理从该网络内部或外部定向的所有数据。当一个网络想要与另一个网络通信时,数据包将传递到网关,然后通过最有效的路径路由到目的地。除路由数据外,网关还将存储有关主机网络内部路径的信息以及遇到的任何其他网络的路径。
通俗来讲从一个房间走到另一个房间必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。在个人或企业方案中使用网关的主要优点是简化了到一台设备的Internet连接。在企业中,网关节点还可以充当代理服务器和防火墙。
以上就是对网关的概念及其作用的讲述,希望能够帮助各位更深层次了解网关的相关知识。
spring cloud zuul网关的作用
- 统一入口
- 负载均衡
- 动态路由
- 熔断
- 过滤器
统一入口
微服务架构下,系统有多个服务,不能每个服务一个对外地址,用户需要一个统一的系统入口进行操作,故zuul网关是系统的统一入口。
为微服务云平台提供统一的入口是API网关最主要的用途,除此之外,网关还可承担认证授权、访问控制、路由、负载均衡、缓存、日志、限流限额、转换、映射、过滤、熔断、注册、服务编排、API管理、监控、统计分析等等非业务性的功能。上句摘自(https://blog.csdn.net/nsxqf/article/details/90679742)
负载均衡
Zuul中包含了Ribbon的依赖,故本身具有负载均衡的能力,无需任何配置,默认采用轮询的方式进行负载均衡。
动态路由
zuul网关支持两种方式的路由配置:
- path+serviceId(即服务名)
- path+路径:端口
微服务系统数量众多,每个系统又可能有多台服务器进行负载均衡,如果使用如上path+路径:端口的方式进行路由配置,运维人员的工作量较大,一般采用如上第一种配置方式Path+serviceId的方式。
采用path+serviceId的方式进行配置的优点:
- 动态服务器扩展,无需手动维护路由配置
使用服务注册中心后,服务是动态注册的。服务注册中心自动维护了每个服务名对应的多台服务器的ip+端口列表。比如需要增加一台服务器进行负载均衡,只需要在新的机器上部署服务并启动,服务会自动注册到服务注册中心,和nginx ip+端口配置的方式相比,实现了负载动态扩展。
zuul自身会注册为eureka服务,和eureka结合使用,eureka自动维护服务实例。
zuul网关是从服务注册中心拉取服务对应的多台服务器的ip及端口,故采用path+serviceId配置方式,服务的注册是动态的;反之每增加或减少一台服务器,都需要手动修改路由配置。
zuul网关路由配置示例:
通过
zuul.routes.<路由名>.path
与zuul.routes.<路由名>.serviceId
示例1:
zuul: routes: service-provider: path: /eureka-service/** serviceId: eureka-service
示例2:
#zuul.routes.mis_dingding_consumer.path=/mis_dingding_consumer/** #zuul.routes.mis_dingding_consumer.serviceId=mis_dingding_consumer #zuul.routes.mis_baoxiao_service.path=/mis_baoxiao_service/** #zuul.routes.mis_baoxiao_service.serviceId=mis_baoxiao_service
如有兴趣了解zuul网关完整搭建过程,可查看我的博文:https://blog.csdn.net/u014161595/article/details/103472852
动态路由配置
和spring cloud config动态刷新机制结合使用,可以实现路由动态配置。无需停止服务,配置立即生效。
如有兴趣了解spring cloud config完整搭建过程,可查看我的博文:https://blog.csdn.net/u014161595/article/details/103505451
熔断机制
Zuul中包含了Hystrix和Ribbon的依赖,所以Zuul拥有线程隔离和断路器的自我保护功能。
需要注意的是传统路由也就是使用path与url映射关系来配置路由规则的时候,对于路由转发的请求不会使用HystrixCommand来包装,所以没有线程隔离和断路器的保护,并且也不会有负载均衡的能力。所以我们在使用Zuul的时候推荐使用path与serviceId的组合来进行配置。
熔断机制内容摘自(https://www.cnblogs.com/hellxz/p/9282756.html)
过滤器
在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。
上述所说的横切功能(以权限校验为例)可以写在三个位置:
第一种,缺点太明显,基本不用;第二种,相较于第一点好很多,代码开发不会冗余,但是有两个缺点:
而服务网关恰好可以解决这样的问题:
过滤器内容摘自(https://zhuanlan.zhihu.com/p/101341556)
网关的作用
网关 网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同时,网关也可以提供过滤和安全功能。大多数网关运行在OSI 7层协议的顶层–应用层。 大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。 在OSI中,网关有两种:一种是面向连接的网关,一种是无连接的网关。当两个子网之间有一定距离时,往往将一个网关分成两半,中间用一条链路连接起来,我们称之为半网关。 按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关。 那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。 所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。 在和 Novell NetWare 网络交互操作的上下文中,网关在 Windows 网络中使用的服务器信息块 (SMB) 协议以及 NetWare 网络使用的 NetWare 核心协议 (NCP) 之间起着桥梁的作用。网关也被称为 IP 路由器。 默认网关 如果搞清了什么是网关,默认网关也就好理解了。就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。
DNSServe
**DNS:**因特网上一个域名与IP互相映射的分布式存储数据库
DNS的查询方式
迭代查询:客户端向本地 DNS 服务器发出请求后,一直处于等待状态,直到本地名称服务器返回查询结果。以访问 www.baidu.com 为例叙述迭代查询过程。当客户端向本地 DNS 服务器发出请求后,本地 DNS 服务器查询本机缓存,如果有记录,则直接返回;如果没有,则本地 DNS 服务器以客户端的身份将查询请求发给根名称服务器,这个过程是递归查询过程。根名称服务器通过查询返回给本地 DNS 服务器 .com 顶级名称服务器的IP地址;本地DNS服务器收到 .com 顶级名称服务器的IP地址后继续向.com顶级名称服务器发出请求,顶级名称服务器收到请求后查询缓存,如果有记录则直接返回本地DNS服务器,如果没有,则返回baidu.com二级名称服务器的IP地址;本地名称服务器继续发出请求,二级名称服务器同样查找缓存返回www.baidu.com的IP地址。(最多127级域)。
递归查询:客户端和本地DNS服务器的查询就属于递归查询,客户端发出查询请求后处于等待状态,本地DNS以客户端身份询问下一个DNS服务器,直到本地DNS服务器返回确定回复或否定答复。
一次完整的查询请求经过的流程: Client -->hosts文件 -->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根
–> 顶级域名DNS–>二级域名DNS…