Download presentation
Presentation is loading. Please wait.
1
TCP/IP 네트워크 제 8장 Traceroute 프로그램 정보통신연구실
2
목 차 8.1 개요 8.2 Traceroute 프로그램 동작 8.3 LAN 출력 8.4 WAN 출력
목 차 8.1 개요 8.2 Traceroute 프로그램 동작 8.3 LAN 출력 8.4 WAN 출력 8.5 IP 소스 라우팅 옵션 8.6 요약 정보통신연구실
3
8.1 개요 Van Jacobson 작성 한쪽 호스트에서 다른 호스트로 가는 IP 데이터그램의 경로 확인
정보통신연구실
4
8.2 Traceroute 프로그램 동작 traceroute를 개발한 이유
모든 라우터가 레코드 라우트 옵션을 지원하지 않고 특정 경로에 레코드 옵션을 이용할 수 없는 경우가 존재 tracerout는 중계 라우터가 있는 특수하거나 추가적인 기능을 요구하지 않음 레코드 라우트는 단방향 옵션 traceroute 목적지의 UDP 모듈의 동작만을 요구하기 때문에 특수한 서버 응용을 요구하지 않음 IP 헤더의 옵션에 할당되어 있는 공간이 부족 traceroute는 ICMP와 IP 헤더의 TTL 필드 사용 정보통신연구실
5
8.2 Traceroute 프로그램 동작(cont’d)
TTL 필드 : 라우팅 도중에 데이터그램이 무한 루프에 들어가는 것을 방지하는 것이 목적 송신자가 임의의 값을 초기화하는 8비트 필드 현재는 주로 64로 설정 최대값 255 Hop counter 역할을 하여 라우터에 의해 TTL 필드가 1씩 감소 TTL = 0 or 1:다른 호스트 전송 불가 발신지 호스트에게 ICMP “time exceeded” 메시지를 전송 ICMP 메시지에는 발신지 주소로서 router의 IP주소가 포함 정보통신연구실
6
8.2 Traceroute 프로그램 동작(cont’d)
목적지 호스트에 TTL이 1인 IP 데이타그램을 전송 첫번째 라우터는 TTL을 감소시킨후 데이터그램을 버리고, ICMP 시간초과 메세지 전송 라우터가 경로에 있다는 것을 인지 Traceroute는 TTL=2로 하여 다음 IP 주소를 알게 함 목적지 호스트에 데이터그램이 도착할때까지 반복 목적지 호스트에 도착하면 ICMP 시간초과 메시지를 생성하지 않음 정보통신연구실
7
8.2 Traceroute 프로그램 동작(cont’d)
목적지호스트 도착 판단 근거. 목적지 UDP 포트에 목적지 호스트 응용이 그 포트를 사용하지 않을만큼 큰 번호 선택. 목적지 호스트의 UDP 모듈은 ICMP “Port unreachable” 에러 생성 ICMP 메시지를 Time Exceeded와 Port unreachable로 나누어 작업 정보통신연구실
8
8.3 LAN 출력 Traceroute 실행 slip bsdi sun svr4 gateway SLIP internet
서브넷 .65 .66 .35 .33 .34 이더넷, 서브넷 이더넷, 서브넷 gateway .4 정보통신연구실
9
8.3 LAN 출력(cont’d) 목적지 이름과 IP 주소 30 hops max : TTL30이상 증가시키지 않음
svr4 % traceroute slip traceroute to slip ( ), 30 hops max, 40 byte packets 1 bsdi ( ) 20 ms 10 ms 10ms 2 slip ( ) ms ms 120ms 목적지 이름과 IP 주소 30 hops max : TTL30이상 증가시키지 않음 40 byte packet: 20 byte : IP header 8 byte : UDP 12 byte: 사용자 데이터(데이터그램이 전송될 때마다 증가한 순서번호, 송신TTL의 복사본, 데이터 그램이 송신된 시간을 포함) 정보통신연구실
10
8.3 LAN 출력(cont’d) 호스트 또는 라우터 이름과 IP주소 TTL 값을 갖는 3개의 데이터그램을 전송
각각의 되돌아온 ICMP 메시지에 대한 왕복시간 TTL = 1 이고 ICMP 메시지는 20, 10, 10ms TTL = 2 이고 ICMP 메시지는 각 120ms 왕복시간은 Traceroute 프로그램에서 해당 라우터까지의 RTT 합계 정보통신연구실
11
8.3 LAN 출력(cont’d) 1 0.0 who-has bsdi tell svr4
arprep;y bsdi is-at 0:0c0:6f:2d:40 svr > slip.33435: udp 12 [ttl 1] bsdi>svr4: icmp:time exceeded in-transit (0.0655) svr > slip.33436: udp 12 [ttl 1] (0.0013) bsdi >svr4: icmp:time exceeded in-transit (0.0140) svr > slip.33437: udp 12 [ttl 1] (0.0012) bsdi >svr4: icmp:time exceeded in-transit (0.0322) svr > slip.33438: udp 12 (0.1079) bsdi >svr4: icmp:slip udp port unreachable (0.0608) svr > slip.33439: udp 12 (0.1079) bsdi >svr4: icmp:slip udp port unreachable (0.0143) svr > slip.33440: udp 12 (0.1079) bsdi >svr4: icmp:slip udp port unreachable svr4에서 slip까지의 trancetoute에 대한 tcpdump 출력 정보통신연구실
12
TTL=2이 3개의 데이터그램이 마지막 목적지에 도달해서 ICMP”Port unreachable” 메시지 생성
8.3 LAN 출력(cont’d) Traceroute에 대한 tcpdump의 출력 목적지 UDP 포트는 33435에서 시작해서, 데이터그램이 보내질때마다 1씩 증가 UDP 데이터그램은 12byte 사용자데이터 포함 IP 데이터그램이 TTL=1을 가지고 있을 때 [ttl1] 코멘트 출력 데이터그램이 어떤 오류가 있다는 것을 경고 데이터그램이 최종목적지까지 도착하지 않음을 경고 ICMP “Time exceeded” 메시지 생성 TTL=2이 3개의 데이터그램이 마지막 목적지에 도달해서 ICMP”Port unreachable” 메시지 생성 정보통신연구실
13
8.3 LAN 출력(cont’d) Traceroute의 주의점
지금 이용한 경로가 계속해서 이용된다는 것과 또는 연속된 IP 데이터 그램이 같은 라우터를 경유한다는 것을 보장 할수 없음 프로그램이 실행중에 경로가 변환하면 Traceroute는 주어진 TTL의 새로운 IP주소를 출력하기 때문에. 돌아오는 ICMP 메세지가 택한 경로와 traceroute에 의해 송신된 UDP 데이터그램의 경로가 같다는 보장이 없음 출력왕복시간,송신된 데이터그램과 돌아온 데이터그램의 전송시간을 정확하게 반영하지 않음. 정보통신연구실
14
8.3 LAN 출력(cont’d) 되돌아온 ICMP 메시지의 발신지 IP주소는 라우터의 UDP 데이터그램이 도착한 인터페이스의 IP주소. Slip % traceroute svr4 trcerote to svr4 ( ), 30hops max, 40byte packets 1 bsdi ( )110ms 110ms 110ms svr (140, 252, 13, 34) 110ms 120ms 110ms 정보통신연구실
15
Traceroute에 의해 출력된 인터페이스 ID
8.3 LAN 출력(cont’d) 네크워크1 if1 if4 네크워크3 네크워크2 라우터1 라우터2 if2 if3 Traceroute에 의해 출력된 인터페이스 ID 네트워크1에서 네트워크 3으로의 라우터에 대한 IP주소 : if1, if3 네트워크3에서 네트워크 1으로의 라우터에 대한 IP주소 : if4, if2 네트워크 ID if2 = if3, if1, if4 정보통신연구실
16
호스트 sun 으로부터 nic.ddn.mil에 대한 traceroute
8.4 WAN 출력 sun % traceroute nic.ddn.mil traceroute to nic.ddn.mil ( ), 30 hops max, 40 byte packets 1 netb.tuc.noao.edu ( ) ms ms ms 2 gateway.tuc.noao.edu ( ) ms ms ms 3 butch.telcom.arizona.edu ( ) ms ms ms 4 Gabby.telcom.Arizona.EDU ( ) ms ms ms 5 NSIgate.telcom.Arizona.EDU ( ) ms ms ms 6 JPL1.NSN.NASA.GOV ( ) ms ms ms 7 JPL3.NSN.NASA.GOV ( ) ms ms ms 8 GSFC3.NSN.NASA.GOV ( ) ms ms ms 9 GSFC8.NSN.NASA.GOV ( ) ms ms ms 10 SURA2.NSN.NASA.GOV ( ) ms ms ms 11 Nsn-FIX-pe.sura.net ( ) ms ms ms 12 GSI.NSN.NASA.GOV ( ) 293 ms ms ms 13 NIC.DDN.MIL ( ) ms ms ms 호스트 sun 으로부터 nic.ddn.mil에 대한 traceroute 정보통신연구실
17
8.4 WAN 출력(cont’d) 호스트 sun으로부터 망정보센터(nic)까지의 데이터 그램
tuc.noao.edu => telcom.arizona.edu => nsn.nasa.gov => sura.net => nic.ddn.mil TTL=6 : 두번째 RTT = 590 ms, 나머지(234와 262ms) IP 라우팅이 동적임을 의미 TTL = 3 : 첫번째 RTT = 204이고 TTL = 2 : 첫번째 RTT = 233 보다 적다 송신호스트 에서부터 라우터까지의 전체 시간이기 때문에 정보통신연구실
18
8.5 IP 소스 라우팅 옵션 Sourse routing의 기본 개념 송신자가 라우터 경로를 지정
source routing의 형태 strict source routing 송신자가 IP 데이터 그램이 통과하는 정확한 경로를 지정 소스 라우트가 지정한 전송 목적지인 네트워크 상의 라우터가 존재하지 않는 경우에 ICMP “source router failed” 에러가 반송 loose source routing 송신자는 데이터그램이 경유하는 IP 주소 목록 지정 경우에 따라 데이터 그램은 목록에 주소가 지정하지 않은 주소를 갖는 라우터를 지날수도 있음 정보통신연구실
19
IP header에서 source route option의 형식
8.5 IP 소스 라우팅 옵션(cont’d) 39 바이트 코드 길이 포인트 IP 주소#1 IP 주소#2 ……. IP 주소#9 1 1 1 4 바이트 4 바이트 4 바이트 IP header에서 source route option의 형식 레코드라우트 : IP주소공간을 할당해서 그 목록을 비운다음에 라우터가 다음 엔트리할당. 최대 9개까지 주소저장이 가능한 공간할당. 소스라우트 : IP주소의 목록은 IP 데이터그램을 송신하기전에 할당 필요한 공간만을 할당해서 9개이하의 IP주소의 번호를 초기화 IP주소의 목록 : IP데이터그래미을 송신하기전에 할당 코드 0x83 : loose source routing 0x89 : strict source routing 길이, 포인터 : RR option과 동일함 정보통신연구실
20
소스 라우트 옵션 흐름 8.5 IP 소스 라우팅 옵션(cont’d)
송신 호스트 응용으로부터 소스 라우트 목록을 받아서 첫번째 엔트리를 제거하고, 남은 엔트리를 왼쪽으로 하나씩 이동하며 첫번째 목적지 주소를 목록의 마지막 엔트리에 삽입, 포인터는 계속해서 목록의 첫째 엔트리를 지칭 (즉 포인터 값=4) 각 라우터는 자기 자신이 데이터그램의 목적지 주소인지 여부 확인후 다르면 데이터 그램은 정상적인 형태를 전송 라우터는 자신이 목적지이고 포인터가 그 길이보다 길지 않으면 (1) 목록에 있는 다음 주소는 데이터 그램의 목적지가 되고 (2) 송신 인터페이스에 대응하는 IP주소를 지금 사용한 발신지 주소로 치환하고 (3) 포인터는 4만큼 증가 정보통신연구실
21
8.5 IP 소스 라우팅 옵션(cont’d) s 포인터 값(#) = 4, 8, 12, 16
{#R1, R2, R3} 목적지 = R1 {#R2, R3, D} 목적지 = R2 {R1, #R3, D} 목적지 = R3 {R1, #R2, D} 목적지 = D {R1, R2, R3#} s R2 R1 R3 D R1 IP소스 라우팅의 예 포인터 값(#) = 4, 8, 12, 16 길이 = 15(3 개의 IP 주소 + 3개의 오버헤드) 정보통신연구실
22
8.5 IP 소스 라우팅 옵션(cont’d) 느슨한 소스라우팅의 traceroute 예 Traceroute의 -g 옵션
중계라우터를 loose source routing지정 8개까지 옵션가능 느슨한소스라우팅을 경우에 따라 디폴트라우트보다 더 많은 홉을 가질수있다 일반적인 routing과의 비교 default route : 13 hops, 평균 RTT = 322 ms loose source routing option : 16 hops, 평균 RTT = 350 ms 경우에 따라서 default route가 더 적은 홉을 가질수 있다. 정보통신연구실
23
8.5 IP 소스 라우팅 옵션(cont’d) Sun % tracetoute g 192.31.39.21 nic.ddn.mil
traceroute to nic.ddn.mil( ), 30 hops max, 40 bytes packets 1 netb.tuc.noao.edu(140, ) 259 ms 256ms 235ms 2 butch.telcom.arizone.edu ( ) 234ms 228ms 234ms 3 Gabby, Telcom,Arizona.EDU ( ) 234ms 257ms 233ms 4 enssl42. UT.westnet.net ( ) 294ms 288ms 295ms 5 t3-2. Denver-cnss97.t3.ans.net ( ) 294ms 288ms 293ms 6 t3-3. Denver-cnss96.t3.ans.net ( ) 294ms 288ms 294ms 7 t3-1. St-Louis-cnss80.t3.ans.net ( ) 294ms 318ms 294ms 8 *t3-1. Chicago-cnss24.t3.ans.net ( ) 318ms 295ms 9 t3-2. Cleveland-cnss40.t3.ans.net ( ) 319ms 318ms 324ms 10 t3-1. New-York-cnss32.t3.ans.net ( ) 324ms 318ms 324ms 11 t3-1. Washington-DC-cnss56.t3.ans.net ( ) 353ms 348ms 325ms 12 t3-0. Washington-DC-cnss58.t3.ans.net ( ) 348ms 347ms 325ms 13 t3-0. Enss145.t3.ans.net ( ) 353ms 348ms 325ms 14 nsn-FIX-pe.sura.net ( ) 353ms 348ms 325ms 15 GSI.NSN.NASA.GOV ( ) 353ms 348ms 354ms 16 NIC.DDN.MIL ( ) 354ms 347ms 354ms NSFNET 경유하는 느슨한 소스 라우트를 이용하여 nic.ddn.mil로 traceroute를 실행 정보통신연구실
24
실패된 엄격한 소스 라우트의 traceroute
8.5 IP 소스 라우팅 옵션(cont’d) 엄격한 소스 라우팅의 trace route 예 Traceroute의 -G 옵션 : 엄격한라우팅 지정 송신자가 IP 데이터그램이 통과하는 정확한 경로 지정 ex) sun % traceroute -G netb -G gateway -G gabby westgate traceroute to westgate ( ), 30 hope max, 40 byte packets. netb ( ) 272ms 257ms 26ms gateway ( ) 263ms 259ms 234ms gateway ( ) 263ms !s * 235ms !s 실패된 엄격한 소스 라우트의 traceroute 정보통신연구실
25
8.5 IP 소스 라우팅 옵션(cont’d) TTL = 3 !S : ICMP “소스라우트 실패” 에러 메시지
(*) : 조사에 대한 응답이 없음을 의미, 즉 gateway에서 gabby로의 직접 연결 경로가 없기 때문에 ICMP “source route failed” 에러 메시지를 전송 느슨한 소스 라우팅을 이용한 traceroute 왕복 A에서 B의 경로와 B에서 A로의 경로가 동일하다고 보장 할 수는 없다. 어떤 목적지를 느슨한 소스라우트 발신지 호스트를 최종 목적지로 하여 느슨한 소스라우트를 지정. 정보통신연구실
26
8.5 IP 소스 라우팅 옵션(cont’d) Sun % traceroute -g bruno.cs.colorado.edu sun
tracerouute to sun ( ), 30 hops max, 40 byte packets 1 netb.tuc.noao.edu ( ) ms 227ms 233ms 2 gateway.tuc.noao.edu ( ) 233ms 229ms 234ms 3 butch.telcom.arizona.edu ( ) 234ms 229ms 234ms 4 Gabby.Telcom.Arizona.EDU ( ) 233ms 231ms 234ms 5 NSIgate.telcom.Arizona.EDU ( ) 294ms 258ms 234ms 6 JPL1.NSN.NASA.GOV ( ) 264ms 258ms 264ms 7 JPL2.NSN.NASA.GOV ( ) 264ms 258ms 264ms 8 NCAR.NSN.NASA.GOV ( ) 324ms * ms 9 cu-gw.ucar.edu ( ) 294ms 318ms 294ms 10 engr-gw.Colorado.EDU ( ) 294ms 288ms 294ms 11 bruno.cs.colorado.edu ( ) 293ms 317ms 294ms 12 engr-gw-ot.cs.colorado.edu ( ) 293ms 317ms 294ms 13 cu-gw.Colorado. EDU ( ) 294ms 318ms 294ms 14 enss.ucar.edu ( ) 323ms 318ms 294ms 15 t3-1.Denver-cnss97.t3.ans.net ( ) 293ms 288ms 384ms 16 t3-0.enss142..t3.ans.net ( ) 293ms 288ms 294ms 17 Gabby.Telcom.Arizona.EDU ( ) 294ms 288ms 294ms 18 Butch.Telcom.Arizona.EDU ( ) 293ms 317ms 294ms 19 gateway.tuc.noao.edu ( ) 294ms 289ms 294ms 20 netb.tuc.noao.edu ( ) 324ms 321ms 294ms 21 sun.tuc.noao.edu ( ) 534ms 529ms 564ms 비대칭적인 라우팅 경로를 보여주는 traceroute 예 정보통신연구실
27
8.6 요약 traceroute는 TCP/IP 네트워크의 관리도구 traceroute프로그램 동작
traceroute를 실행하여 LAN과 WAN에서 IP 소스 라우트를 조사 IP 소스라우트옵션은 strict source routing 와 loose source routing으로 구분 느슨한 소스라우팅을 이용한 traceroute 왕복 정보통신연구실
Similar presentations