제 8 장

27
1 Computer Network Lab. 제 8 제 Traceroute 제제제제

description

제 8 장. Traceroute 프로그램. 목 차. 8.1 개요 8.2 Traceroute 프로그램 동작 8.3 LAN 출력 8.4 WAN 출력 8.5 IP 소스 라우팅 옵션 8.6 요약. 8.1 개요. Van Jacobson 작성 한쪽 호스트에서 다른 호스트로 가는 IP 데이터그램의 경로 확인 IP 소스 라우트 옵션 이용 가능. 8.2 Traceroute 프로그램 동작. traceroute 를 개발한 이유 - PowerPoint PPT Presentation

Transcript of 제 8 장

Page 1: 제  8  장

1Computer Network Lab.

제 8 장

Traceroute 프로그램

Page 2: 제  8  장

2Computer Network Lab.

목 차

8.1 개요

8.2 Traceroute 프로그램 동작

8.3 LAN 출력

8.4 WAN 출력

8.5 IP 소스 라우팅 옵션

8.6 요약

Page 3: 제  8  장

3Computer Network Lab.

8.1 개요

Van Jacobson 작성

한쪽 호스트에서 다른 호스트로 가는 IP

데이터그램의 경로 확인

IP 소스 라우트 옵션 이용 가능

Page 4: 제  8  장

4Computer Network Lab.

8.2 Traceroute 프로그램 동작 traceroute 를 개발한 이유

모든 라우터가 레코드 라우트 옵션을 지원하지 않고 특정 경로에 레코드 옵션을 이용할 수 없는 경우가 존재 tracerout 는 중계 라우터가 있는 특수하거나 추가적인

기능을 요구하지 않음 레코드 라우트는 단방향 옵션

traceroute 목적지의 UDP 모듈의 동작만을 요구하기 때문에 특수한 서버 응용을 요구하지 않음

IP 헤더의 옵션에 할당되어 있는 공간이 부족 traceroute 는 ICMP 와 IP 헤더의 TTL 필드 사용

Page 5: 제  8  장

5Computer Network Lab.

TTL 필드 : 라우팅 도중에 데이터그램이 무한 루프에 들어가는 것을 방지하는 것이 목적 송신자가 임의의 값을 초기화하는 8 비트 필드 현재는 주로 64 로 설정 최대값 255 Hop counter 역할을 하여 라우터에 의해 TTL

필드가 1 씩 감소 TTL = 0 or 1: 다른 호스트 전송 불가

발신지 호스트에게 ICMP “time exceeded” 메시지를 전송ICMP 메시지에는 발신지 주소로서 router 의 IP 주소가

포함

8.2 Traceroute 프로그램 동작 (cont’d)

Page 6: 제  8  장

6Computer Network Lab.

Traceroute 의 동작목적지 호스트에 TTL 이 1 인 IP 데이타그램을 전송첫번째 라우터는 TTL 을 감소시킨후 데이터그램을 버리고 , ICMP 시간초과 메세지 전송

라우터가 경로에 있다는 것을 인지

8.2 Traceroute 프로그램 동작 (cont’d)

Traceroute 는 TTL=2 로 하여 다음 IP 주소를 알게 함목적지 호스트에 데이터그램이 도착할때까지 반복목적지 호스트에 도착하면 ICMP 시간초과 메시지를 생성하지 않음

Page 7: 제  8  장

7Computer Network Lab.

8.2 Traceroute 프로그램 동작 (cont’d)

목적지호스트 도착 판단 근거 . 목적지 UDP 포트에 목적지 호스트 응용이 그

포트를 사용하지 않을만큼 큰 번호 선택 . 목적지 호스트의 UDP 모듈은 ICMP “Port unreachab

le” 에러 생성ICMP 메시지를 Time Exceeded 와 Port unreachable 로

나누어 작업

Page 8: 제  8  장

8Computer Network Lab.

8.3 LAN 출력

internet

slip bsdi sun svr4SLIP

서브넷.65 .66

.35 .33 .34

.140.252.1.29

이더넷 , 서브넷 140.252.13.32

이더넷 , 서브넷 140.252.1

gateway

.4

.140.252.104.1

Traceroute 실행

Page 9: 제  8  장

9Computer Network Lab.

8.3 LAN 출력 (cont’d)

svr4 % traceroute slip

traceroute to slip (140.252.13.65), 30 hops max, 40 byte packets

1 bsdi (140.252.13.35) 20 ms 10 ms 10ms

2 slip (140.252.13.65) 120 ms 120 ms 120ms

목적지 이름과 IP 주소 30 hops max : TTL30 이상 증가시키지 않음 40 byte packet:

20 byte : IP header 8 byte : UDP 12 byte: 사용자 데이터 ( 데이터그램이 전송될 때마다 증가한

순서번호 , 송신 TTL 의 복사본 , 데이터 그램이 송신된 시간을 포함 )

Page 10: 제  8  장

10Computer Network Lab.

호스트 또는 라우터 이름과 IP 주소TTL 값을 갖는 3 개의 데이터그램을 전송각각의 되돌아온 ICMP 메시지에 대한 왕복시간TTL = 1 이고 ICMP 메시지는 20, 10, 10ms

TTL = 2 이고 ICMP 메시지는 각 120ms

왕복시간은 Traceroute 프로그램에서 해당 라우터까지의 RTT 합계

8.3 LAN 출력 (cont’d)

Page 11: 제  8  장

11Computer Network Lab.

8.3 LAN 출력 (cont’d)

1 0.0 who-has bsdi tell svr42 0.000586 arprep;y bsdi is-at 0:0c0:6f:2d:403 0.00.067 svr4.42804 > slip.33435: udp 12 [ttl 1]4 0.004325 bsdi>svr4: icmp:time exceeded in-transit5 0.069810 (0.0655) svr4.42804 > slip.33436: udp 12 [ttl 1]6 0.071149 (0.0013) bsdi >svr4: icmp:time exceeded in-transit7 0.085162 (0.0140) svr4.42804 > slip.33437: udp 12 [ttl 1]8 0.086375 (0.0012) bsdi >svr4: icmp:time exceeded in-transit9 0.118608 (0.0322) svr4.42804 > slip.33438: udp 12 10 0.226464 (0.1079) bsdi >svr4: icmp:slip udp port 33438 unreachable11 0.287296 (0.0608) svr4.42804 > slip.33439: udp 12 12 0.395230 (0.1079) bsdi >svr4: icmp:slip udp port 33439 unreachable13 0.409504 (0.0143) svr4.42804 > slip.33440: udp 12 14 0.517430 (0.1079) bsdi >svr4: icmp:slip udp port 33440 unreachable

svr4 에서 slip 까지의 trancetoute 에 대한 tcpdump 출력

Page 12: 제  8  장

12Computer Network Lab.

Traceroute 에 대한 tcpdump 의 출력 목적지 UDP 포트는 33435 에서 시작해서 ,

데이터그램이 보내질때마다 1 씩 증가 UDP 데이터그램은 12byte 사용자데이터 포함 IP 데이터그램이 TTL=1 을 가지고 있을 때 [ttl1]

코멘트 출력데이터그램이 어떤 오류가 있다는 것을 경고데이터그램이 최종목적지까지 도착하지 않음을 경고ICMP “Time exceeded” 메시지 생성

TTL=2 이 3 개의 데이터그램이 마지막 목적지에 도달해서 ICMP”Port unreachable” 메시지 생성

8.3 LAN 출력 (cont’d)

Page 13: 제  8  장

13Computer Network Lab.

Traceroute 의 주의점 지금 이용한 경로가 계속해서 이용된다는 것과

또는 연속된 IP 데이터 그램이 같은 라우터를 경유한다는 것을 보장 할수 없음프로그램이 실행중에 경로가 변환하면 Traceroute 는

주어진 TTL 의 새로운 IP 주소를 출력하기 때문에 .

돌아오는 ICMP 메세지가 택한 경로와 traceroute에 의해 송신된 UDP 데이터그램의 경로가 같다는 보장이 없음출력왕복시간 , 송신된 데이터그램과 돌아온

데이터그램의 전송시간을 정확하게 반영하지 않음 .

8.3 LAN 출력 (cont’d)

Page 14: 제  8  장

14Computer Network Lab.

8.3 LAN 출력 (cont’d)

Slip % traceroute svr4

trcerote to svr4 (140.252.13.30), 30hops max, 40byte packets

1 bsdi (140.252.13.66)110ms 110ms 110ms

svr (140, 252, 13, 34) 110ms 120ms 110ms

되돌아온 ICMP 메시지의 발신지 IP 주소는

라우터의 UDP 데이터그램이 도착한 인터페이스의

IP 주소 .

Page 15: 제  8  장

15Computer Network Lab.

라우터 1 라우터 2

네트워크 1 에서 네트워크 3 으로의 라우터에 대한 IP주소 :

if1, if3 네트워크 3 에서 네트워크 1 으로의 라우터에 대한 IP주소 :

if4, if2 네트워크 ID

if2 = if3, if1, if4

Traceroute 에 의해 출력된 인터페이스 ID

8.3 LAN 출력 (cont’d)

네크워크 1 if1 네크워크 3네크워크 2

if3if2

if4

Page 16: 제  8  장

16Computer Network Lab.

8.4 WAN 출력

sun % traceroute nic.ddn.mil traceroute to nic.ddn.mil (192.112.36.5), 30 hops max, 40 bytepackets 1 netb.tuc.noao.edu (140.252.1.183) 218 ms 227 ms 233 ms 2 gateway.tuc.noao.edu (140.252.1.183) 233 ms 229 ms 233 ms 3 butch.telcom.arizona.edu (140.252.104.2) 204 ms 228 ms 234 ms 4 Gabby.telcom.Arizona.EDU (128.196.128.1) 234 ms 228 ms 234 ms 5 NSIgate.telcom.Arizona.EDU (192.80.43.3) 203 ms 228 ms 234 ms 6 JPL1.NSN.NASA.GOV (128.161.88.2) 234 ms 590 ms 262 ms 7 JPL3.NSN.NASA.GOV (192.100.15.3) 238 ms 223 ms 234 ms 8 GSFC3.NSN.NASA.GOV (128.161.3.33) 293 ms 318 ms 324 ms 9 GSFC8.NSN.NASA.GOV (192.100.13.8) 294 ms 318 ms 294 ms 10 SURA2.NSN.NASA.GOV (128.161.88.2) 234 ms 590 ms 262 ms 11 Nsn-FIX-pe.sura.net (192.80.252.253) 294 ms 318 ms 294 ms 12 GSI.NSN.NASA.GOV (128.161.252.2) 293 ms 318 ms 324 ms 13 NIC.DDN.MIL (192.112.36.5) 324 ms 318 ms 324 ms

호스트 sun 으로부터 nic.ddn.mil 에 대한 traceroute

Page 17: 제  8  장

17Computer Network Lab.

8.4 WAN 출력 (cont’d)

호스트 sun 으로부터 망정보센터 (nic) 까지의 데이터 그램 tuc.noao.edu => telcom.arizona.edu => nsn.nasa.gov => s

ura.net => nic.ddn.mil TTL=6 : 두번째 RTT = 590 ms, 나머지 (234 와 262m

s) IP 라우팅이 동적임을 의미 TTL = 3 : 첫번째 RTT = 204 이고 TTL = 2 : 첫번째

RTT = 233 보다 적다송신호스트 에서부터 라우터까지의 전체 시간이기 때문에

Page 18: 제  8  장

18Computer Network Lab.

8.5 IP 소스 라우팅 옵션

Sourse routing 의 기본 개념 송신자가 라우터 경로를 지정 source routing 의 형태

strict source routing

- 송신자가 IP 데이터 그램이 통과하는 정확한 경로를 지정- 소스 라우트가 지정한 전송 목적지인 네트워크 상의 라우터가

존재하지 않는 경우에 ICMP “source router failed” 에러가 반송loose source routing

- 송신자는 데이터그램이 경유하는 IP 주소 목록 지정- 경우에 따라 데이터 그램은 목록에 주소가 지정하지 않은

주소를 갖는 라우터를 지날수도 있음

Page 19: 제  8  장

19Computer Network Lab.

레코드라우트 : IP 주소공간을 할당해서 그 목록을 비운다음에 라우터가 다음 엔트리할당 . 최대 9 개까지 주소저장이 가능한 공간할당 .

소스라우트 : IP 주소의 목록은 IP 데이터그램을 송신하기전에 할당 .

필요한 공간만을 할당해서 9 개이하의 IP 주소의 번호를 초기화IP 주소의 목록 : IP 데이터그래미을 송신하기전에 할당코드

0x83 : loose source routing

0x89 : strict source routing

길이 , 포인터 : RR option 과 동일함

39 바이트

코드 길이 포인트 IP 주소 #1 IP 주소 #2 IP 주소 #9…….1 1 1 4 바이트 4 바이트 4 바이트

IP header 에서 source route option 의 형식

8.5 IP 소스 라우팅 옵션 (cont’d)

Page 20: 제  8  장

20Computer Network Lab.

소스 라우트 옵션 흐름송신 호스트 응용으로부터 소스 라우트 목록을 받아서 첫번째 엔트리를 제거하고 , 남은 엔트리를 왼쪽으로 하나씩 이동하며 첫번째 목적지 주소를 목록의 마지막 엔트리에 삽입 , 포인터는 계속해서 목록의 첫째 엔트리를 지칭 ( 즉 포인터 값 =4)각 라우터는 자기 자신이 데이터그램의 목적지 주소인지 여부 확인후 다르면 데이터 그램은 정상적인 형태를 전송라우터는 자신이 목적지이고 포인터가 그 길이보다 길지 않으면

(1) 목록에 있는 다음 주소는 데이터 그램의 목적지가 되고(2) 송신 인터페이스에 대응하는 IP 주소를 지금 사용한 발신지 주소로 치환하고(3) 포인터는 4 만큼 증가

8.5 IP 소스 라우팅 옵션 (cont’d)

Page 21: 제  8  장

21Computer Network Lab.

s R1

목적지 = D

{#R1, R2, R3}

목적지 = R1

{#R2, R3, D}

목적지 = R2

{R1, #R3, D}

목적지 = D

{R1, R2, R3#}

포인터 값 (#) = 4, 8, 12, 16

길이 = 15(3 개의 IP 주소 + 3 개의 오버헤드 )

R1R2 R3 D

IP 소스 라우팅의 예

8.5 IP 소스 라우팅 옵션 (cont’d)

목적지 = R3

{R1, #R2, D}

Page 22: 제  8  장

22Computer Network Lab.

느슨한 소스라우팅의 traceroute 예 Traceroute 의 -g 옵션

중계라우터를 loose source routing 지정 8 개까지 옵션가능 느슨한소스라우팅을 경우에 따라 디폴트라우트보다 더

많은 홉을 가질수있다

8.5 IP 소스 라우팅 옵션 (cont’d)

일반적인 routing 과의 비교default route : 13 hops, 평균 RTT = 322 msloose source routing option : 16 hops, 평균 RTT = 350 ms경우에 따라서 default route 가 더 적은 홉을 가질수 있다 .

Page 23: 제  8  장

23Computer Network Lab.

8.5 IP 소스 라우팅 옵션 (cont’d)

Sun % tracetoute g 192.31.39.21 nic.ddn.miltraceroute to nic.ddn.mil(192.112.36.5), 30 hops max, 40 bytes packets1 netb.tuc.noao.edu(140,252.1.183) 259 ms 256ms 235ms2 butch.telcom.arizone.edu (140.252.104.2) 234ms 228ms 234ms3 Gabby, Telcom,Arizona.EDU (128.196.128.1) 234ms 257ms 233ms4 enssl42. UT.westnet.net (192.31.39.21) 294ms 288ms 295ms5 t3-2. Denver-cnss97.t3.ans.net (140.222.97.3) 294ms 288ms 293ms6 t3-3. Denver-cnss96.t3.ans.net (140.222.96.4) 294ms 288ms 294ms7 t3-1. St-Louis-cnss80.t3.ans.net (142.222.80.2) 294ms 318ms 294ms8 *t3-1. Chicago-cnss24.t3.ans.net (140.222.24.2) 318ms 295ms9 t3-2. Cleveland-cnss40.t3.ans.net (140.222.40.3) 319ms 318ms 324ms10 t3-1. New-York-cnss32.t3.ans.net (140.222.32.2) 324ms 318ms 324ms11 t3-1. Washington-DC-cnss56.t3.ans.net (140.222.56.2) 353ms 348ms 325ms12 t3-0. Washington-DC-cnss58.t3.ans.net (140.222.58.1) 348ms 347ms 325ms13 t3-0. Enss145.t3.ans.net (140.222.145.1) 353ms 348ms 325ms14 nsn-FIX-pe.sura.net (192.80.214.253) 353ms 348ms 325ms15 GSI.NSN.NASA.GOV (128.161.252.2) 353ms 348ms 354ms16 NIC.DDN.MIL (192.112.36.2) 354ms 347ms 354ms

NSFNET 경유하는 느슨한 소스 라우트를 이용하여 nic.ddn.mil 로 traceroute 를 실행

Page 24: 제  8  장

24Computer Network Lab.

엄격한 소스 라우팅의 trace route 예 Traceroute 의 -G 옵션 : 엄격한라우팅 지정

송신자가 IP 데이터그램이 통과하는 정확한 경로 지정

ex) sun % traceroute -G netb -G gateway -G gabby westgate

traceroute to westgate (192.80.43.2), 30 hope max, 40 byte

packets.

1 netb (140.252.1.183) 272ms 257ms 26ms

2 gateway (140.252.1.4) 263ms 259ms 234ms

3 gateway (140.252.1.4) 263ms !s * 235ms !s

실패된 엄격한 소스 라우트의 traceroute

8.5 IP 소스 라우팅 옵션 (cont’d)

Page 25: 제  8  장

25Computer Network Lab.

8.5 IP 소스 라우팅 옵션 (cont’d)

TTL = 3

!S : ICMP “ 소스라우트 실패” 에러 메시지(*) : 조사에 대한 응답이 없음을 의미 , 즉 gateway

에서 gabby 로의 직접 연결 경로가 없기 때문에 IC

MP “source route failed” 에러 메시지를 전송느슨한 소스 라우팅을 이용한 traceroute 왕복

A 에서 B 의 경로와 B 에서 A 로의 경로가 동일하다고 보장 할 수는 없다 .

어떤 목적지를 느슨한 소스라우트 발신지 호스트를 최종 목적지로 하여 느슨한 소스라우트를 지정 .

Page 26: 제  8  장

26Computer Network Lab.

8.5 IP 소스 라우팅 옵션 (cont’d)

Sun % traceroute -g bruno.cs.colorado.edu suntracerouute to sun (140.252.13.33), 30 hops max, 40 byte packets1 netb.tuc.noao.edu (140.252.1.183) 230ms 227ms 233ms2 gateway.tuc.noao.edu (140.252.1.4) 233ms 229ms 234ms3 butch.telcom.arizona.edu (140.252.104.2) 234ms 229ms 234ms4 Gabby.Telcom.Arizona.EDU (128.196.128.1) 233ms 231ms 234ms5 NSIgate.telcom.Arizona.EDU (192.80.43.3) 294ms 258ms 234ms6 JPL1.NSN.NASA.GOV (128.161.88.2) 264ms 258ms 264ms7 JPL2.NSN.NASA.GOV (192.100.15.2) 264ms 258ms 264ms8 NCAR.NSN.NASA.GOV (128.161.97.2) 324ms * 295ms9 cu-gw.ucar.edu (192.43.244.4) 294ms 318ms 294ms10 engr-gw.Colorado.EDU (128.138.1.3) 294ms 288ms 294ms11 bruno.cs.colorado.edu (128.138.243.151) 293ms 317ms 294ms12 engr-gw-ot.cs.colorado.edu (128.138.243.151) 293ms 317ms 294ms13 cu-gw.Colorado. EDU (128.138.1.1) 294ms 318ms 294ms14 enss.ucar.edu (192.43.244.10) 323ms 318ms 294ms15 t3-1.Denver-cnss97.t3.ans.net (140.222.97.2) 293ms 288ms 384ms16 t3-0.enss142..t3.ans.net (140.222.97.2) 293ms 288ms 294ms17 Gabby.Telcom.Arizona.EDU (192.80.43.1) 294ms 288ms 294ms18 Butch.Telcom.Arizona.EDU (128.196.128.88) 293ms 317ms 294ms19 gateway.tuc.noao.edu (140.252.104.1) 294ms 289ms 294ms20 netb.tuc.noao.edu (140.252.1.183) 324ms 321ms 294ms21 sun.tuc.noao.edu (140.252.13.33) 534ms 529ms 564ms 비대칭적인 라우팅 경로를 보여주는 traceroute 예

Page 27: 제  8  장

27Computer Network Lab.

8.6 요약

traceroute 는 TCP/IP 네트워크의 관리도구traceroute 프로그램 동작traceroute 를 실행하여 LAN 과 WAN 에서 IP 소스 라우트를 조사 IP 소스라우트옵션은 strict source routing 와 loose source

routing 으로 구분느슨한 소스라우팅을 이용한 traceroute 왕복