Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CiliumにおけるGeneveプロトコルを用いたDSRの実装と導入

Cybozu
December 14, 2023

 CiliumにおけるGeneveプロトコルを用いたDSRの実装と導入

CloudNative Days Tokyo 2023

Track C 2023/12/12 17:20-18:00
https://event.cloudnativedays.jp/cndt2023/talks/2012

Tomoki Sugiura / Tomoya Terashima

Cybozu

December 14, 2023
Tweet

More Decks by Cybozu

Other Decks in Technology

Transcript

  1. Ciliumとは ▌CNIプラグイン l コンテナのネットワーク疎通 ▌豊富な機能 l NetworkPolicy l L4/L7 LB

    l kube-proxy置換(脱iptables) l etc… ▌eBPFをデータプレーンに活⽤ ▌CNCF Graduated Project 4
  2. CiliumにおけるDSRの実現① IP Option 17 IP Optionを使ったDSRの流れ ▌1. ルータが中間ノードを選択 ▌2. 中間ノードがIP

    Optionを付ける ▌3. Podが存在するノードに転送 ▌4. 送信元をロードバランサの IPアドレス・ポートに変換 ▌5. 直接クライアントに返答
  3. Necoで発⽣した問題の原因 ▌Layer2 slow path l 未知のIP Optionが付与されたパケット はソフトウェアで処理される ▌ソフトウェア処理の流量制限の閾値を超え てしまいIP

    Option付きのパケットがドロップ されていた 29 However, some data center routers pass packets with unknown IP op7ons to so8ware processing called “Layer 2 slow path”. Those routers drop the packets if the amount of packets with IP op7ons exceeds a given threshold, which may significantly affect network performance. Ciliumのドキュメントにも記載されている
  4. Neco環境におけるGeneveモードの導⼊ – 障害 ▌⭕ DSR対象の通信パケットは 送信元IPでIdentity解決 l ipcacheを参照 ▌cilium/ciliumにPRを提出 l

    “Fix source identity determination for DSR with Geneve-dispatch” cilium/cilium #29155 49 cilium/bpf/bpf_overlay.c DSR対象か判定 ipcacheを⾒る Identityに代⼊ ipcache(BPFマップ) IPアドレスとIdentityが紐付け
  5. まとめ・これから ▌CiliumにおけるDSRの実装 l 1. IP Option l Layer2 slow path

    l 2. IPIP l cilium/ciliumに取り込まれず l 3. Geneve l 万事解決︕ ▌NecoではGeneveモードの検証を完了 ▌順次、開発・検証・本番環境に導⼊する予定 50
  6. 参考資料 ▌cilium/cilium ▌cybozu-go/coil ▌External Traffic Policy ▌Cilium Document – DSR

    with IPv4 Option and IPv6 Extension Header ▌What is eBPF? An Introduction and Deep Dive into the eBPF Technology 51