2つの条件を持つフィルターを作成したい:-
(src net 2a01:111:xxxx::/44)
_(tcp[((tcp[12] & 0xf0) >> 2)] = 0x15)
_両方のフィルターは個別に機能しますが、以下と組み合わせると:-
Sudo tcpdump -s 1024 -v -ni any "(src net 2a01:111:xxxx::/44) and (tcp[((tcp[12] & 0xf0) >> 2)] = 0x15)"
、
エラーで失敗します:
_tcpdump: expression rejects all packets
_。
これら2つのフィルターの論理ANDによって、フィルター処理されるパケットがどのように発生するかはわかりません。
tcpdump
のフィルター構文はlibpcap
からのものであり、libpcap
のTCP-over-IPv6のサポートは不完全です。したがって、tcp
キーワードを使用する場合角括弧式のプロトコルとして(_tcp[12]
_など)、TCP-over-IPv4にのみ適用されます。
pcap-filter(7)
のマニュアルページの奥深くから:
パケット内のデータにアクセスするには、次の構文を使用します。
プロト[expr:サイズ]
Protoは、ether、fddi、tr、wlan、ppp、slip、link、ip、arp、rarp、tcp、udp、icmp、ip6、またはradioのいずれかであり、インデックス操作のプロトコル層を示します。 (ether、fddi、wlan、tr、ppp、slip、linkはすべてリンク層を指します。radioは一部の802.11キャプチャに追加された「radioheader」を指します。) Tcp、udp、およびその他の上位層プロトコルタイプは、IPv6ではなくIPv4にのみ適用されることに注意してください(これは将来修正される予定です)。
(私の強調)