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

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 在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避坑指南”

相关文章
|
18天前
|
关系型数据库 MySQL 数据挖掘
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
DTS 作为阿里云核心的数据交互引擎,以其高效的实时数据流处理能力和广泛的数据源兼容性,为用户构建了一个安全可靠、可扩展、高可用的数据架构桥梁。阿里云数据库 SelectDB 通过与 DTS 联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL / RDS MySQL / PolarDB for MySQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
|
18天前
|
开发者 Python
阿里云视觉智能开放平台中,请问这个如何排查?
【2月更文挑战第9天】阿里云视觉智能开放平台中,请问这个如何排查?
40 6
|
18天前
|
数据库
阿里云DTS数据迁移和数据同步的差异性分析
阿里云DTS作为一款常用的数据库表迁移工具,提供了功能非常类似的两个功能:数据迁移、数据同步。阿里云DTS产品官网对这两个功能模块进行了简单的区分: 场景1:存量数据批量迁移,建议使用数据迁移功能。 场景2:增量数据实时同步,建议使用数据同步功能。 实际上,无论是数据迁移还是数据同步,都可以做 “结构初始化”+“全量数据迁移”+“增量迁移”,因此两者功能差异并不明显。笔者在多个项目实践DTS数据迁移,在简单需求场景下,将DTS的数据迁移、数据同步进行对比和总结。
|
3天前
|
人工智能 前端开发 JavaScript
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
阿里云验证码产品,使用业界先进的风控引擎结合“规则+AI”模型,有效区分真实用户和机器自动化脚本攻击,避免机器请求造成业务损失。主要适用于垃圾注册、刷库撞库,薅羊毛,短信被刷等风险场景。为您提供安全可靠的业务环境。本文为大家介绍验证码使用时滑动验证流程及验证不通过的问题排查。
64415 1
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
|
4天前
|
SQL 运维 关系型数据库
阿里云DTS踩坑经验分享系列|数据不一致修复大法
阿里云数据传输服务DTS在帮助用户迁移数据、同步数据时,在某些复杂场景下会出现源库与目标库数据不一致的问题,造成数据错误,给用户带来困扰。由于数据不一致的问题很难完全避免,为了及时修复不一致的数据,DTS产品推出数据订正功能,保障用户在同步\迁移数据时的数据一致性。本文介绍了产生数据不一致的一些典型场景,并重点阐述了如何使用DTS数据订正功能来修复不一致的数据。
202 4
|
18天前
|
运维 网络协议 Linux
【Linux】CentOS网络故障排查大揭秘: 实战攻略解读
【Linux】CentOS网络故障排查大揭秘: 实战攻略解读
|
18天前
|
运维 网络协议 Linux
【Linux】Linux网络故障排查与解决指南
【Linux】Linux网络故障排查与解决指南
|
18天前
|
NoSQL 关系型数据库 数据库
数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务
【2月更文挑战第29天】数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务
26 5
|
18天前
|
关系型数据库 MySQL 数据库
使用阿里云的数据传输服务DTS(Data Transmission Service)进行MySQL 5.6到MySQL 8.0的迁移
【2月更文挑战第29天】使用阿里云的数据传输服务DTS(Data Transmission Service)进行MySQL 5.6到MySQL 8.0的迁移
235 2
|
18天前
|
域名解析 监控 网络协议
Linux 如何排查网络问题
确认基本网络连接 使用ping命令检查是否能够成功连接到互联网或目标主机。例如: ping www.google.com 查看网络接口状态 使用ifconfig或ip address show命令查看网络接口的状态。确认网络接口是否正常启用,并且是否分配了正确的IP地址。
68 3

热门文章

最新文章