tcpdumpで「BOOTP / DHCP、request」をフィルタリングする方法は?

tcpdumpで「BOOTP / DHCP、request」をフィルタリングする方法は?

tcpdumpには「BOOTP / DHCP、Request」がたくさんありますが、これをフィルタリングしたいと思います。

arpをフィルタリングするのは簡単です。

tcpdump -nni eth0 not arp

何についてBOOTP/DHCP, Request

以下を試しましたが、機能しません

$ sudo tcpdump -nni eth0 not bootp
tcpdump: can't parse filter expression: syntax error
                                                                                                                
$ sudo tcpdump -nni eth0 not dhcp
tcpdump: can't parse filter expression: syntax error
                                                                                                               
$ sudo tcpdump -nni eth0 not dhcpd
tcpdump: can't parse filter expression: syntax error

正しいtcpdumpとは何ですか?

ベストアンサー1

長い話を短く

tcpdumpの「BOOTP / DHCP」プロトコルのポート「ニックネーム」はですbootps。たとえば、DHCP パケットのみをフィルタリングするには、次のようにします。

sudo tcpdump -n -i eth0 port bootps

または除外してください。

sudo tcpdump -n -i eth0 not port bootps

詳細

ヒントとして、特定のポート/プロトコルの「別名」を取得するには、次のファイルを確認してください/etc/services

$ cat /etc/services | grep bootp
bootps      67/udp
bootpc      68/udp

bootpsサーバーポートとbootpcクライアントポートの両方が使用されます。

技術的には両方を使用する必要があると思うかもしれませんがtcpdump -n -i eth0 port bootps or bootpc(たとえば、実際には、すべてのDHCPパケットは送信元または宛先でポート67を使用します(一部のパケットには送信元ポート67と宛先ポート68があり、他のパケットには送信元ポート68があります)。 )。および宛先ポート68)ポート67)。したがって、通常はフィルタリングでport bootps十分です。

おすすめ記事