tracert 명령이 동일한 IP 주소를 반환하는 이유는 무엇입니까?
이 문제가 7년째 계속되고 있는데...
저도 이 문제 때문에 헷갈리다가 차근차근 확인해보니 Tracert의 원리부터 시작해야겠다는 생각이 들었습니다. :
"라우터가 TTL이 0 또는 1인 IP 데이터그램을 수신하면 라우터는 더 이상 데이터를 전달하지 않고 직접 폐기하고 소스 호스트에 ICMP "timeout" 메시지를 보냅니다. Tracert 프로그램의 핵심은 이 에코입니다. ICMP 메시지의 IP 헤더의 소스 주소는 라우터의 IP 주소입니다.
소스는 먼저 TTL=1로 데이터 패킷을 보냅니다. 통과한 첫 번째 라우터가 데이터 패킷을 수신한 후 자동으로 TTL이 1씩 감소하고, TTL이 0이 된 후 라우터는 해당 패킷을 폐기하고 ICMP TTL-expired(ICMP 유형 11)를 생성합니다. 호스트가 데이터그램을 수신하면 호스트에 시간 초과 데이터그램을 보냅니다. 그런 다음 TTL=2인 UDP 데이터그램을 대상 호스트에 보낸 다음 두 번째 라우터가 호스트에 ICMP 데이터그램을 보내도록 자극합니다. 이러한 방식으로 Traceroute는 모든 라우터를 가져옵니다. IP를 전송하고 TTL 만료 메시지 장치의 IP 주소를 전송하고 도메인 이름 확인을 수행합니다.” (/archive/index.php/t-223955.html)
Host (PC0) --- Router0 --- Router1 --- Router2
그리고 LAN에서는 NAT를 사용하므로 ISP 간 경로는 반드시 공용 IP 주소를 사용할 필요는 없습니다. PC0은 ttl=1로 데이터 패킷을 Route0으로 보내고 Route0은 ttl=로 응답합니다. 2. 데이터 패킷은 다음 경로로 보내야 하고 Router1이 응답해야 하는데 Private IP이기 때문에 Router0에서 NAT를 하고 그 IP를 NAT IP로 변환해서 PC0으로 응답하므로 두 홉 사이의 동일한 상황을 참조하십시오( http://www.xj123.info/1744.html)
참고: 대부분은 따옴표이며, 비표준적인 것들은 뒤에 따옴표로 표시됩니다. 괄호로 묶인 URL로.