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.

KokotapでPodのパケットキャプチャ

248 views

Published on

KokotapでPodのパケットキャプチャ

Published in: Software
  • Be the first to comment

  • Be the first to like this

KokotapでPodのパケットキャプチャ

  1. 1. kokotapでpodのパケットキャプチャ
  2. 2. Red Hat2 小西高之 Twitter: @leather_sole 2017年12月に福岡に戻ってきた(17年ぶり) レッドハット株式会社  シニアテクニカルサポートエンジニア   API管理製品(Red Hat 3scale API Management)担当
  3. 3. Red Hat オープンソースになりました  https://3scale.github.io/ 商用版  SaaS  オンプレミス Red Hat 3scale API Management 3
  4. 4. Red Hat オンプレミス構成 4 3scale Pod コミュニティ版: Pod Pod これをサポート
  5. 5. Red Hat コンテナ上の製品をサポートするので パケットキャプチャができるといいのでは? Red Hat 3scale API Management 5
  6. 6. Red Hat 試して紹介するだけでこのLTは完了!簡単! kokotapというのがあるらしい 6
  7. 7. Red Hat kokotap 0.5を試してみた 7 うまくいかない…
  8. 8. Red Hat 3月末に東京出張 8 オフィスに行ったら開発者(林さん)がすぐそばに座ってた 対面でバグレポート
  9. 9. Red Hat kokotap 0.61 リリース 9 $ ./kokotap --pod=<ターゲットPod> --mirrortype=both --dest-node=<受信側ノード> --vxlan-id=100 --kubeconfig=$HOME/.kube/config --namespace=<ターゲットNS> --vxlan-port=4889 | kubectl create -f - 受信側ノードにmirrorインターフェースができる: 48: mirror: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state n) $ tshark -i mirror -Y 'http' -n Capturing on 'mirror' 4 0.000098510 10.129.0.1 -> 10.129.1.108 HTTP 216 GET /check.txt HTTP/1.1 17 0.005460689 10.129.1.108 -> 10.129.0.1 HTTP 71 HTTP/1.1 200 OK (text/plain) 受信成功!
  10. 10. Red Hat 特にサービスメッシュを利用する場合など、Podから送信されるパケットは ノードから出るより前に書き換えられてしまうが、kokotapなら変更前のパケッ トを確認できる 特にNFV (Network functions virtualization) の実装で必要なので開発した 開発者に聞いたこと 10
  11. 11. Red Hat 仕組み --dest-node の場合 11 Kubernetes Node 1 ターゲットPod Kubernetes Node 2 Process eth0 iptable@pod Bridge eth0 eth0 mirror IF (vxlan) mirror IF (vxlan) kokotap sender pod kokotap receiver pod ノードでパケットキャプチャ できるようならこちらがお 手軽 tc mirred
  12. 12. Red Hat 仕組み --dest-ip の場合 12 Kubernetes Node 1 ターゲットPod 任意のサーバー Process eth0 iptable@pod Bridge eth0 eth0 mirror IF (vxlan) kokotap sender pod 手動で作成 mirror IF (vxlan) tc mirred
  13. 13. Red Hat vxlanのデフォルトポートが使用中だと --vxlan-port オプションが必要(特に OpenShiftの場合) 受信側でiptablesの設定が必要な場合がある 例 sudo iptables -A OPENSHIFT-FIREWALL-ALLOW -p udp -m udp --dport 4889 -m comment --comment "VXLAN incoming" -j ACCEPT AWS上だとSecurity Groupsの設定が必要になるのでやや面倒 注意点 13
  14. 14. Red Hat kokotap https://github.com/redhat-nfvpe/kokotap KubernetesでのPodのパケットキャプチャの方法について https://bit.ly/2FN5skW Troubleshooting On-Premise Kubernetes Network: Underlay, Overlay and Pod https://kccna18.sched.com/event/GrWr References 14
  15. 15. Thank you

×