VMware Cloud Foundation/NSX-T
TCPDUMP로 서버 측 header 값을 바로 확인
vmguru
2023. 1. 14. 23:05
간혹 네트워크 문제, 로드 밸런서 문제 등으로 테스트를 하다 보면, 서버 측에서의 들어오고 나가는 header 값을 확인할 필요가 있을 경우가 있다.
Windows에서는 UI로 확인을 하니 쉽게 확인을 하였으나, tcpdump를 linux에서 실행 시 너무 많은 정보가 표기되거나, 패킷 흐름에 대해서만 표기가 되거나 하기 때문에 불필요한 정보를 제외하고 header 값만을 보고 싶은 경우가 있을 수 있습니다.
아래와 같은 tcpdump 명령문을 통해서 우리는 header 값을 확인할 수 있습니다.
# header 값 확인
tcpdump -i ens192 -vvvs 1024 -l -A | egrep --line-buffered "^........(GET |HTTP\/|POST |HEAD )|^[A-Za-z0-9-]+: " | sed -r 's/^........(GET |HTTP\/|POST |HEAD )/\n\1/g'
# device 장치명 ens192는 사용하는 장치명으로 변경합니다.
tcpdump 실행으로 표시되는 값
유용한 tcpdump 명령문
tcpdump -nnvvS src 10.5.2.3 and dst port 3389
tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
# 특정 포트 제외
tcpdump -vv src mars and not dst port 22
# TCP RST flags
tcpdump 'tcp[13] & 4!=0'
tcpdump 'tcp[tcpflags] == tcp-rst'
# TCP SYN flags
tcpdump 'tcp[13] & 2!=0'
tcpdump 'tcp[tcpflags] == tcp-syn'
# SYN and ACK flags
tcpdump 'tcp[13]=18'
# ACK flags
tcpdump 'tcp[13] & 16!=0'
tcpdump 'tcp[tcpflags] == tcp-ack'
tcpdump 'tcp[13] & 1!=0'
tcpdump 'tcp[tcpflags] == tcp-fin'
tcpdump 'tcp[13] & 8!=0'
tcpdump 'tcp[tcpflags] == tcp-push'
tcpdump -vvAls0 | grep 'Set-Cookie|Host:|Cookie:'
# SSH session
tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D'
# DNS
tcpdump -vvAs0 port 53