SlideShare uma empresa Scribd logo
1 de 19
EC2上でパケットをミラーリング
安川 健太
Solutions Architect
Amazon Data Services Japan
自己紹介
名前
• 安川 健太
• アマゾンデータサービスジャパン
ソリューションアーキテクト
好きなAWSのサービス
• CloudFormation
ソーシャル
• @thekentiest
• www.facebook.com/kenta.yasukawa
趣味
• 車いじり
• パケットキャプチャ
本日の発表
EC2の上でレイヤーの低いところでいろいろ試してみた
体験談を皆さんと共有
• せいぜいL3とかL2とかくらいです
• L1までは行きません
(行けません)
ある日こんな質問を頂きました
パケットキャプチャ型のアクセス解析
• HTTPのリクエストとレスポンスをスヌーピングしてWebアクセ
ス解析
• 一般的にはポートミラーリングしてパケットをキャプチャ
パケットキャプチャ型のアク
セス解析ソフトを使っている
システムがあってAWS移行考
えてるんだけどどうにかなら
ない?
古いシステムの移行だから出来
れば手を入れたくないんだよね
とはいえ、EC2ではポートミラーリングも何も。
というわけで、考えてみる
こうすれば通過するパケット全部取れるけど
Availability Zone Availability Zone
Web Web
パケットコレクタ兼リバースプロキシ
とてもこんなシステム本番に投入できません!
ならばWebサーバに仕込むか
Webサーバからパケットの複製をコレクタに送る
Availability Zone Availability Zone
Web Web
DNS RR等
コレクタ
• これならコレクタ障害時もサービスは継続可
• コレクタはENIの付け替え等でフェイルオーバー可
• コレクタのパケット取りこぼしリスクはポートミラーリングでも同様
どうするのがシンプルか考えてみる
iptablesのteeターゲットを使えばパケットを集めるのは簡単
• リクエストパケットはちゃんと取れそう
• But, レスポンスパケットは無意味なデータに
ならパケットコピーしてL2で送りつけるか
• Classic EC2じゃ無理
• VPCだとしてもサブネット越えられない罠
GET Web コレクタ
fe:ff:ff:ff:ff:ff …
GET
200OK200OK
クライアントIPアド
レスが残らない
L3トンネル掘るしかないですかね
とはいえ
• オーバーヘッドは最小限にしたい
• 特別なソフトウェアは入れたくない
• カーネルで処理を完結させたいのが人情
IP-in-IPにしましょうか
IP-in-IPでコレクタにパケットを集める
図にしてみると
コレクタ
Web 1
Web 2
GET
192.168.1.10
192.168.1.100 192.168.1.101
200OK
ENIのSource/Destinationチェックは外すこと!
200OK
GET
192.168.1.10 192.168.1.20
GET
GET
192.168.1.10 192.168.1.20
Dst Src
IP-in-IPトンネルを作って
tcでパケットのコピーを流し込むよう設定
Webサーバ側
コレクター側
# ip tunnel add ipip0 mode ipip remote 192.168.1.20 local 192.168.1.10 ttl 64
# ip tunnel add ipip0 mode ipip remote 192.168.1.10 local 192.168.1.20 ttl 64
# tc qdisc add dev eth0 root handle 10: prio
# tc filter add dev eth0 parent 10: prio 10 protocol ip u32 match ip protocol 6
0xff match ip sport 80 0xffff flowid 10:1 action mirred egress mirror dev ipip0
# tc qdisc add dev eth0 ingress
# tc filter add dev eth0 parent ffff: prio 10 protocol ip u32 match ip protocol 6
0xff match ip dport 80 0xffff flowid 10:1 action mirred egress mirror dev ipip0
早速検証開始!
コレクタで tcpdump -n -i ipip0
手元のPCで curl http://<web serverのIPアドレス>
カーネルが刺さる。。。
パケットキャプチャしてみると
# tcpdump -n -i ipip0
listening on ipip0, link-type RAW (Raw IP), capture size 65535
bytes
06:20:11.189928 IP 54.248.89.97.43276 > 192.168.1.133.http:
Flags [S], seq 3142846341, win 14600, options [mss
1460,sackOK,TS val 41435115 ecr 0,nop,wscale 4], length 0
06:20:11.189961 unknown ip 0
なんだこれ?
もう少し詳しく見てみると
あれ?IPヘッダがこ
んなところから始
まってる
14 octets
なんだ、Ethernetの
ヘッダじゃないか
ご丁寧に次がIPヘッ
ダって書いてあるし
ループバックや物理I/Fには出ないトンネルI/Fだけに出る挙動 … バグ?
仕方ないのでコードを書く
元のIPパケットを新しいIPパケットのペイロードに
新しいIPヘッダを生成
プロトコル番号を4 (= IP in IP)にセット
期待通り動きました
やってみまーす!
よかったらこちら
で検証などを
ところでVPCならL2も自由になります
VPCならいろいろL2を使ったトリックが使
えそう
L2 NAT (ebtablesとか)
DSR (Direct Server Return)
なんちゃってブロードキャスト/マルチキャスト
• ブロードキャストEthernetフレームをユニキャストで送り直す
まとめ
IP-in-IPを使えばパケットを集めてキャプチャするよう
なユースケースも実現出来る
但し、IP-in-IP + tc on Linuxは要注意
VPCならL2まで自由が利く
人から聞いた「クラウドだと○○は出来ない」は鵜呑みに
せず試してみるのが大事
EC2上でパケットをミラーリング

Mais conteúdo relacionado

Mais procurados

[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
Amazon Web Services Japan
 

Mais procurados (20)

20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS
 
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
 
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
 
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
 
AWS Black Belt Tech シリーズ 2015 - AWS Data Pipeline
AWS Black Belt Tech シリーズ 2015 - AWS Data PipelineAWS Black Belt Tech シリーズ 2015 - AWS Data Pipeline
AWS Black Belt Tech シリーズ 2015 - AWS Data Pipeline
 
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
 
20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation 20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
 
Amazon Pinpoint を中心としたカスタマーエンゲージメントの全体像 / Customer Engagement On Amazon Pinpoint
Amazon Pinpoint を中心としたカスタマーエンゲージメントの全体像 / Customer Engagement On Amazon PinpointAmazon Pinpoint を中心としたカスタマーエンゲージメントの全体像 / Customer Engagement On Amazon Pinpoint
Amazon Pinpoint を中心としたカスタマーエンゲージメントの全体像 / Customer Engagement On Amazon Pinpoint
 
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハックAWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
AWS Black Belt Online Seminar 2017 Amazon Pinpoint で始めるモバイルアプリのグロースハック
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
 
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
 
20180509 AWS Black Belt Online Seminar Amazon GuardDuty
20180509 AWS Black Belt Online Seminar Amazon GuardDuty20180509 AWS Black Belt Online Seminar Amazon GuardDuty
20180509 AWS Black Belt Online Seminar Amazon GuardDuty
 
いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
 
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
 

Semelhante a EC2上でパケットをミラーリング

Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
Masakazu Muraoka
 
EC2でマルチキャスト
EC2でマルチキャストEC2でマルチキャスト
EC2でマルチキャスト
Kenta Yasukawa
 
Ec2でwebサイトを運用するメリット
Ec2でwebサイトを運用するメリットEc2でwebサイトを運用するメリット
Ec2でwebサイトを運用するメリット
Katsuhiro Masaki
 
実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン
Hiroyasu Suzuki
 
Mroongaを選んだ理由と
ちょっと嬉しかった話
Mroongaを選んだ理由と
ちょっと嬉しかった話Mroongaを選んだ理由と
ちょっと嬉しかった話
Mroongaを選んだ理由と
ちょっと嬉しかった話
Terui Masashi
 

Semelhante a EC2上でパケットをミラーリング (20)

Multicastが出来ないならUnicastすればいいじゃない
Multicastが出来ないならUnicastすればいいじゃないMulticastが出来ないならUnicastすればいいじゃない
Multicastが出来ないならUnicastすればいいじゃない
 
What's Amazon Athena? - re:Growth 2016 Osaka
What's Amazon Athena? - re:Growth 2016 OsakaWhat's Amazon Athena? - re:Growth 2016 Osaka
What's Amazon Athena? - re:Growth 2016 Osaka
 
JAWSUG architecture-crowler
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowler
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
 
EC2でマルチキャスト
EC2でマルチキャストEC2でマルチキャスト
EC2でマルチキャスト
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
 
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
 
Ec2でwebサイトを運用するメリット
Ec2でwebサイトを運用するメリットEc2でwebサイトを運用するメリット
Ec2でwebサイトを運用するメリット
 
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスScraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
 
メディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearchメディアコンテンツ向け記事検索DBとして使うElasticsearch
メディアコンテンツ向け記事検索DBとして使うElasticsearch
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
 
Zynga
ZyngaZynga
Zynga
 
Aws privte20110406 arai
Aws privte20110406 araiAws privte20110406 arai
Aws privte20110406 arai
 
ENGINEER WORK!!
ENGINEER WORK!!ENGINEER WORK!!
ENGINEER WORK!!
 
20141220 clrh etw
20141220 clrh etw20141220 clrh etw
20141220 clrh etw
 
Elastic StackでWebサーバのログ解析を始めた件について
Elastic StackでWebサーバのログ解析を始めた件についてElastic StackでWebサーバのログ解析を始めた件について
Elastic StackでWebサーバのログ解析を始めた件について
 
サーバーレスでアンケートフォームを作ってみた
サーバーレスでアンケートフォームを作ってみたサーバーレスでアンケートフォームを作ってみた
サーバーレスでアンケートフォームを作ってみた
 
実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン
 
Mroongaを選んだ理由と
ちょっと嬉しかった話
Mroongaを選んだ理由と
ちょっと嬉しかった話Mroongaを選んだ理由と
ちょっと嬉しかった話
Mroongaを選んだ理由と
ちょっと嬉しかった話
 

EC2上でパケットをミラーリング