Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

10分でわかる Cilium と XDP / BPF

1 883 vues

Publié le

2017年11月14日開催 『サイバーエージェントとさくらインターネットのインフラ談義』のスライド資料です

Publié dans : Technologie
  • Soyez le premier à commenter

10分でわかる Cilium と XDP / BPF

  1. 1. サイバーエージェントとさくらインターネットのインフラ談義 さくらインターネット株式会社 Shuji Yamada (山田 修司) @uzyexeNov 14, 2017 10分でわかる Cilium と XDP/BPF
  2. 2. Shuji Yamada • さくらインターネット入社10年目 • インフラエンジニアっぽい • コンテナホスティング Arukas 担当 • CoreOS + Mesos 派閥 (山田 修司) Trust me. I am Engineer _(┐¦_ ε:) 2
  3. 3. 3 (コンテナアプリとサービス間のネットワーク接続や 透過的なロードバランシング、セキュリティポリシーを提供) What is Cilium ? Cilium とは 読み方:スリィアム(意味:繊毛、まつげ) Linux Native, HTTP Aware Networking and Security for Containers.
  4. 4. Cilium BPF BPF BPF BPF CONTAINER CONTAINER CONTAINERNIC Bytecode Injection Policy
 Repository Cilium Monitor Container Orchestrator (Docker, Kubernates, Mesos) Plugins Cilium CLI Kernel Key-Value Store ( etcd / consul ) Cilium Daemon (Code Generator) Cilium Architecture
  5. 5. BPF ?
  6. 6. 6 強力なセキュリティ可視性と制御ロジックを 動的に挿入するLinuxカーネルのテクノロジ What is BPF ? BPF とは Linux enhanced Berkley Packet Filter BPF eBPF は BPF としばしば略される…
 (このスライドでも、eBPFのことをBPFと呼んでいる)
  7. 7. Kernel Application Network Hardware Driver BPF FORWARD DROP User Space Kernel Space NIC TCP / IP Stack XDP [ eXpress Data Path ] Driver に一番近い場所で通信制御 Network Socket
  8. 8. Network Socket Similar DPDK ? DPDK とは 違う DPDK DPDK Libraries NIC Kernel Driver BPF NIC TCP / IP Stack XDP Application Kernel Driver TCP / IP Stack Application Network Socket
  9. 9. Tracing Linux IO analysis BPF Features Tracing / Profiling 9 ネットワーキング可視化 異常を動的に追跡できる すべての送受信を走査せずトレース
  10. 10. BPF Features Power of Networking 10 Performance Power of Networking DDoS検知 DDoS mitigation パフォーマンス改善
 (XDP: eXpress Data Path) L7ポリシー制御 Software Defined Network
  11. 11. BPF Features Security 11 コードはカーネル内で安全に実行 (サンドボックスで安全性を静的にチェック) フィルタプログラムを安全に設定できる Security Sandboxing
  12. 12. Available BPFが対応している機能 12 •L3 forwarding (IPv6 & IPV4) •Host connectivity •Encapsulation
 (VXLAN/Geneve/GRE) •ICMPv6 generation •NDisc & ARP responder •Access Control •Port Mapping (TCP/UDP) •Connection tracking •L3/L4 Load Balancer •Statistics •Events (perf ring buffer) •Debugging framework •NAT46
  13. 13. Kernel Space Verifier + JIT BPF Traffic Control
 Ingress Network Device Network
 Stack BPF Traffic Control
 Egress Network Device Network Socket User Space BPF bytecodeSource Code LLVM/clang bpf syscall C, Go, P4 compile
  14. 14. まとめ 14
  15. 15. Summary • 従来の L3/L4 ネットワークポリシーの課題 • マイクロサービスにおいては不十分 • コンテナにおいても不十分 • IPアドレス(L3)とポート番号(L4)だけではポリシー不足 • HTTP / API (L7) の動的な認識が必要 15
  16. 16. SmartNIC • CPUコア山盛り + BPF なら大概のパケットは捌ける • でも、インフラ で CPU を使ったら負けだと思う
 (FPGAとかに処理をオフロードできないと正直キツイ) • 一部の FPGA based SmartNIC は XDP/BPF をサポート • SmartNIC を交換するだけで数年戦えるマシンができる? 16
  17. 17. • BPF / XDP • Linux の software-based networking を推進 • Cilium • コンテナに BPF / XDP 及び L7ポリシー を提供
 (コンテナに特別な対応は不要) • Smart NIC • FPGA に複雑なネットワーク処理をオフロード 17 Summary
  18. 18. Getting Started • The official vagrant box: $ git clone https://github.com/cilium/cilium
 $ cd cilium/examples/getting-started
 $ vagrant up 18
  19. 19. THANK YOU!
  20. 20. © SAKURA Internet Inc.

×