728x90
반응형
tracert와 traceroute의 차이점은 무엇이 있을까?
필드에서 대화할때 위의 차이점을 모르면 대화가 어렵습니다.
단순하게 생각하면 윈도우(tracert), 리눅스,유닉스(traceroute)라고 할 수 있지만 리눅스에서도 tracert를 제공하기 때문에
단순 OS의 차이는 아닙니다.
근본적인 차이점은 icmp를 사용하느냐 udp를 사용하느냐의 차이라고 할 수 있습니다.
tracert: icmp기반 프로그램. icmp-8(echo)를 보낸뒤 icmp-0(echo reply)를 확인하여 동작여부를 확인합니다.
응답이 있다면 3번 시도가 default임
그렇기에 icmp-0 을 차단한 경우 경로추적이 불가능합니다.
traceroute: udp기반 프로그램. default로 옵션설정을 안했을때 33434/udp부터 7번 즉, 33439/udp까지 보내게됩니다.
해당 udp 포트가 닫혀있을때 icmp-3(Destination Unreachable)이 오는것을 아이디어로 만들어졌습니다.
만약 os에서 33434/udp를 오픈한 상태라면 어떻게 될까?
처음 한번은 icmp-3이 돌아오지 않는걸 확인 할 수 있습니다.
이것은 방화벽에서 33434/udp를 drop시켰을때도 동일합니다.
icmp를 차단한 상태로 테스트한 화면입니다.
icmp echo를 계속 보내고있는 tracert의 모습
icmp가 차단되도 정상 동작하는 traceroute의 모습
실무에서는 traceroute -T도 많이 사용하는데요. 80/TCP포트가 열려있다면 더욱 빠르고 정확한 결과를 얻을 수 있습니다.
해당 -T 옵션은 80/TCP로 Flags [SEW]를 보낸뒤 syn,ack이 오는것을 확인하는 방법입니다.
SEW는 SYN ECE CWR의 약자입니다.
SYN은 새로운 연결을 시작한다는 이야기이고
E는 ECE는 Explicit Congestion Notification라는 TCP혼잡제어 기능을 사용할 수 있다고 알려주는 것 입니다.
R는 CWR(Congestion Window Reduced )을 말하며 슬라이딩윈도우의 윈도우 사이즈를 줄여달라는 뜻입니다.
네이버의 임의의 아이피로 테스트한 화면
일부 tcpdump 캡쳐화면
또한 traceroute에서 ICMP로 라우팅을 확인해야 할 때도 있는데 이때는 traceroute -I 를 사용하면 됩니다.
결론으로 traceroute기본옵션으로 안되는 상황은 모든 udp를 drop시키던지 서버에서 icmp-3을 보내지 못하게 설정하던지, 라우팅이 잘 못 되어야 합니다.
728x90
반응형
'Web Programming' 카테고리의 다른 글
MVC Pattern (0) | 2018.09.05 |
---|---|
슬랙(Slack)의 장점과 한계점 (0) | 2018.09.04 |
프레임워크와 라이브러리의 차이 (0) | 2018.08.29 |
캐시와 쿠키의 차이 (0) | 2018.08.29 |
WebSocket이란? (0) | 2018.08.29 |