0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AWS、Azure、Google,VPC哪个厉害?

SSDFans 来源:ssdfans 作者:ssdfans 2020-12-03 14:17 次阅读

故事的开始是这样的,遇到有人说他们想要去了解AWS的VPC的技术细节,然后说要在AWS的公有云上创建几个实例,希望通过抓包来分析AWS的VPC的实现细节。当时我就忍不住跳出来说,如果AWS的VPC可以提供这么的功能的话,他们的实现细节岂不早被人学会了。毕竟,VPC是基于overlay的网络,在三层的物理网络上实现一个大二层的专用网络,如果能看到物理三层的东西的话,岂不是太不安全了。

但是,后来的发展的确说明我可能想的太多,因为AWS的确从2015年开始就提供了VPC Flow Log[1]这样的服务。当然,大家也不要想太多,这个功能的目的主要是提供给大规模上云的用户来做自家的VPC内的网络故障排除的。如果AWS真的说可以让你抓到ENA上的网络包,建议你三思。

VPC的故事和其他人一样都是从OVS+VXLAN开始的,如下图。

AWS的服务提供如下的几种类型:

Accepted and rejected Traffic

No data and skipped records

Security group and network ACL rules

IPv6 traffic

TCP flag sequence

Traffic through a NAT gateway

Traffic through a transit gateway

需要注意的事,AWS说提供的是VPC Flow的信息,也就可以认为这个信息只能是一跳的内容,和传统的wireshark的TCP session还是不同的。

关于AWS的VPC log的格式以及使用场景,AWS一如既往地提供了详细文档,就不赘述了。其中有意思的点如下:

当创建一个客户可定制的flow log时候的选项包含:

${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status} ${instance-id} ${subnet-id} ${vpc-id} ${pkt-srcaddr} ${pkt-dstaddr} ${tcp-flags} ${type}

其中,version 2和3 的区别:2是AWS default设置,并保存在S3上。3是客户定制的。

其中的两项需要多说一下:

pkt-srcaddr 和pkt-dstaddr. 当ena有多个IP地址,或者和NAT网关连接的时候,使用缺省的log的格式,其中的IP信息其实是不正确的,这个使用这个字段来提供正确的信息。

看了老大的服务,老二Azure肯定也要了解一下。[2] Azure毕竟是software公司出身,相对AWS的简单的CSV格式,提供了基于JSON的输出,而且比较合理地做了进一步的整合,提供了flowtuples的方式可以把一个TCPsession多个flow 保留在一起。因为包含了两个方向的,因此package_send有了两个方向的内容。

正因为做了聚合,因此不需要AWS那个相对比较别扭的pkt_srcaddr和pkt_destaddr. 和AWS相比,没有包含帐号信息,感觉是对于一个具体的VPC的subnetwork的flow信息。AWS 的格式则是包含了一个帐号内的一个VPC网络的子网内的一个EC2实例上的一个ENA网卡的包信息。

对于另一个巨头Google来讲,简直把这个log玩出了花[3]。因为google号称可以实现跨数据中心的迁移,因为在Flow log中包含了太多的信息。特别贴心的是有个五元组的结构,估计查询上肯定极为舒适。

不仅包含了实例的信息,源和目的的都有:

InstanceDetails 字段格式

字段 类型 说明
project_id 字符串 包含虚拟机的项目的 ID
vm_name 字符串 虚拟机的实例名称
region 字符串 虚拟机所在的地区
zone 字符串 虚拟机所在的区域

同时还包含了地理信息,对,你没看错:

GeographicDetails 字段格式

字段 类型 说明
continent 字符串 外部端点所在的大洲
country 字符串 外部端点所在的国家/地区,采用 ISO 3166-1 Alpha-3 国家/地区代码的形式表示。
region 字符串 外部端点所在的地区
city 字符串 外部端点所在的城市
ASN int32 此端点所属外部网络的自治系统编号 (ASN)。

当然Google的内部的cluster和pod的信息也不隐藏了。

只能说Google把一个VPC日志能够包含的,VPC可能涉及的,可以透露的信息都提供了。

而且,大家都知道Google喜欢RTT,他同样提供一个

rtt_msec int64
延迟基于时间间隔测量,仅适用于 TCP 流。测量延迟是发送 SEQ 和接收相应的 ACK 之间所经历的时间。延迟结果是网络 RTT 与应用所耗用的时间之和。

这个,可以算是很多网管都感兴趣的信息吧。

回到国内的公有云,目前能够拿到详细信息的有aliyun[4]和华为云。

浓浓的AWS风格,这个也没错,毕竟云业务要做到简单,可靠,耐操。毕竟云用户中不懂JSON和递归结构的才是优质客户。

华为云:

没有使用AWS和aliyun那种直接,扁平的方式,而是和Google一样加了一个project的概念来提供VPC中的subnetwork的信息。

最后,看到公有云上面玩的这么花,其实硬件厂家是拒绝的。network switch肯定也可以做,但是如果能做到Google这样的per cluster和pod,估计在现有架构上就难了。因此就有了INT

这下子,一个协议横跨软硬件,功能估计是复杂了很多,但是接受程度如何呢?

原文标题:AWS、Azure、Google,VPC哪家强?

文章出处:【微信公众号:ssdfans】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    5835

    浏览量

    103219
  • vpc
    vpc
    +关注

    关注

    0

    文章

    17

    浏览量

    8415
  • AWS
    AWS
    +关注

    关注

    0

    文章

    393

    浏览量

    23926

原文标题:AWS、Azure、Google,VPC哪家强?

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    stm32 AWS云连接怎么使用?

    stm32 AWS云连接怎么使用,官方的扩展包看不明白
    发表于 04-01 07:21

    Azure®物联网的门锁示例

    电子发烧友网站提供《Azure®物联网的门锁示例.pdf》资料免费下载
    发表于 02-01 09:59 6次下载
    <b class='flag-5'>Azure</b>®物联网的门锁示例

    使用MM32F3270基于Azure RTOS事件标志组的应用

    使用MM32F3270基于Azure RTOS事件标志组的应用
    的头像 发表于 10-27 11:31 277次阅读
    使用MM32F3270基于<b class='flag-5'>Azure</b> RTOS事件标志组的应用

    使用MM32F3270基于Azure RTOS (ThreadX) 的移植

    使用MM32F3270基于Azure RTOS (ThreadX) 的移植
    的头像 发表于 10-27 10:15 470次阅读
    使用MM32F3270基于<b class='flag-5'>Azure</b> RTOS (ThreadX) 的移植

    AT32基于FreeRTOS的AWS MQTT客户端

    AT32基于FreeRTOS的AWS MQTT客户端建立一个MQTT客户端与 AWS IoT Core进行通讯,用户可以基于这个范例去开发属于自己的应用。
    发表于 10-26 06:03

    使用AWS Greengras和Lambdas 进行推论样品的情况

    概览 这一使用案例描述了使用AWS Greengras* 和Lambdas 进行推论样品的情况。 这些Lambdas 可以在云中创建、修改或更新,并且可以使用AWS Greengras从云到
    发表于 08-03 08:48

    Arm Keil Studio Cloud用户指南

    、Microsoft Azure IoT Hub和Google Cloud的连接器。Keil Studio Cloud是Mbed在线编译器的继承者,并允许您开发Mbed OS 5和6项目支持mbed
    发表于 08-02 08:34

    12. 09.Terraform AWS Advanced 进阶课程 - 提取 VPC 架构设置变量

    AWS
    充八万
    发布于 :2023年07月06日 00:16:25

    10. 08.Terraform AWS Advanced 进阶课程 - 快速构建高可用的 VPC 架构

    AWS
    充八万
    发布于 :2023年07月06日 00:15:16

    使用AWS的IoT环境站第2部分

    电子发烧友网站提供《使用AWS的IoT环境站第2部分.zip》资料免费下载
    发表于 07-04 14:26 0次下载
    使用<b class='flag-5'>AWS</b>的IoT环境站第2部分

    Azure Sphere I2C扫描仪

    电子发烧友网站提供《Azure Sphere I2C扫描仪.zip》资料免费下载
    发表于 06-20 10:16 0次下载
    <b class='flag-5'>Azure</b> Sphere I2C扫描仪

    微软发布 Azure Linux 正式版

    在内部使用 Azure Linux 两年,并从 2022 年 10 月开始公开预览后,微软本周终于正式提供其 Azure Linux。Azure Linux 是 Azure Kuber
    发表于 05-28 08:34

    STM32和Arduino对比,谁更厉害

    Arduino和STM32性能对比究竟谁更厉害呢?
    的头像 发表于 05-22 14:35 3444次阅读

    求分享连接esp8266 nodemcu与IoT AWS Mqtt服务的示例代码

    我认为,如果有人可以发布连接 esp8266 nodemcu 与 IoT AWS Mqtt 服务的示例代码,那将非常有价值。我已经通过互联网进行了研究,但我遇到的所有解决方案都使用 AWS
    发表于 04-27 07:23

    ESP8266如何使用MQTT TLS Connect MSFT Azure Device Provision Service(DPS) Cloud?

    使用ES8266 MQTT 连接MSFT Azure DPS 会无法连线,以下是我的AT CMD,想请问是否哪个步骤漏掉了,才导致不能连线? AT+MQTTUSERCFG=0,2,\"NULL
    发表于 04-24 06:06