Translated message

A translation of this page exists in English.

ノードへの SSH アクセスを備えた OpenShift 4 Pod 内で tcpdump を実行する

更新 -
  • ノードに SSH 接続します。

  • toolbox コマンドを使用してツールボックスコンテナーを起動します。

  • Pod からキャプチャーする場合は、次の手順に従ってください。
    OCP 4.8 以下の場合:

    # NAME=<pod-name>
    # NAMESPACE=<pod-namespace>
    # INTERFACE_NAME=<pod-interface-where-we-are-capturing> # e.g. "eth0" or "any"
    # pod_id=$(chroot /host crictl pods --namespace ${NAMESPACE} --name ${NAME} -q)
    # pid=$(chroot /host bash -c "runc state $pod_id | jq .pid")
    # nsenter -n -t $pid -- tcpdump -nn -i ${INTERFACE_NAME} -w /host/var/tmp/${HOSTNAME}_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap 
    

    OCP 4.9 以降の場合は、代わりに次の手順に従ってください。

    # NAME=<pod-name>
    # NAMESPACE=<pod-namespace>
    # INTERFACE_NAME=<pod-interface-where-we-are-capturing> # e.g. "eth0" or "any"
    # pod_id=$(chroot /host crictl pods --namespace ${NAMESPACE} --name ${NAME} -q)
    # ns_path="/host/$(chroot /host bash -c "crictl inspect $pod_id | jq '.info.runtimeSpec.linux.namespaces[]|select(.type==\"network\").path' -r")"
    # nsenter --net=${ns_path} -- tcpdump -nn -i ${INTERFACE_NAME} -w /host/var/tmp/${HOSTNAME}_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap 
    

    必要に応じて、Control-C でキャプチャーを終了します。

  • キャプチャーしたファイルをリスト表示します。

    # ls  /host/var/tmp/*.pcap
    
  • scp でノードからの tcpdump キャプチャーをコピーします (${PCAP_FILE} は前のステップの pcap ファイル名に置き換えます)。

    $ scp core@node-host-name-or-ip:/var/tmp/${PCAP_FILE} ${PCAP_FILE}
    

注記: support-tools コンテナーは、ホストファイルシステムを /host にマウントします。

Comments