低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

通过 VPC 流日志中额外的元数据加深对网络流量的了解

2019 年 9 月 18 日

通过 VPC 流日志中额外的元数据加深对网络流量的了解

通过 Amazon Virtual Private Cloud流日志,您可以捕获有关传入和传出 VPC 中网络接口的 IP 流量的信息。流日志数据可发布到 Amazon CloudWatch LogsAmazon Simple Storage Service (S3)


自 2015 年我们推出 VPC 流日志以来,您一直在使用它来处理各种使用案例,例如解决 VPC 中的连接问题、入侵检测、异常检测或归档,以实现合规性。迄今为止,VPC 流日志提供的信息包括源 IP、源端口、目标 IP、目标端口、操作(接受和拒绝)以及状态。启用后,VPC 流日志的条目显示效果如下。



虽然这些信息足以帮您理解大多数流,但需要额外的计算和查找才能将 IP 地址与实例 ID 匹配,或者需要猜测流的方向性才能得出有意义的结论。


今天,我们宣布可以在流日志记录中包含额外的元数据,以便更好地了解网络流量。通过减少从日志数据中提取有意义信息所需的计算或查找次数,经过充实的流日志将允许您简化脚本,或者完全消除后期处理的需要。


当您创建新的 VPC 流日志时,除现有字段外,您现在还可以选择添加以下元数据:


  • vpc-id:包含源弹性网络接口 (ENI) 的 VPC 的 ID。

  • subnet-id:包含源 ENI 的子网的 ID。

  • instance-id :与源接口关联的实例的 Amazon Elastic Compute Cloud (EC2) 实例 ID。如果 ENI 由 AWS 服务(如 AWS PrivateLinkNAT 网关网络负载均衡器等)设置,则此字段为“-

  • tcp-flags:在聚合期间内观察到的 TCP 标志的位掩码。例如,FIN 是 0x01 (1)、SYN 是 0x02 (2)、ACK 是 0x10 (16),SYN + ACK 是 0x12 (18) 等等(这些位在 RFC793“传输控制协议规范”的“控制位”部分中指定)。

  • 这让您可以理解谁发起或终止了连接。TCP 使用三次握手建立连接。连接方机器将 SYN 数据包发送到目的地,目的地使用 SYN + ACK 作为答复,最后,连接方机器发送 ACK。在流日志中,握手显示为两行,tcp-flags 值为 2 (SYN),18 (SYN + ACK)。 ACK 仅会在附带有 SYN 时报告(否则会造成过于严重的噪声,无法过滤掉)。

  • type:流量类型:IPV4、IPV6 或 Elastic Fabric Adapter

  • pkt-srcaddr:源的数据包级 IP 地址。您通常要将此字段与 srcaddr 结合使用,以区分流量流通过的中间层的 IP 地址,例如 NAT 网关。

  • pkt-dstaddr:目标的数据包级 IP 地址,与上一项类似,但是表示的是目标 IP 地址。


要创建 VPC 流日志,您可以使用 AWS 管理控制台AWS 命令行界面 (CLI)CreateFlowLogs API,并选择使用这些字段的哪些附加信息和使用顺序,例如:



您也可以使用 AWS 命令行界面 (CLI),如下所示:


Bash


$ aws ec2 create-flow-logs --resource-type VPC \                            --region eu-west-1 \                            --resource-ids vpc-12345678 \                            --traffic-type ALL  \                            --log-destination-type s3 \                            --log-destination arn:aws:s3:::sst-vpc-demo \                            --log-format '${version} ${vpc-id} ${subnet-id} ${instance-id} ${interface-id} ${account-id} ${type} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${pkt-srcaddr} ${pkt-dstaddr} ${protocol} ${bytes} ${packets} ${start} ${end} ${action} ${tcp-flags} ${log-status}'
# be sure to replace the bucket name and VPC ID !
{ "ClientToken": "1A....HoP=", "FlowLogIds": [ "fl-12345678123456789" ], "Unsuccessful": [] }
复制代码


内容经过充实的 VPC 流日志会传送到 S3 中。我们将自动添加必要的 S3 存储桶策略,以授权 VPC 流日志写入您的 S3 存储桶。VPC 流日志不会捕获网络接口的实时日志流,可能需要延迟几分钟才能开始收集数据并将数据发布到所选目标。您的日志最终会在 S3 上可用,路径为:s3://<bucket name>/AWSLogs/<account id>/vpcflowlogs/<region>/<year>/<month>/<day>/


从我的笔记本电脑(IP 地址为 90.90.0.200)到 EC2 实例的 SSH 连接如下所示:


3 vpc-exxxxxx2 subnet-8xxxxf3 i-0bfxxxxxxaf eni-08xxxxxxa5 48xxxxxx93 IPv4 172.31.22.145 90.90.0.200 22 62897 172.31.22.145 90.90.0.200 6 5225 24 1566328660 1566328672 ACCEPT 18 OK


3 vpc-exxxxxx2 subnet-8xxxxf3 i-0bfxxxxxxaf eni-08xxxxxxa5 48xxxxxx93 IPv4 90.90.0.200 172.31.22.145 62897 22 90.90.0.200 172.31.22.145 6 4877 29 1566328660 1566328672 ACCEPT 2 OK


172.31.22.145EC2 实例的私有 IP 地址,也就是您在实例上键入 ifconfig 时会看到的 IP 地址。 在聚合期间,所有标志都会执行“OR”(逻辑或)运算。如果连接时间很短,SYNFIN (3) 以及 SYN+ACKFIN (19) 可能都会在相同的行中设置。


创建流日志后,您不能再添加额外的字段,也不能再修改日志结构,以防意外破坏使用此数据的脚本。如需执行任何修改,您都必须删除并重新创建 VPC 流日志。您无需额外付费即可在 VPC 流日志中捕获额外的信息,只需按照标准 VPC 流日志定价付费即可,切记,在选择所有字段时,内容经过充实的 VPC 流日志记录可能会占用更多存储空间。 我们建议您仅选择与您的使用案例相关的字段。


目前可以使用 VPC 流日志的所有区域均可使用内容经过充实的 VPC 流日志,您可以立即开始体验这一新版功能。


补充说明:据团队说,他们还在竭力为这个日志添加更多元数据,请继续关注最新动态。


本文转载自 AWS 博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/learn-from-your-vpc-flow-logs-with-additional-meta-data/


2019 年 9 月 18 日 15:17521
用户头像

发布了 1249 篇内容, 共 33.1 次阅读, 收获喜欢 34 次。

关注

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

数字货币交易所系统开发解决方案,撮合交易平台搭建

WX13823153201

数字货币交易所系统开发

狼人杀背后的秘密,实时语音你不知道的那些事

anyRTC开发者

音视频 WebRTC 语音 RTC 安卓

第6周学习总结

饭桶

阿里内部首发1000页涨薪面试宝典:Spring+SpringMVC+MyBatis框架整合开发实战

Java架构追梦

Java 源码 架构 面试 SSM框架

架构师训练营第二周课后作业

天涯若海

极客大学架构师训练营

真香!天天996进不去阿里?看5年苦逼程序猿怎么逆袭阿里P7

小Q

Java 学习 架构 面试 程序猿

Vidyo独特的互联网适应性

dwqcmo

音视频 集成架构 解决方案 智能硬件

极客大学 - 架构师训练营 第六周作业

9527

深度对比Apache CarbonData、Hudi和Open Delta三大开源数据湖方案

华为云开发者社区

hadoop 开源 数据处理

为产业AI去障:联想的边缘突破

脑极体

gRPC服务注册发现及负载均衡的实现方案与源码解析

网管

go 负载均衡 gRPC etcd 服务注册与发现

天呐!价值2980元Java成神面试题竟在Github开源了

996小迁

Java 学习 架构 面试

码农会锁,synchronized 对象头结构(mark-word、Klass Pointer)、指针压缩、锁竞争,源码解毒、深度分析!

小傅哥

小傅哥 虚拟机 synchronized mark-word Klass Pointer

web worker的介绍和使用

程序那些事

多线程 Web Worker 异步模型 异步编程 web技术

企业级RPC框架zRPC

Kevin Wan

go RPC microser

在阿里内部,做Java到金字塔顶端的人平时都如何学习源码?

小Q

Java 学习 架构 面试 程序猿

ConcurrentHashMap核心原理,彻底给整明白了

AI乔治

Java 架构 分布式 线程

当 TiDB 与 Flink 相结合:高效、易用的实时数仓

Apache Flink

flink #TiDB

零基础IM开发入门(三):什么是IM系统的可靠性?

JackJiang

网络编程 即时通讯 IM

技术实践丨PostgreSQL开启Huge Page场景分析

华为云开发者社区

数据库 管理 内存

数字“异化”生存

脑极体

第6周作业

饭桶

直播带货大战在即:账号交易灰产猖獗

石头IT视角

频繁操作本地缓存导致YGC耗时过长

AI乔治

Java 架构 JVM GC

分析和解决JAVA 内存泄露的实战例子

AI乔治

Java 架构 JVM 内存泄露

Netty源码解析 -- 零拷贝机制与ByteBuf

binecy

Netty 源码剖析

如何获取变量token的值

测试人生路

软件测试 接口测试

极客大学 - 架构师训练营 第六周

9527

DeFi流动性挖矿系统开发技术方案

薇電13242772558

区块链 defi

解惑“高深”的Kafka时间轮原理,原来也就这么回事!

华为云开发者社区

中间件 消息队列

小白学算法:买卖股票的最佳时机!

王磊

Java 算法

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

通过 VPC 流日志中额外的元数据加深对网络流量的了解-InfoQ