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충분합니다.

관련 정보