目录
一、VPC:云网络的基石
1.1 VPC产品介绍
专有网络(Virtual Private Cloud)是用户基于阿里云创建的自定义私有网络,不同的VPC之间逻辑隔离,用户可以在自己创建的VPC内创建和管理云产品实例,比如ECS、SLBRDS等。
VPC是region粒度的,可以跨可用区。
1.2 vswitch交换机
创建专有网络后,用户可以通过创建交换机为专有网络划分一个或多个子网。同一专有网络内的不同交换机之间内网互通。
Vswitch是可用区粒度。
1.3 vrouter路由器
路由器 (VRouter) 是专有网络的枢纽。作为专有网络中重要的功能组件,它可以连接VPC内的各个交换机,同时也是连接VPC和其他网络的网关设备。
每个专有网络创建成功后,系统会自动创建一个路由器。
1.4 产品架构
AVS是VPC的核心,是位于宿主机(NC) 上的一个虚拟交换机。主要用于对报文vxlan封装,解封装以及路由转发。AVS还添加了很多辅助模块,例如IPtables, flow mark, flow qos 等等。
AVS目前已经演进了5代,分别是avs 1.0(classic), avs 2.0 (VPC), HAVS, DPDK AVS, 以及硬件加速的AVS。
1.5 常见问题解答及处理
1.5.1 VPC内如何查询某个IP归属?
问题:客户提供vpc实例ID及私网ip地址,如何确认此ip对应的实例?
排查过程:
1. 在VPC详情页面的资源管理中找到交换机,确认IP是否位于vsw的网段内,如果位于vsw的网段内,在vsw的云资源管理下查找ip对应的实例信息。
2.ip不在vsw的网段范围内,检查vpc路由表,根据路由指向的下一跳确认ip所在网络。
1.5.2 网络ACL阻断导致ECS访问CLB不通
问题:ECS访问跨VPC的CLB端口不通,路由检查没有问题,需要确认不通的原因。
排查过程:
1. 第一步先梳理出链路拓扑,要标注出源实例ID(IP)和目的实例ID(IP),以及访问对端LB的监听端口号,访问的方式,URL等。
2. 该案例是端口不通,可以同时在客户端和后端ECS抓三次握手的包,看SYN包是否到后端,以及后端是否回了SYN ACK。
3. 通过三次握手报文,可以大致判断包丢在哪一段,然后检查是否有LB白名单、网络acl、安全组、云墙拦截,如果检查都没有问题,再考虑升级处理; 这里是网络ACL的问题,入方向规则放行的是80端口。而nacl都是针对目的端口的,客户端的入向其实是访问clb时的源端口,所以应配置为-1/-1,放行所有端口问题解决。
1.5.3 EIP秒级突发/分布式限速丢包
问题:客户提问:“EIP流量不是很高,为什么丢包了?”、“监控图看带宽没超过限制,为什么丢包影响业务了”
注意事项:客户的控制台看到到都是分钟级监控,会计算60s的平均值,因此如果是秒级突发超限在监控上是会被削峰的。
排查过程:
几种主要限速丢包原因:
1. 带宽超限
2. 秒级突发 用户控制台均是以分钟级打点的均值带宽数据,带宽瞬时brust超规格的情况很常见,如需观测验证请开通EIP高精度秒级监控
3. 单流分布式超限 共享带宽包和EIP两个产品都存在分布式限速。比如当共享带宽包的带宽是1G的时候,出方向会基于EIP/共享带宽包所在的可用区XGW的数量做限速,如果是4台,则出方向单流(同一个五元组)的带宽最大为250Mb。
1.5.4 NAT网关的流量监控
问题:客户提问: “帮我看一下NAT网关的TOPN 的ip都有什么”、“是哪个业务ip导致我流量打高的”
注意事项:目前NIS功能已经支持在客户的控制台上显示对应时间的TOP N五元组,建议引导客户在控制台开通NIS后查看(通过筛选eip查看;但是只能查看开通后时间的,之前的只能升级后台,在NAT实例界面中提供到分钟级的top n ip,没有五元组信息)
排查过程:
1.5.5 NAT网关绑定EIP
问题:客户提问: “NAT网关流量总是打高,怎么提升?”、“我绑定了多个EIP,那我的实例峰值能达到多少”
注意事项:NAT网关的带宽峰值是与绑定的EIP相关的,如果snat条目使用了加入共享带宽的EIP,则峰值也会受到共享带宽的峰值影响。
排查过程:
二、负载均衡:请求分发提高可用
2.1 SLB负载均衡
负载均衡SLB(Server Load Balancer)是一种对流量进行按需分发的服务,通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。
2.2 ALB架构(应用型)
在流量方面,用户流量首先到达ALB的域名,通过云解析到达具体的ALB VIP地址,所有VIP地址流量入口在SLB的LVS上,LVS再将流量转到on NFV 的Proxy ECS,proxy ECS通过用户挂载的RS进行流量负载,最终到达用户的RS,也就是用户VPC的ECS。
2.3 NLB架构(网络型)
NLB面向四层,提供了强大的四层负载均衡能力,通过将流量分发至不同的后端服务器来扩展应用系统的服务吞吐能力。单实例最大支持1亿并发连接。
监听是NLB最小业务单元,监听上需要配置协议与端口以告知NLB需要处理什么流量,例如TCP协议,80端口。NLB支持TCP、UDP、TCPSSL协议。每个NLB至少有一个监听,才能开始流量处理与分发。每个NLB默认最多可以配置50个监听,用于处理不同的业务流量。
2.4 CLB架构(传统型)
负载均衡作为流量转发服务,将来自客户端的请求通过负载均衡集群转发至后端服务器,后端服务器再将响应通过内网返回给负载均衡。
阿里云当前提供四层和七层的负载均衡服务。
四层采用四层专用集群+ keepalived方式实现负载均衡。
七层采用七层专用集群实现负载均衡。相比传统自建Nginx集群,七层专用集群针对海量访问、HTTPS卸载等场景进行了性能优化,并添加了很多高级功能和特性。
2.5 常见问题解答及处理
2.5.1 TCP监听健康检查失败
问题:排查CLB TCP监听健康检查失败原因
排查过程:后端服务器上进行抓三次握手的包,看下具体的请求情况,如果收不到SYN包,则需要考虑防火墙、安全组、ACL拦截;如果收到SYN包,没回SYN ACK,需要检查后端服务器路由问题;如果也会了SYN ACK,但还是异常,需要进一步升级看。
2.5.2 CLB七层监听健康检查日志过多
问题:CLB七层监听健康检查日志过多,如何进行解决?
解决方案:
1.降低健康检查探测频率
2.调整健康检查方式,CLB修改为TCP监听之后使用TCP方式探测。ALB可以直接更换为TCP方式探测。
排查过程:
健康检查默认间隔是2秒,可以在后端ECS实例进行抓包查看具体报文。
可以看到每隔2秒有16台proxy机器(主和备集群)进行探测,所以日志中记录的请求量过多符合预期。
抓包工具软件名:Wireshark
2.5.3 CLB 访问不通
问题:私网四层CLB 后端rs不能既做客户端也做服务端
排查过程:
私网四层CLB场景下,作为客户端时,源目地址是客户端地址和SLB地址,作为服务端时,源目地址是客户端地址和服务端地址,所以如果客户端和服务端是同个地址,在操作系统里syn ack回不出网卡,所以建立不会成功。 公网四层CLB场景下,客户端访问SLB的源地址是公网地址,过lb到后端目标端是私网地址,地址不冲突。
2.5.4 访问CLB 被RST
问题:访问CLB,客户端抓包看请求被RST
排查过程:
从报文的特征看,rst的报文特征是31415,说明是CLB主动发送,CLB有如下场景会直接回复RST
1.当所有后端ECS的健康检查都是失败时,客户端访问4层SLB会直接返回RESET。
2.TCP长连接超时时,SLB会发RESET断连接,这时客户端会收到RESET。
最终核实是CLB后端ECS健康检查都是失败导致。
2.5.5 访问SLB出现503
问题:客户端访问SLB出现503状态码
排查过程:
503 (Service Temporarily Unavailable)暂时无法使用服务器(由于超载或进行停机维护),通常是QPS超限或者RS不可用。
1.后端服务器直接返回503状态码
2.从访问日志中查看是否存在QPS超限的情况,表现为upstream_status
3.监听没有配置后端服务器,或者用户配置的后端服务器的权重为0
2.5.6 访问SLB出现499
- 问题:客户端访问SLB出现499状态码
排查过程:
499 客户端主动断开连接。
1.客户端到slb的网络链路有问题。
2.后端处理时间太长(排查upstream_response_time),建议排查后端的处理能力是否不足。
3.客户端设置的超时太短,导致客户端发完请求就关闭连接,建议排查客户端设置是否异常。
2.5.7 负载不均匀
问题:用户反馈SLB后端的服务器上的负载不同
排查过程:
- 四层监听是以新建连接为负载均衡的标志的
- 七层监听是以QPS为负载均衡的标志的
- 四层监听可以查看SLB转发到后端每台机器的新建连接数的数量
- 七层监听可以通过日志看每台机器的QPS的个数
四层负载不均常见原因:
- 业务总体新建连接较少
- 后端rs的权重设置的不一致
- 后端rs健康检查异常
- 会话保持
- 长连接业务
七层负载不均常见原因:
- 会话保持
- 如果用户配置了转发规则,当用户的请求匹配转发规则时,可能也会出现负载不均
2.5.8 查看客户端真实IP
问题:如何查看客户端真实IP?
1、四层CLB,不需要任何配置,后端可以直接看到客户端真实IP
2、七层CLB/ALB使用100.64.0.0/10的地址进行回源,可以通过xff字段获取到客户端真实IP
拓展:部分访问场景,如IPv6的访问场景,需要通过proxyprotocol进行客户端真实IP的获取。后端需要支持PP,之后监听开启PP功能,不然会出现访问不通的情况。
三、CEN云企业网:网元间通信的渠道
3.1 CEN产品介绍
云企业网CEN(Cloud Enterprise Network)是运行在阿里云私有全球网络上的一张高可用网络。云企业网通过转发路由器TR(Transit Router)帮助您在跨地域专有网络之间,专有网络与本地数据中心间搭建私网通信通道,为您打造一张灵活、可靠、大规模的企业级云上网络。
3.2 核心组件
转发路由器 Transit Router(简称“TR”)是地域范围内企业级核心转发网元,可为用户转发同地域或不同地域的网络实例间的流量,并支持在地域内定义灵活的互通、隔离、引流策略,帮助用户打造一张灵活、可靠、大规模的企业级互联网络。
转发路由器分为基础版和企业版。企业版转发路由器是基础版转发路由器的升级版,除包含基础版转发路由器的所有功能外,还支持定义灵活的路由策略。
3.3 应用场景
1、云上多VPC跨地域网络互通
2、线下多IDC/分支机构间网络互通
3.4 云企业网组件说明
组件 | 说明 |
云企业网实例 | 云企业网实例是创建、管理一体化云上智能网络的基础资源,是转发路由器实例的载体。 一个云企业网实例可包含一个或多个转发路由器实例,多个转发路由器实例之间可通过跨地域连接和带宽包互联,帮您灵活地组建云上互联网络。 |
转发路由器实例 | 转发路由器实例是地域范围内的核心转发网元,为您转发同地域或跨地域间的流量,并支持定义灵活的路由策略。在一个云企业网实例中,一个地域支持创建一个转发路由器实例。 |
网络实例 | 转发路由器支持连接以下网络实例: 专有网络VPC(Virtual Private Cloud)实例 边界路由器VBR(Virtual Border Router)实例 云连接网CCN(Cloud Connect Network)实例 IPsec连接 转发路由器实例 |
网络实例连接 | 网络实例连接是转发路由器与网络实例之间的连接关系。依据网络实例类型,可分为:VPC连接、VBR连接、CCN连接、VPN连接。 VPN连接即IPsec连接与转发路由器之间的连接。 跨地域连接:跨地域连接即为不同地域转发路由器实例之间的连接。跨地域连接与带宽包组合使用后,可实现网络实例跨地域互通;同地域的网络实例可通过地域内的转发路由器直接互通,无需创建跨地域连接以及购买带宽包。 |
转发路由器路由表 | 转发路由器已经连接的网络实例通过该地域下转发路由器路由表进行流量转发。转发路由器包含一张默认路由表,支持创建自定义路由表并支持通过关联转发和路由学习功能定义互通、隔离、引流策略,满足您多样化的组网需求。 默认路由表:系统自动为每一个转发路由器实例创建一张默认路由表。 自定义路由表:自定义路由表需要您手动创建。自定义路由表类似于传统路由器中配置的Virtual Routing Forwarding(VRF),与默认路由表及其他自定义路由表互不相通,可以实现访问隔离。 |
带宽包 | 带宽包提供跨地域互通带宽。带宽包与转发路由器的跨地域连接组合使用,可实现网络实例跨地域互通。 |
3.5 常见问题解答及处理
3.5.1 为什么CEN无法学习路由?
问题:客户在VPC配置了一条172.23.13.128/26自定义路由,发布到了云企业网中,但是对端vpc 无法访问这个地址段。
排查过程:
1、排查TR quota,路由规格是否超限,可以先在tr实例详情查看TR最大支持的路由数,然后确认下是否存在超限了。
2、排查TR是否有收路由策略限制,CEN实例详情->TR实例详情->转发路由器路由表->路由策略,查看是否存在拒绝策略。
3.5.2 为什么VBR之间无法通过CEN学习路由?
问题:客户两个IDC通过专线打通CEN,但无法通过CEN互通。
解决方案:
如果客户有VBR之间的互通需求,可以手工添加一条放行VBR之间互发路由的策略,但需要充分评估环路风险。
排查过程:
由于云企业网在专线侧下发BGP路由时无法携带原始路由AS-PATH,可能导致在某些复杂拓扑场景下形成路由环路。因此,从2018年8月1日起,云企业网增加互通限制:
- 所有新添加到云企业网中的VBR间默认不允许路由学习和互通。比如:在云企业网中加载VPC1、VPC2、VBR1、VBR2。在该变更实施前,VPC1/VPC2/VBR1/VBR2之间完全互通;在该变更实施后,VBR1/VBR2和VPC1/VPC2之间可互通,但是VBR1和VBR2之间不可以互通。
- 系统默认会在云企业网地域网关添加策略优先级为5000、策略行为为拒绝的路由策略,该条路由策略会限制VBR、CCN与加入到云企业网中的其它VBR/CCN间互通。 ○
可以在控制台TR实例详情->转发路由器路由表->路由策略 查看核实这个默认策略。
3.5.3 BGP路由传递与防环介绍
路由传播:
EBGP: EBGP邻居位于不同的自治系统(AS)中。当一个路由器从EBGP邻居学习到一条路由后,它会将该路由通告给所有EBGP和IBGP邻居,除非受到路由策略的限制。这意味着EBGP是跨越AS边界的路由传播机制。 IBGP: IBGP邻居在同一AS内。IBGP路由器从一个IBGP邻居学到的路由,默认情况下不会通告给其他IBGP邻居,以防止路由环路的发生。为了在整个AS内部部有效地分发EBGP引入的路由和其他AS内的路由信息,IBGP要求采用全连接、路由反射器(Route Reflector)或 Confederation 等机制来实现路由信息的分布。
路由防环:
EBGP: 使用AS_PATH属性来防止路由环路。每经过一个AS,AS_PATH属性都会被更新,包含经过的所有AS编号。当路由器收到一条AS_PATH中已包含自身AS号的路由时,它会丢弃这条路由。 IBGP: 在同一AS内,默认不允许将从IBGP邻居学习到的路由再次通告给其他IBGP邻居,以此避免路由环路。同时,可以通过设置下一跳保持不变等策略确保IBGP内部路由传递的连通性。
拓扑示意图:
3.5.4 如何通过CEN跨地域访问OSS服务?
场景介绍:
某企业在华东2(上海)地域下拥有一个VPC1,VPC1中使用ECS部署了一些应用服务。 企业在华东1(杭州)地域部署了OSS服务,企业希望VPC1下的ECS实例可以私网访问华东1(杭州)地域下的OSS服务以获取相关资源。
解决方案:
企业可以在OSS服务所属的地域(即华东1(杭州)地域)创建一个VPC2,然后将要访问OSS服务的VPC1和VPC2都连接至云企业网下的企业版转发路由器中 VPC1和VPC2可以通过企业版转发路由器实现跨地域私网互通 VPC1下的ECS实例可以通过企业版转发路由器和VPC2实现私网访问跨地域的OSS服务。
根本原因:
杭州本地默认只有一条100.64.0.0/16的云服务路由指向本region,需要手工添加一条明细路由指向TR来完成打通。
3.5.5 为什么通过CEN互访ping丢包高达90%?
问题:
客户IDC主机ping云上丢包达90%,ssh不通,链路拓扑示意。
排查过程:
1、根据源和目的检查安全组放行,路由匹配等基本信息;
2、telnet端口能通,说明三次握手有正常的时候,但是无法登录;
3、ECS抓包发现云下没有把包发上来,seq=4到seq=12中间丢了7个包;
4、由于链路是IDC访问云上,会过TR和VBR,需要排查VBR和TR是否存在限速,IDC在北京,ECS在张北,属于跨区域带宽,可以看到在对应TR实例详情->监控图表->出方向限速丢包 看到有限速;
5、最终发现是带宽包过期了,续订后解决。
四、DNS域名解析:域名与服务的部署关系
4.1 公网DNS
功能/ 版本 | 免费版 | 个人版 | 企业标准版 | 企业旗舰版 |
适用站点 | 个人主页、空间等 | 个人用户、小微企业,对DNS解析速度、生效时间、稳定性没有特殊要求 | 中大型企业级网站或服务,关注DNS解析的速度、生效时间、SLA、智能解析等 | 互联网科技公司、金融机构、 跨国集团等,对DNS解析速度、 生效时间、定制化方面, 有高标准要求 |
可用性SLA | 无可用性保证,无售后支持 | 100% 月度可用性 | 100% 月度可用性 | 100% 月度可用性 |
DNS节点 | 中国境内4个 | 中国境内7个、 中国境外12个 | 中国境内7个、 中国境外12个 | 中国境内7个、 中国境外12个 |
子域名托管级别 | 16级 | 16级 | 16级 | 16级 |
子域名数量 | 10万条 | 10万条 | 10万条 | 10万条(超出使用上限, 可提交工单申请) |
子域名级数 | 10级 | 20级 | 20级 | 20级 |
TTL值 | 600秒 | 600秒 | 60秒 | 1秒 |
智能解析 | 联通/电信/移动/教育网/境外 | 联通/电信/移动/鹏博士/教育网/广电网,境外 | 阿里云线路、分省(联通/电信/移动/鹏博士/教育网/广电网),境外/大洲/国家(地区) | 包含所有固定智能解析线路, 支持自定义IP范围解析 |
4.2 私网DNS
内网DNS解析(Private DNS)服务是原“云解析PrivateZone”产品的全新升级,是阿里云解析DNS产品面向企业内网场景(主要为阿里云VPC内网场景)提供的完整DNS解析服务。具体功能如下:
内置权威:内置于企业内网(阿里云专有网络VPC)环境中的私有DNS权威模块。该服务允许创建只在您企业内网VPC中生效的私有权威域名,并可解析映射到IP地址
缓存:通常VPC内网中的所有域名解析请求,都会将解析结果存储到DNS服务器高速缓存内存中,以便下次对相同域名进行解析时能快速获得解析结果
转发:通过创建域名转发规则和DNS出站终端节点,可将企业内网VPC中的特定域名解析请求流量转发到外部DNS系统,能够有效解决混合云、云上&云下的业务间调用场景
递归:内网DNS解析服务的递归模块,主要为企业内网VPC环境中的各类终端(如ECS主机)提供出公网的域名递归解析服务。该服务为阿里云VPC内网解析场景默认提供的免费服务,但不承诺服务SLA
服务地址:内网DNS解析服务的 NameServer 地址,可作为云内客户端(ECS或者容器)的DNS服务地址进行配置,也可作为云外客户端 (云外主机或者云外DNS) 访问云内DNS解析服务的目标IP地址进行配置
流量分析:提供解析时延、解析请求量、解析命中缓存率、热点域名、热点请求来源等各个维度的数据分析,为您优化解析设置提供数据参考
4.3 域名分层结构
“.” 是根域;
“.com”是顶级域;
“dns-example.com”是主域名(也可称托管一级域名),主要指企业名;
“example.dns-example.com”是子域名(也可称为托管二级域名);
“www.example.dns-example.com”是子域名的子域(也可称为托管三级域名)
4.4 公网DNS解析过程
4.5 内网DNS解析过程
4.6 常见问题解答及处理
4.6.1 平滑迁移域名解析至阿里云解析DNS
问题:客户域名是其他网站注册的,如何迁移到阿里云解析?
注意事项:
1、域名如有配置DNSSEC,请先到域名注册商处删除DS记录,并关闭DNSSEC。等迁移完成后,再参考 DNSSEC开启设置方法进行配置。如域名未配置DNSSEC,则忽略此步骤。
2、解析数据准备:请在原DNS服务商处导出解析记录,并按照 DNS解析模板 进行编辑整理好解析记录。
排查过程:
1、在云解析DNS控制台,在 域名解析 页面选择 权威域名 页签,再单击 添加域名 。如果您的域名是阿里云注册域名或者已经添加了域名,可忽略此步骤。
2、单击目标域名进入 解析设置 页面,单击 导入/导出 按钮,在 导入记录 页面选择 导入记录方式 :增量更新或 全量更新,再单击 上传文件 ,将编辑整理好的解析记录导入云解析DNS。
3、检查导入云解析DNS中配置的解析记录是否跟您之前的DNS厂商中设置的解析记录一致,避免漏配现象。
4、前往您的域名注册商处,将DNS服务器修改为云解析DNS系统分配的地址(在云解析DNS控制台-域名解析页面-解析设置 页面-查看DNS服务器 可获取到系统分配的DNS服务器地址)。修改域名DNS服务器配置可参考修改DNS服务器。
5、借助DNS流量分析功能查看您的服务请求流量是否有异常波动,持续观测至少10分钟。
6、无需其他操作,耐心等待解析生效即可,预计需要48小时完成全国各地localDNS的缓存刷新。
4.6.2 公网域名解析不符合预期
问题:用户的localdns公网出口IP是203.121.59.8(归属地域为马来西亚),只配置了红框部分的解析记录,解析结果是1.1.1.1,反馈解析不符合预期。
排查过程:
1、获取用户localdns的出口公网IP,然后检查这个IP的归属地域以及运营商,通过dig @权威dns +subnet=IP地址 来查看权威dns的返回结果。这个公网ip是马来西亚的,正常应该返回3.3.3.3才对。
2、确认线路优先级,线路优先级 默认 < 地域线路(子级线路越多优先级越高) < 搜索引擎线路(子级线路越多优先级越高) < 自定义线路 203.121.59.8这个地址是google地址,会被归为“搜索引擎线路”,需要单独配置搜索引擎线路。当增加线路为谷歌后,解析结果就是4.4.4.4,解析符合预期。
3、但是这样带来的问题是所有dns出口IP为谷歌的都会解析到4.4.4.4,实现不了根据不同的地域解析到不同IP的需求。这种情况下可以配置自定义线路,将对应localdns出口的IP段划分到我们的自定义线路,从而去解析到预期的地址。
查看localdns的出口IP:
liunx:dig +short TXT whoami.ds.akahelp.net
windows:nslookup -q=txt whoami.ds.akahelp.net
4.6.3 公网域名封禁问题
问题:域名被运营商localdns解析到0.0.0.0或者127.0.0.1
排查过程:通过拨测平台查询到域名解析到了0.0.0.0或者127.0.0.1,说明域名被运营商封堵了。找 X7-阿里网络运营服务上报故障。
总结
1、VPC(专有网络):为用户提供逻辑隔离的私有网络环境,支持跨可用区的互联互通,并通过路由器组件实现内外网络的连接。
2、交换机(vSwitch):在VPC内划分子网,支持同一VPC内的交换机之间内网互通。
3、路由器(vRouter):作为VPC内的核心组件,负责连接VPC内的交换机,并作为连接其他网络的网关。
4、负载均衡(SLB/ALB/NLB/CLB):通过将流量分发到不同的后端服务器,提高应用系统的可用性和扩展性,支持多种监听类型和高级功能。
5、云企业网(CEN):提供跨地域VPC互通及混合云网络方案,通过转发路由器(TR)实现网络实例间的流量转发。
6、DNS解析服务:包括公网DNS和私网DNS,提供权威解析、缓存、转发、递归解析等功能,并支持不同版本的服务质量保证和智能解析。