Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
(C)Copyright 1996-2015 SAKURA Internet Inc.
さくらインターネット研究所 大久保 修一
ohkubo@sakura.ad.jp
2015/10/16 flowops22
• 今回flowopsでは3回目になります。
• 2010/4/2 Flowops Meeting - 12th
– sFlowを用いたDoSアタック検出システム
• 2011/4/8 Flowops Meeting - 14th
– クラウド...
• お客様ネットワーク単位のインターネット向けトラ
フィックの流量計測
• お客様向けにコントロールパネルでの帯域グラフ表示
• 運用・管理目的での全契約の積み上げグラフ表示
• 将来的に転送量課金にも対応できるように
3
• 「さくらのクラウド」のオプションメニュー
• お客様毎に独立したVLANを払い出し、グローバルIPア
ドレスをPrefixで提供
• 帯域メニュー:100M, 500M, 1Gbps (2015/10/16現在)
• IPアドレスサイズ: ...
5
133.242.xx.xx/28
専用のVLANをアサイン
お客様サーバ(VM)
インターネット
インターネット向け
ゲートウェイ(ルータ)ここの帯域を
計測したい
サーバ間の通信は
除外したい
6
ToRスイッチ
コアスイッチ
ルータ
ホストサーバ
802.1Q VLAN
ここをVLAN単位で
トラフィック計測
できればよさそう
SVIを設定
SVI = Switched Virtual Interface
• ルータのSVIのsnmpカウンタを参照する案
7
$ snmpwalk -v2c -c XXXXXXXXX nn.nn.nn.nn ifHCInOctets
IF-MIB::ifHCInOctets.2 = Counter64: 58561...
• ルータでNetFlowを動かすのはどうか?
8 http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst4500/12-2/53SG/configuration/config/nf...
• コアL2スイッチで見るのはどうか?
• 物理インターフェイスのVLAN単位のsnmp MIBは存在
しない。
• sFlowはそこそこ動作!
• コアL2スイッチでsFlowを動かし、サンプリングを行
う方向で検討
• ただし、Ingres...
10
ToRスイッチ
コアスイッチ
ルータ
VCS構成
全ポートで
sFlowを有効化 sFlowコレクタ
sFlowレプリケーションプロセス
11
VIP
JSON RRD
pcap
トラフィック計測プロセス
フォレンジックプロセス
sFlowパケット
sFlowレプリケーションプロセス
JSON RRD
pcap
トラフィック計測プロセス
フォレ...
• sflowtoolコマンドを引数なしで起動すると、デコード
結果がテキストで表示される
12
startDatagram ================
datagramSourceIP 10.131.X.XX
datagramSize ...
13
クラウドコンパネ
API
JSONRRD pcap
APIサーババッチサーバsFlowコレクタ
VLANとリソースIDの
マッピング
お客様オペレータ
Web UI
運用ツール
HTTP
14
15
• sFlowサンプルをpcap形式で一定期間保存
• DoS攻撃などのセキュリティインシデント発生時に、
通信ログ解析
16
クラックされ外部に攻撃を仕掛けているとともに、
報復としてDoS攻撃を受けている仮想サーバのトラフィック例
17
• スイッチのファームウェアをバージョンアップしたら、VCS ISL
TrunkポートからのサンプルのsampledPacketSizeに正しい値が
入らなくなった。
18
ISL Trunk
vLAG
こっちは
大丈夫
ここが正し
くとれない...
• sflowtool –t でpcapに保存していたが、ISL Trunkポートから
のサンプルにTrillヘッダがついていて、tcpdumpのIPアドレス
フィルタがマッチしない。Innerのパケットを見たい。
19
headerBytes...
20
JANOG31.5 高嶋さんのスライドより
http://www.janog.gr.jp/meeting/janog31.5/program/ietf-trill-update.html
• 当方の環境ではテナント単位のトラフィックがSNMPで
取得できず、サンプリング(sFlow)を活用した。
• 精度はそこそこなので、あくまでも目安程度。
• 今後、(転送量)課金に適用するとなった場合は、もう
一工夫必要か?
• ファブリッ...
Upcoming SlideShare
Loading in …5
×

2015.10.16 Flowops22

http://www.flowops.jp/wiki.cgi?page=%A5%DF%A1%BC%A5%C6%A5%A3%A5%F3%A5%B0

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

2015.10.16 Flowops22

  1. 1. (C)Copyright 1996-2015 SAKURA Internet Inc. さくらインターネット研究所 大久保 修一 ohkubo@sakura.ad.jp 2015/10/16 flowops22
  2. 2. • 今回flowopsでは3回目になります。 • 2010/4/2 Flowops Meeting - 12th – sFlowを用いたDoSアタック検出システム • 2011/4/8 Flowops Meeting - 14th – クラウドインフラにおけるxFlowの応用について 2 一部商用環境に入れてみました
  3. 3. • お客様ネットワーク単位のインターネット向けトラ フィックの流量計測 • お客様向けにコントロールパネルでの帯域グラフ表示 • 運用・管理目的での全契約の積み上げグラフ表示 • 将来的に転送量課金にも対応できるように 3
  4. 4. • 「さくらのクラウド」のオプションメニュー • お客様毎に独立したVLANを払い出し、グローバルIPア ドレスをPrefixで提供 • 帯域メニュー:100M, 500M, 1Gbps (2015/10/16現在) • IPアドレスサイズ: /28~/24 • 帯域の変更は無停止で可能 4 以前トラフィックが わからなかった
  5. 5. 5 133.242.xx.xx/28 専用のVLANをアサイン お客様サーバ(VM) インターネット インターネット向け ゲートウェイ(ルータ)ここの帯域を 計測したい サーバ間の通信は 除外したい
  6. 6. 6 ToRスイッチ コアスイッチ ルータ ホストサーバ 802.1Q VLAN ここをVLAN単位で トラフィック計測 できればよさそう SVIを設定 SVI = Switched Virtual Interface
  7. 7. • ルータのSVIのsnmpカウンタを参照する案 7 $ snmpwalk -v2c -c XXXXXXXXX nn.nn.nn.nn ifHCInOctets IF-MIB::ifHCInOctets.2 = Counter64: 5856192896095311 IF-MIB::ifHCInOctets.3 = Counter64: 0 IF-MIB::ifHCInOctets.4 = Counter64: 51912730060 IF-MIB::ifHCInOctets.5 = Counter64: 30916826608353959 IF-MIB::ifHCInOctets.6 = Counter64: 0 IF-MIB::ifHCInOctets.7 = Counter64: 0 IF-MIB::ifHCInOctets.8 = Counter64: 0 IF-MIB::ifHCInOctets.9 = Counter64: 0 IF-MIB::ifHCInOctets.11 = Counter64: 0 IF-MIB::ifHCInOctets.17 = Counter64: 0 IF-MIB::ifHCInOctets.19 = Counter64: 500 IF-MIB::ifHCInOctets.20 = Counter64: 15613326 IF-MIB::ifHCInOctets.21 = Counter64: 294 IF-MIB::ifHCInOctets.22 = Counter64: 0 IF-MIB::ifHCInOctets.23 = Counter64: 0 IF-MIB::ifHCInOctets.24 = Counter64: 0 <snip> MIBは存在するが、正しくカウントされていない このあたりが SVIのMIB 物理IFは正しく 取れている
  8. 8. • ルータでNetFlowを動かすのはどうか? 8 http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst4500/12-2/53SG/configuration/config/nfswitch.html Supervisor Engine 6-E and Catalyst 4900M chassis does not support Netflow.
  9. 9. • コアL2スイッチで見るのはどうか? • 物理インターフェイスのVLAN単位のsnmp MIBは存在 しない。 • sFlowはそこそこ動作! • コアL2スイッチでsFlowを動かし、サンプリングを行 う方向で検討 • ただし、Ingressのサンプリングしかサポートしていな いため、Egressを見る場合は工夫が必要 9
  10. 10. 10 ToRスイッチ コアスイッチ ルータ VCS構成 全ポートで sFlowを有効化 sFlowコレクタ
  11. 11. sFlowレプリケーションプロセス 11 VIP JSON RRD pcap トラフィック計測プロセス フォレンジックプロセス sFlowパケット sFlowレプリケーションプロセス JSON RRD pcap トラフィック計測プロセス フォレンジックプロセス VIP Keepalivedで冗長化 2台のサーバで同じ集計プロセスを同時実行 Port6343 Port6343 Port26343 Port36343 Port26343 Port36343 Active Standby
  12. 12. • sflowtoolコマンドを引数なしで起動すると、デコード 結果がテキストで表示される 12 startDatagram ================ datagramSourceIP 10.131.X.XX datagramSize 1144 unixSecondsUTC 1408531174 datagramVersion 4 agent 10.131.X.XX packetSequenceNo 114032 sysUpTime 31177000 samplesInPacket 7 startSample ---------------------- sampleType_tag 0:1 sampleType FLOWSAMPLE sampleSequenceNo 303920 sourceId 0:10101 meanSkipCount 32768 samplePool 1368915968 dropEvents 0 inputPort 10101 outputPort 0 flowSampleType HEADER headerProtocol 1 sampledPacketSize 68 headerLen 64 headerBytes 9C-A3-BA-XX-XX-XX-70-81-05-XX-XX-XX-81-00-02-01-08-00-45-00-00- dstMAC 9ca3baXXXXXX srcMAC 708105XXXXXX decodedVLAN 513 decodedPriority 0 IPSize 50 ip.tot_len 44 srcIP XXX.XXX.XXX.XXX dstIP XXX.XXX.XXX.XXX IPProtocol 6 IPTOS 0 IPTTL 50 TCPSrcPort 80 TCPDstPort 10349 TCPFlags 18 extendedType SWITCH in_vlan 0 in_priority 0 out_vlan 0 out_priority 0 endSample ---------------------- これをperlでリアルタイムテ キスト処理して集計 2006/9/22 IRS10 で発表したものがベース http://irs.ietf.to/past/docs_20060922/
  13. 13. 13 クラウドコンパネ API JSONRRD pcap APIサーババッチサーバsFlowコレクタ VLANとリソースIDの マッピング お客様オペレータ Web UI 運用ツール HTTP
  14. 14. 14
  15. 15. 15
  16. 16. • sFlowサンプルをpcap形式で一定期間保存 • DoS攻撃などのセキュリティインシデント発生時に、 通信ログ解析 16 クラックされ外部に攻撃を仕掛けているとともに、 報復としてDoS攻撃を受けている仮想サーバのトラフィック例
  17. 17. 17
  18. 18. • スイッチのファームウェアをバージョンアップしたら、VCS ISL TrunkポートからのサンプルのsampledPacketSizeに正しい値が 入らなくなった。 18 ISL Trunk vLAG こっちは 大丈夫 ここが正し くとれない startDatagram ================================= datagramSourceIP 10.132.XX.XX datagramSize 348 unixSecondsUTC 1441098132 datagramVersion 5 agentSubId 0 agent 10.132.XX.XX packetSequenceNo 125707593 sysUpTime 2170975112 samplesInPacket 1 startSample ---------------------- sampleType_tag 0:3 sampleType FLOWSAMPLE sampleSequenceNo 13003896 sourceId 0:404127792 meanSkipCount 8192 samplePool 3448700928 dropEvents 0 inputPort 404127792 outputPort 403931173 flowBlock_tag 0:1 flowSampleType HEADER headerProtocol 1 sampledPacketSize 224 strippedBytes 4 headerLen 220 <snip> なぜか224(Bytes) 以上の値が入らない
  19. 19. • sflowtool –t でpcapに保存していたが、ISL Trunkポートから のサンプルにTrillヘッダがついていて、tcpdumpのIPアドレス フィルタがマッチしない。Innerのパケットを見たい。 19 headerBytes 50-EB-1A-XX-XX-XX-50-EB-1A-XX-XX-XX-81-00-00-00-22-F3- 00-3F-00-01-04-0A-00-00-0C-9F-F0-01-9C-A3-BA-XX-XX-XX- 81-00-01-1D-08-00-45-00-05-<snip> Outer MAC Trill Header Inner MAC 0x22F3 = TRILL VLAN ID IPv4 IPv4 Header sub strip_trill { my $packet_bin = shift; my $ethertype1 = unpack('n', substr($packet_bin, 12, 2)); return $packet_bin unless ($ethertype1 == 0x8100); my $ethertype2 = unpack('n', substr($packet_bin, 16, 2)); return $packet_bin unless ($ethertype2 == 0x22f3); return substr($packet_bin, 24); } headerBytesのダンプからPcap ファイルを出力するプログラム を作成し、0x22f3だったら先頭 24バイトを削って保存する処理 を追加。
  20. 20. 20 JANOG31.5 高嶋さんのスライドより http://www.janog.gr.jp/meeting/janog31.5/program/ietf-trill-update.html
  21. 21. • 当方の環境ではテナント単位のトラフィックがSNMPで 取得できず、サンプリング(sFlow)を活用した。 • 精度はそこそこなので、あくまでも目安程度。 • 今後、(転送量)課金に適用するとなった場合は、もう 一工夫必要か? • ファブリック技術を用いている装置でのサンプリング は要注意!? 21

×