Red Hat Training

A Red Hat training course is available for RHEL 8

53.3. カーネルの受け入れキューに追加された TCP 接続の表示

カーネルは、TCP 3 方向ハンドシェイクで ACK パケットを受け取ると、カーネルは接続の状態が ESTABLISHED に変更された後に SYN キューから accept キューに移動します。そのため、正常な TCP 接続だけがこのキューに表示されます。

tcpaccept ユーティリティーは、eBPF 機能を使用して、カーネルが accept キューに追加するすべての接続を表示します。このユーティリティーは、パケットをキャプチャーしてフィルタリングする代わりにカーネルの accept() 関数を追跡するため、軽量です。たとえば、一般的なトラブルシューティングには tcpaccept を使用して、サーバーが許可した新しい接続を表示します。

手順

  1. 次のコマンドを実行して、カーネルの 許可 キューの追跡を開始します。

    # /usr/share/bcc/tools/tcpaccept
    PID   COMM      IP RADDR         RPORT  LADDR    LPORT
    843   sshd      4  192.0.2.17    50598  192.0.2.1  22
    1107  ns-slapd  4  198.51.100.6  38772  192.0.2.1  389
    1107  ns-slapd  4  203.0.113.85  38774  192.0.2.1  389
    ...

    カーネルが接続を受け入れるたびに、tcpaccept は接続の詳細を表示します。

  2. Ctrl+C を押して、追跡プロセスを停止します。

関連情報

  • 詳細は、man ページの tcpaccept(8) を参照してください。
  • tcpaccept および例の詳細 は、/usr/share/bcc/tools/doc/tcpaccept_example.txt ファイルを参照してください。
  • tcpaccept8) がカーネルにアップロードする eBPF スクリプトを表示するには、/usr/share/bcc/tools/tcpaccept --ebpf コマンドを使用します。