阿里云网络产品常见架构场景及问题

简介: 阿里云的网络和弹性计算类产品很多,使用场景也多种多样,本文是一些使用场景的集锦。主要思路是从使用特定场景中发生的典型问题出发,总结网络产品使用中的关键点。

阿里云的网络和弹性计算类产品很多,使用场景也多种多样,本文是一些使用场景的集锦。主要思路是从使用特定场景中发生的典型问题出发,总结网络产品使用中的关键点。

场景1: 使用VPN打通多个数据中心

架构

用户自己的数据中心通过专线和阿里云相连,同时用户使用了其他公有云的资源,利用阿里云VPN网关和其他公有云厂商打通IPsec VPN。架构和网段如下:
image

问题现象

参考文档“VPN网关配合云企业网搭建高速全球网络”,基本架构是可行的。这个场景和文档中的场景很类似,是阿里云VPN网关支持的场景之一。

但问题来了,用户在IDC机器上ping其他云上的资源10.200.1.15时,出现了如下报错信息,表示报文超过了TTL:

From 10.100.1.18 icmp_seq=1 Time to live exceeded

继续用 traceroute探测到目的地址的路径,可以看到在中间某节点出现了环路:

# traceroute 10.200.1.15
traceroute to 10.200.1.15 (10.200.1.15), 30 hops max, 60 byte packets
 1  10.200.1.254 (10.102.81.254)  0.924 ms  1.249 ms  2.431 ms
 2  172.17.0.3 (172.17.0.3)  0.544 ms  0.522 ms  0.673 ms
 // 省略
 7  10.100.1.18 (10.100.1.18)  2.641 ms  2.268 ms  2.156 ms
 8  * * 10.100.1.18 (10.100.1.18)  2.136 ms
 9  10.100.1.18 (10.100.1.18)  2.328 ms * *
10  * * *
11  * * *
 //  省略
29  10.100.1.18 (10.100.1.18)  2.828 ms * *
30  10.100.1.18 (10.100.1.18)  3.241 ms  3.168 ms  3.552 ms 

从traceroute信息和网段信息可以判断10.100.1.18已经是阿里上的节点,但是用户表示这个出现环路的IP地址10.100.1.18是一个“未知”地址,是不是阿里云网络出了问题?

分析

首先IP地址10.100.1.18确实是阿里云中的地址,并且是VPN网关的私网地址,这个信息确实需要阿里云同学协助确认。在明确了这点后,再来看看上面的环路意味着什么。

在使用了阿里云VPN网关的情况下,要把去往其他云厂商目的CIDR 10.200.0.0/20的流量从VPN网关送出去,在VPC中需要添加如下路由条目:
image

正常的VPN网关应该怎么工作呢?收到去往CIDR 10.200.0.0/20的报文后,将报文封装后送进IPsec VPN隧道,通过公网送往对端。看看为什么可能出现环路。查看了VPC路由表配置是正常的,有一种可能性是去往CIDR 10.200.0.0/20的报文送到VPN网关后,VPN网关又来查VPC路由,看到报文下一跳是VPN自己,结果又把报文扔给自己,直到报文的TTL减少到0为止。

那VPN网关为什么没有将报文从公网送到对端呢?有一种可能性是去往CIDR 10.200.0.0/20的报文根本就没有做IPsec封装,从而接下报文还是走VPC路由,而没走公网路由送出去。

根因

沿着这个思路,再来看现象。发现有环路的IDC客户端地址是10.64.3.22,而有另外一些客户端可以正常ping通,地址基本上在10.16.x.y/16网段。所以这个问题变成了“ping相同目标地址,源IP地址不通,效果不通”,该问题并非路由问题了。

我们有理由怀疑是VPN网关没有配置对相映的内网网段做封装。查下VPN网关IPsec连接的本端网段和对端网段的配置(感兴趣流),如下:

// 10.16.0.0/16表示线下IDC的网段,10.200.0.0/20表示其他公有云中的私有网段
10.16.0.0/16 === 10.200.0.0/20  

可以看到本端网段设置为10.16.0.0/16,这个网段并不包括10.64.3.22,所以报文确实不会被封装进IPsec隧道,而一直在VPC路由的影响下形成环路。在本端网段中加入10.64.3.22所在的CIDR即解决问题。当然也可以简单地配置成0.0.0.0/0。

总结

用VPN/专线打通多个数据中心或者VPC是一个常用的混合云场景。但是因为VPN网关未能正确地配置相关感兴趣流网段,导致报文环路在一个对用户不可知的未知节点,带来了一定的排查成本。通过这个案例可以进一步了解VPN网关的在混合云中的使用场景,如何对报文进行封装,以及封装异常的后果。

场景2: ECS 操作系统内路由表对网络联通性的影响

架构

以云企业网为例子,用户利用云企业网打通了3个不同区域的VPC,默认3个VPC之间full mesh联通。
image

问题现象

3个区域各自分别有1台测试ECS机器:

  • Region1 VPC, ECS1 IP 地址:172.17.0.64
  • Region2 VPC, ECS2 IP 地址:172.18.1.22
  • Region3 VPC, ECS3 IP 地址:172.31.4.18
  • 安全组配置类似,都放行对方。ECS内也没有iptables规则

问题现象:ECS1 172.17.0.64 ping不通ECS3 172.31.4.18,但是ECS2 172.18.1.22可以ping通ECS3 172.31.4.18。

分析

这个问题本身并不复杂,但是如果把排查聚焦在云产品本身的属性和配置上,最终会徒劳无功。除了云产品保证跨地域的VPC顺利打通外,ECS操作系统主机网络相关的因素也直接影响联通性。最典型的就是操作系统内的iptables规则,其次操作系统内的路由表配置,ECS多网卡的策略路由等因素都会影响到网络连通性。

在这个案例里,如果对docker有所了解,那么172.17.0.64所属的网段172.17.0.0/16是带有典型特征的,这个是网桥docker0的默认网段。查看下ECS3 172.31.4.18操作系统的路由表,如下:

# ip route show
default via 172.31.0.253 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.31.0.0/24 dev eth0 proto kernel scope link src 172.31.4.18

根因

ECS3中去往目的网段172.17.0.0/16的报文会走docker0网卡。ECS1发往ECS3上的ICMP echo request被ECS3的eth0网卡接受到,但是回包走了docker0网卡,所以ECS1无法收到ICMP echo reply的回包,导致ECS1无法ping通ECS3。

如果不太熟悉docker,对该问题用常规的检查和抓包也能发现问题点。关键点是需要进行端到端的排查,即以操作系统开始为起始点开始分析。

总结

这个问题是ECS操作系统内路由表对网络连通性影响的一个简单示例。在ECS上跑很多复杂业务的情况下,业务软件(如docker, tunnel等)对主机路由表的影响应该也应该被更多地考虑进去。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
25天前
|
弹性计算 运维 监控
阿里云云服务诊断工具:合作伙伴架构师的深度洞察与优化建议
作为阿里云的合作伙伴架构师,我深入体验了其云服务诊断工具,该工具通过实时监控与历史趋势分析,自动化检查并提供详细的诊断报告,极大提升了运维效率和系统稳定性,特别在处理ECS实例资源不可用等问题时表现突出。此外,它支持预防性维护,帮助识别潜在问题,减少业务中断。尽管如此,仍建议增强诊断效能、扩大云产品覆盖范围、提供自定义诊断选项、加强教育与培训资源、集成第三方工具,以进一步提升用户体验。
666 243
|
21天前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
134 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
3天前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
9天前
|
运维 供应链 安全
阿里云先知安全沙龙(武汉站) - 网络空间安全中的红蓝对抗实践
网络空间安全中的红蓝对抗场景通过模拟真实的攻防演练,帮助国家关键基础设施单位提升安全水平。具体案例包括快递单位、航空公司、一线城市及智能汽车品牌等,在演练中发现潜在攻击路径,有效识别和防范风险,确保系统稳定运行。演练涵盖情报收集、无差别攻击、针对性打击、稳固据点、横向渗透和控制目标等关键步骤,全面提升防护能力。
|
4天前
|
负载均衡 容灾 Cloud Native
云原生应用网关进阶:阿里云网络ALB Ingress 全能增强
在过去半年,ALB Ingress Controller推出了多项高级特性,包括支持AScript自定义脚本、慢启动、连接优雅中断等功能,增强了产品的灵活性和用户体验。此外,还推出了ingress2Albconfig工具,方便用户从Nginx Ingress迁移到ALB Ingress,以及通过Webhook服务实现更智能的配置校验,减少错误配置带来的影响。在容灾部署方面,支持了多集群网关,提高了系统的高可用性和容灾能力。这些改进旨在为用户提供更强大、更安全的云原生网关解决方案。
51 4
|
11天前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
|
1月前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
92 3
图卷积网络入门:数学基础与架构设计
|
28天前
|
云安全 人工智能 安全
|
20天前
|
弹性计算 Cloud Native Serverless
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品。
|
2月前
|
弹性计算 安全 容灾
阿里云DTS踩坑经验分享系列|使用VPC数据通道解决网络冲突问题
阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。本文介绍如何使用VPC数据通道解决网络冲突问题。
107 0