阿里云DTS踩坑经验分享系列|网络问题排查大法

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 在DTS的所有用户问题中,网络问题出现的概率居高不下,很大程度上是由于DTS的链路复杂性,从源数据库到DTS再从DTS到目的数据库,任意的一个部位发生网络不通、网络质量问题都有可能导致DTS任务的中断,或者延迟。本文希望以一种最简单的模型,简述DTS网络不通问题的排查方法,并给出一些简单的验证思路及手段,排查方向对了才能事半功倍。

阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。


导读

在DTS的所有用户问题中,网络问题出现的概率居高不下,很大程度上是由于DTS的链路复杂性,从源数据库到DTS再从DTS到目的数据库,任意的一个部位发生网络不通、网络质量问题都有可能导致DTS任务的中断,或者延迟。

而在所有的网络不通问题中,“专线/VPN网关/智能网关” 或者 “CEN” 方式接入数据源的任务占比最多,一方面,以这2种接入方式接入的客户大多数是以VBR + 物理专线、VPN网关等方式连接了一个较远位置的网络环境,由于距离远加上网络链路可能具有不确定性因此网络质量并不能得到很好的保障;另一方面,由于这个目的网络环境可能是用户私网IDC、他云VPC等阿里云不可控的一个环境,其路由情况、数据库版本可能都并非是标准的,因此阿里云无法直接进行排查,必须依靠用户做跨网络域问题的排查,效率大打折扣

因此,本文希望以一种最简单的模型,简述DTS网络不通问题的排查方法,并给出一些简单的验证思路及手段,排查方向对了才能事半功倍。

网络不通问题概览

首先我们从TCP/IP的协议出发来定义一下 如何构造一个畅通的网络通道,不出现下方这种令人烦躁的报错。

配置任务时网络不通的报错图

定义开始

首先什么是TCP/IP协议?怎么确保TCP/IP协议是畅通的? 以下是我从百度百科找到的回答:

TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议.......... TCP 有3次握手和4次挥手............

说这么多其实关联不到实际的业务场景,不如我们直接给出这样一个极简的模型,并给出更为极简的定义:

“当DTS的流量可以以1号剪头的方向正确到达用户数据库,并且用户数据库的回流量可以以2号箭头的方向正确到达DTS,则网络畅通”

image.png

极简DTS&数据库网络通信图

接着我们对上图做一些填充,便得到了较完整的一张通信拓扑图:在这张图中,DTS和用户数据库之间需要经过 基础网络组件、专有网络VPC、下云/上云通道(也就是通常意义的专线或者VPN)最终到达用户数据库。

image.png

完整DTS&数据库网络通信拓扑图

但是这里左侧DTS和基础网络组件对于用户来说都是不可见的,右侧3个组件(专有网络VPC、下云/上云通道、用户数据库)对于用户是可见的,因此我们重新定义下刚才提出的更为极简的定义:

“当DTS注入专有网络VPC的流量可以以1号箭头的方向正确到达用户数据库,并且用户数据库的回流量可以以2号箭头的方向正确到达专有网络VPC,则网络畅通。”

我们这里已经定义好了一个畅通网络的必要条件,但是没有提到一个参数:专有网络VPC 是哪个专有网络VPC?

答案揭晓,实际上就是在配置DTS任务时,用户选择的“已和源端数据库联通的VPC”。(目标同理)

此时,我们有必要再更新一下刚才更为极简的定义:

“当DTS注入用户配置任务时选择的专有网络VPC的流量可以以1号箭头的方向正确到达用户数据库,并且用户数据库的回流量可以以2号箭头的方向正确到达用户配置任务时选择的专有网络VPC,则网络畅通。”

最终,我们解答并定义了这个问题 如何构造一个畅通的网络通道。但如何确认呢?如何确定我们构造的网络就是满足畅通网络要求的?

下面我们就从2部分探讨一下排查与验证思路:

  • 排查下云流量部分
  • 排查上云流量部分

排查下云流量部分

祭出我们的极简模型图,并给出下云部分畅通网络的极简定义:

DTS注入用户配置任务时选择的专有网络VPC的流量可以以1号箭头的方向正确到达用户数据库

image.png

极简模型图

那么在确认下云流量正确到达前,总得知道流量长的什么样子,否则分析无从谈起。

我们这里直接给出一个报文的模型:源IP我们称为云服务IP,是各种100.104开头的网段,目的IP就是用户的数据库IP,DTS注入用户VPC的流量会以这种形式在用户网络内流转,并随着用户的各种交换机路由表一路流动到用户数据库。

image.png

下云流量报文模型


那么这个源IP的网段如何确认呢?

可参考DTS的白名单网段进行确认,云服务IP网段在各region都是不一样的,数量也不一样

https://help.aliyun.com/zh/dts/user-guide/add-the-cidr-blocks-of-dts-servers-to-the-security-settings-of-on-premises-databases

如果配置都正确要如何确认下云通道是畅通的呢?

可以使用tcpdump的抓包命令,在用户数据库上,进行抓包查看

sudo tcpdump net 100.104

如果你能在shell的回显,看到图示的来自100.104网段报文信息在不断更新的话,就说明数据库机器收到了来自云上云服务网段的流量。

排查上云流量部分

再次祭出我们的极简模型图,并给出上云部分畅通网络的极简定义:

用户数据库的回流量可以以2号箭头的方向正确到达用户配置任务时选择的专有网络VPC

image.png

极简模型图

书接上文,我们的下云流量有了,那么紧接着数据库会向云上做回包,这个回包的目的IP就是 下云流量的源IP,因此我们给出上云流量的报文模型

image.png

上云流量报文模型


接着就需要确认报文有没有回到云上了,那么可以执行如下这个命令:

MTR 100.104.X.X

但MTR哪个地址呢?

想确认这个100.104.X.X的地址具体是什么,可以采用刚才的方法 sudo tcpdump net 100.104,查看来源IP是什么

确认100.104 IP是什么的方法

做完MTR后可通过路径点得知由数据库发出的报文是否回到了阿里云上,由于手里没有现成的专线测试环境因此就不给大家演示了。

大多数上云不通的情况是报文根本没出非阿里云环境,还在这个网络域内徘徊,多半是由于一些路由配置问题导致回程的路由没有指向VBR的云下互联地址,或者指向云下的VPN网关。当然具体是什么情况就需要用户的网工进行排查了。


总结

本篇主要从DTS角度提出了一个 “畅通网络”的极简版定义,并且讨论了一套最简单的网络不通排查思路,是定性的分析,主要是回答:“有没有下云”和“有没有上云” 这2个问题,可以起到售后介入前用户自行排查的作用。但是针对更为复杂的场景,需要定量分析的,本篇没有涉及。比如还有其他更极端的情况,报文已经确认上云了,但是没有回到用户填写的那个VPC;报文已经下云了,但是用户数据库没有接到;这就属于更为复杂的网络问题,需要借助更综合的知识分析,也不在本篇的讨论范围内。

网络问题综合性较强,牵扯部门多,覆盖范围广,因此排查周期长、难度大。从我们的心得而言,如果是运行中链路遇见网络问题,那么尽量从变更入手,很可能是变更引发的问题;如果是配置中链路遇见网络问题,多半是用户的网络规划中缺失了 云服务IP网段 这个方面的规划。


快来关注

  1. 数据传输服务(Data Transmission Service,简称DTS)支持关系型数据库、NoSQL、大数据(OLAP)等数据源,集数据迁移、订阅、实时同步、校验功能于一体,能够解决公共云、混合云场景下,远距离、秒级异步数据传输难题。其底层基础设施采用阿里双11异地多活架构,为数千下游应用提供实时数据流,已在线上稳定运行7年之久,是一款沉淀了丰富实践经验的可靠产品。点击了解更多DTS相关信息
  2. 欢迎加入钉群讨论交流:


#DTS避坑指南”

相关文章
|
2天前
|
存储 缓存 网络协议
网络丢包排查方法
网络丢包排查方法
|
9天前
|
运维 监控 网络协议
在Linux中,如何进行网络故障排查?
在Linux中,如何进行网络故障排查?
|
11天前
|
域名解析 运维 监控
网络故障排查的常用工具与方法:技术深度解析
【8月更文挑战第20天】网络故障排查是一项复杂而重要的工作,需要网络管理员具备扎实的网络知识、丰富的实践经验和灵活的问题解决能力。通过掌握常用工具和方法,遵循科学的排查流程,可以显著提高故障排查的效率和准确性。希望本文能为读者在网络故障排查方面提供有益的参考和启示。
|
12天前
|
敏捷开发 网络协议 测试技术
阿里云云效产品使用合集之在vpc网络里,如何升级agent
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
8天前
|
Kubernetes 网络协议 网络安全
在K8S中,容器提供一个服务,外部访问慢,到底是容器网络问题?还是容器服务问题?这种怎么排查?
在K8S中,容器提供一个服务,外部访问慢,到底是容器网络问题?还是容器服务问题?这种怎么排查?
|
8天前
|
Kubernetes 监控 Shell
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
|
8天前
|
Kubernetes 监控 网络协议
在K8S中,如果因为网络原因导致Pod异常,该如何排查?
在K8S中,如果因为网络原因导致Pod异常,该如何排查?
|
9天前
|
监控 网络协议 Linux
在Linux中,如何排查网络连接问题?
在Linux中,如何排查网络连接问题?
|
2月前
|
域名解析 安全 物联网
阿里云EMAS HTTPDNS 扩展全球服务节点:提升解析安全性与网络覆盖
阿里云EMAS HTTPDNS新增国内西南、华南及国际欧洲、美东服务节点,提升了全球覆盖能力与性能。作为高效域名解析服务,EMAS HTTPDNS针对互联网、汽车、物流、IOT等行业提供支持,解决了传统解析易遭劫持等问题。新增节点优化了就近调度功能,显著缩短响应时间并增强了服务稳定性和连续性,尤其为中国企业的海外业务提供了强有力的支持。此次扩展展现了阿里云对服务质量的持续追求和全球市场布局的战略思考。
|
14天前
|
网络虚拟化
网络二层环路,老练的网工,都是这么排查的!
网络二层环路,老练的网工,都是这么排查的!

热门文章

最新文章

下一篇
云函数