私が理解しているように、IPv4の場合は、
そしてIPv6のために私は必要になります
DHCP関連のトラフィックをtcpdumpまたはWiresharkでキャプチャして、後で分析したいと考えています。
小さなキャプチャファイルを取得するためにフィルターをできるだけ具体的にしたいのですが、IPアドレスがまだ取得されていないことを確認するために使用されるような重要なパケットを見逃したくありません。
何か不足していますか?
私は次のPCAPフィルターで解決しました:
( udp and ( port 67 or port 68 ) )
or arp
or ( icmp and (icmp[icmptype] == 8 or icmp[icmptype] == 0 ) )
or ( udp and ( port 546 or port 547 ) )
or ( icmp6 and ( ip6[40] == 135 or ip6[40] == 136 ) )
or dst net ff02:0:0:0:0:1:ff00::/104
or dst Host ff01::1
or dst Host ff02::1
or dst Host ff02::1:2
or ( icmp6 and ( ip6[40] == 128 or ip6[40] == 129 ) )
最初の3行はDHCPv4、ARP(重複アドレス検出)、およびPINGをキャッチします。
4行目はDHCPv6をキャッチし、5行目から8行目はIPv6の重複アドレス検出をキャッチします。 9行目はDHCPv6エージェントのマルチキャストをキャッチし、最後の行はPING6用です。
もちろん、これはDHCPトラフィックに関連しない多くのパケットをキャッチします。これらは後で整理する必要があります。
おそらく、PINGおよびPING6トラフィックはまったく必要ありません。
フィルターport 67 or port 68
はDHCP会話自体を取得します。それは正しいことです。
フィルターarp
は、サブネット上のarpトラフィックをキャプチャする必要があります。これは本質的にブロードキャストであるため、サブネット上の任意のポートから捕捉できます。
そして、あなたがすでに概説したICMPリクエスト。
包括的なリストがあると思います。
DHCPはBOOTPを通信プロトコルと同様に使用するため、すべてのBOOTPトラフィックをフィルタリングする必要があります。これを見てください: