![tcpdump에서 "BOOTP/DHCP,request"를 필터링하는 방법은 무엇입니까?](https://linux55.com/image/189786/tcpdump%EC%97%90%EC%84%9C%20%22BOOTP%2FDHCP%2Crequest%22%EB%A5%BC%20%ED%95%84%ED%84%B0%EB%A7%81%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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
충분합니다.