C# 典型报错,Veeam 显示The underlying connection was cloesd: Anunexpected error occurred on a send.

说在前面:

1. 对于使用公有云的企业,往往可以很方便的将云上数据下沉到冷数据,比如什么超级深度无敌冷归档,但对于不能使用公有云保存数据的厂或者小公司,Veeam是一个很不错的选择。

2. Veeam是一款综合性的数据保护和备份解决方案,适用于虚拟、物理和云环境。它以其快速、可靠和成本效益高的备份和恢复解决方案而闻名,特别适合于维护业务连续性和数据安全。说白了就是一个备份软件

3. 这个产品是老外开发的,原生支持对接AWS, AZURE, GOOGLE CLOUD,不过这些供应商在国内用的比较少 ,据我浅显的认识国内多用这个来做VSphere的备份。

4. 因为安全和其他原因(曝出过多种攻击手段,诸如BEAST、POODLE、ROBOT、SWEET 32、LUCKY 13等),IETF(nternet Engineering Task Force)已经在2018年6月宣布要弃用TLS1.0, TLS1.1,但是很明显,这种非强制性的建议,不会很快推广来,目前公网内网仍然有大量使用此协议的服务。

一、问题描述

Veeam 9.0 版本默认使用TLS1.0进行通讯,VSphere(Vcenter)6.0 Update 3 以下版本同样也是使用TLS1.0 。

在这种基础下,需要同步升级版本,如果只升级一侧,就会导致TLS版本不兼容,导致握手失败。这个时候使用老版本的veeam9.0访问新版本的VSphere(VCenter)就会立即抛出这个错误:

C# 典型报错,Veeam 显示The underlying connection was cloesd: Anunexpected error occurred on a send. Authentication failed because the remote party has closed the transport stream.

另外多说一嘴,根据经验,一般立即抛出这种连接性报错,一般都可以优先想到是防火墙或者安全类故障,而不是偏向网络侧问题。

二、尝试排障

虽然直接给出了故障原因,但说实话,第一次看到这个故障我并没有抓包,而是直接猜到是协议问题,因为这个报错是一个C#的典型报错,我接触过的基本都是由于TLS协议问题导致。

在Veeam侧机器进行抓包,可以看到TLS光有客户端hallo,没有握手成功。Veeam9.0默认TLS1.0,升级到9.5即可或者更高版本,不过Veeam不允许直接跨越多个版本升级,比如要升级到10.0版本,需要先升级到9.5才可以。

升级版本后再看一眼,这种情况是握手完成了,故障解决。当然,同样存在操作系统不支持TLS1.2的情况,注意识别。

三、问题复盘

1. 该报错是C#直接抛出的,如果veeam是部署在win上的,那么winserver的生产软件很多使用C#写的,爆出这个错误,基本都长这个样子。但是鉴于国内基本没有用winserver做主流生产环境的,不建议主力语言学C#

2. 此故障由于TLS版本不一导致,VSphere6.0 up3和6.5以下版本默认TLS1.0,官网和本人都建议直接升级软件解决(除此之外还要确认操作系统支不支持TLS1.2)。当然,之前调研也发现有跨协议代理软件,可以做TLS1.0 —— TLS1.2的跨协议代理,但是具体效果如何,没有尝试,这里留存关键词:Fiddle,squid,mitmproxy

3. 升级软件前应该尽可能评估是否有此类问题出现

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值