ノードへの 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).pcapOCP 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