Document 7893501

Download Report

Transcript Document 7893501

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