ICMP 타임스탬프 요구와 응답

Download Report

Transcript ICMP 타임스탬프 요구와 응답

TCP/IP 네트워크
제 6장
인터넷 제어 메시지 프로토콜
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
1
목차
6.1
6.2
6.3
6.4
6.5
6.6
6.7
ICMP 개요
ICMP 메시지 형식
ICMP 주소 마스크 요구와 응답
ICMP 타임스탬프 요구와 응답
ICMP 포트 도달불가 에러
4.4BSD에서 ICMP 메시지 처리
요약
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
2
6.1 ICMP 개요
ICMP목적 : 신뢰성 없는 전송인 IP를 어느 정도 보안하기 위해
gateway와 host간의 에러 메시지와 주의를 요하는 상태
정보를 취급하기 위한 프로토콜
- IP계층 또는 보다 상위 계층 프로토콜(TCP,UDP)에 의해 이용됨
- 어떤 ICMP 메시지는 사용자 프로세스에게 되돌려 주는
에러 메시지 생성
- ICMP 메시지는 IP 데이터그램으로 전송
- ICMP 공식 규격:RFC 792(Postel 1981b)
< IP 데이터그램에 캡슐화된 ICMP 메시지>
IP 헤더
ICMP 메시지
IP 데이터 그램
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
3
6.1 ICMP 개요(ICMP 메시지
형식)

처음 4 바이트는 모든 메시지에 대해 같은 형식. 나머지 부분은 메시지에 따
라 다름
- 유형(type) 필드: 15개의 서로 다른 값
- 코드(code)필드: 특정 상태를 나타내기 위한서로 다른 값
- 검사값(checksum)필드: ICMP 전체 메시지를 대상으로
IP 헤더 검사 방식과 같은 알고리즘
<ICMP 메시지>
0
78
8비트 유형
15 16
8비트 코드
31
16비트 검사값
유형과 코드에 따른 내용
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
4
6.2 ICMP 메시지 형식




<ICMP 메시지 유형>
조회(query),에러(error) 메시지를 구분하는 이유:
ICMP 에러 메시지가 특별하게 처리되기 때문
ICMP 에러 메시지는 절대로 ICMP 에러 메시지에 대
한 반응으로 생성되지 않음
ICMP 에러메시지 송신측:IP 헤더와 ICMP 에러 발생
의 원인이 된 IP 데이터그램의 처음 8 바이트가 포함
ICMP 에러 메시지 수신측:특정 프로토콜 또는 특정
사용자 프로세스와 메시지를 연관
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
5
6.2 ICMP 메시지 형식







ICMP 메시지가 생성되지 않는 경우 (broadcast storms을 방지)
1. ICMP 에러 메시지
2. IP 브로드캐스트 주소나 IP 멀티캐스트 주소로 가는 데이터그램
3. 링크계층의 브로드캐스트로서 송신되는 데이터그램
4. 단편화 된 것 중 처음 부분이 아닌 데이터그램
5. 송신지 주소가 단일 호스트로 지정되어 있지 않은 데이터그램
(zero 주소,루프 백 주소,브로드 캐스트 주소,멀티 캐스트 주소)
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
6
6.3 ICMP 주소 마스크 요구와
응답




ICMP 주소 마스크 요구: 디스크 없는 시스템이 부팅시
자신의 서브넷 마스크를 얻기 위해서 사용
ICMP 요구 메시지를 브로드캐스트(RARP를 이용하여
자신의 IP주소를 얻는 방법과 유사)
BOOTP 프로토콜
송신자가 식별자(identifier)와 순서번호(sequence number)를 선택
->응답 메시지에 값이 돌아옴,송신자는 요구에 맞는 응답인지 확인
<ICMP 주소 마스크 요구와 응답 메시지>
0
78
유형(17또는18)
식별자
15 16
31
코드(0)
검사합
순서번호
12바이트
32 비트 서브넷 마스크
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
7
6.3 ICMP 주소 마스크
요구와 응답

ICMP 주소 마스크 요구를 발행해서 모든 응답을 출 력하는 프로그램
sun % icmpaddrmask 140.252.13.63
Received mask=ffffffe0, from 140.252.13.33 자기 자신 으로부터
Received mask=ffffffe0, from 140.252.13.35 bsdi로부터
Received mask=ffff0000, from 140.252.13.34 svr4로부터
svr4로부터 반환된 값이 틀린 이유:
svr4는 B클래스 주소 마스크를 되돌려 주므로
서브넷 마스크가 없다고 간주
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
8
6.3 ICMP 주소 마스크 요구와
응답

<브로드캐스트 주소로 보내진 ICMP 주소 마스크 요구>
1 0.0
8:0:20:3:f6:42 ff:ff:ff:ff:ff:ff ip 60:
2 0.00(0.00) 0:0:c0:6f:2d:40 ff:ff:ff:ff:ff:ff ip 46
bsdi>sun:icmp:address mask is 0xffffffe0
3 0.01(0.01) 0:0:c0:c2:9b:26 8:0:20:3:f6:42 ip 60:
svr4> sun: icmp:address mask is 0xffff0000
송신 호스트(호스트 sun)가 회선상 아무것도 없더라도
ICMP 응답 메시지를 수신:
송신 호스트가 내부 루프백 메커니즘을 통하여 브로드캐스트 패킷
복사본을 수신하는 브로드캐스트의 특성 때문
svr4: 요구한 요청자에게만 응답을 보냄
bsdi: 응답을 브로드캐스트
RFC:시스템이 인정하는 주소 마스크에 대한 대행자가
아니면 주소 마스크 응답을 보내지 말아야 함
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
9
6.3 ICMP 주소 마스크 요구와 응답
<예> sun % icmpaddrmask sun
received mask=ff000000, from 140.252.13.33
sun % icmpaddrmask localhost
received mask=ff000000,from 127.0.0.1
<설명>
 호스트 IP주소(140.252.13.33)로 보내진 IP 데이터그램
-> 루프 백 인터페이스로 전달
 되돌아온 주소 마스크 -> 루프 백 주소인 클래스 A 주소
(127.0.0.1)에 대응
<결과>
 ICMP 주소 마스크 요구 ->IP 주소와 루프 백 주소(루프백 인터페
이스로부터 수신)
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
10
6.4 ICMP 타임스탬프 요구와 응답


ICMP 타임스탬프: 어떤 시스템이 다른 시스템에게 현 재 시간을
알리고 싶을 때
UTC(Coordinated Universal Time): 오전 0시부터 경과된 시간(ms)
<ICMP 타임스탬프 요구와 응답>
0
7 8
유형(17또는 18)
식별자
코드(0)
15 16
31
검사합
순서 번호
12 바이트
32-비트 originate 타임스탬프
32-비트 receive 타임스탬프
32-비트 transmit 타임스탬프
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
11
6.4 ICMP 타임스탬프 요구와 응답






Originate timestamp: 요청자가 메시지를 보내는 시간
Receive timestamp: 응답측 시스템의 요구를 수신한 시간
Transmit timestamp: 응답측 시스템의 응답 시간
Receive(recv)값= Transmit(xmit)값
왕복 시간(rtt)= 응답 수신 시간 - 응답 송신 시간
시간차(difference)=Received timestamp 값 - Originated timestam값
<ICMPtime 프로그램에 의해 출력된 값들의 관계>
originate
요구
received
transmit
응답
RTT
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
12
6.4 ICMP 타임스탬프
요구와 응답
<예>
sun % icmptime bsdi
orig=83573336, recv=83573330, xmit=83573330, rtt=2ms
difference= -6ms
sun % icmptime bsdi
orig=83577987, recv=83577980, xmit=83577980, rtt=2ms
difference= -7ms
<설명>
RTT가 정확하고 RTT의 반 이 요구 , 나머지 반이 응답에 의한 시간이라면
송신자의 시계를 조회한 호스트와 같은 시간을 갖기 위한 조정:
시간차(difference) - RTT의 반값
-> bsdi의 시계는 sun의 시계보다 7에서 8ms 만큼 늦다
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
13
6.4 ICMP 타임스탬프 요구와 응답(1)

시간과 날짜로 얻는 다른 방법
1. Daytime 서비스: 현재의 시간과 날짜를 사람이 읽을 수 있는 ASCII 문자
형식(telnet 명령)
time 서비스: 1900년도 1월 1일 오전 0시부터 경과한 초값을 32비트
2진값으로 날짜와 초단위 시간값
sun % telnet bsdi daytime
Trying 140. 252.13. 35
Connected to bsdi.
Escape character is ‘^ ]’
처음 세줄은 telnet client의 출력이다
Web Feb 3 16:38: 33: 1993
이것은 daytime 서비스 출력이다
Connection closed by foreign host. 이것도 telnet 클라이언트 출력이다
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
14
6.4 ICMP 타임스탬프
요구와 응답(2)
2. NTP(Network Time Protocol) 사용(RFC 1305[Mills 1992]):
ms 단위의 정확성을 가진 WAN, LAN상의 모든 시스템 시간
유지
3. OSF(Open Software Foundation)의 분산 컴퓨팅 환경
(DCE:Distributed Computing Environment): 컴퓨터간의 시간에
대한 동기를 맞추기 위해서 분산 타임 서비스 (DTS:Distributed
Time Service)
4. 버클리 Unix 시스템: LAN 상 시스템의 시간에 대한 동기를
맞추기 위해 timed(8) 데몬 제공
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
15
6.5 ICMP 포트 도달불가 에러

ICMP 포트 도달불가 발생:
- 수신된 UDP datagram의 목적지 포트를 어떤 프로세스가 사용
하고 있어서 응답 할 수 없는 경우
- TFTP(Trivial File Transfer Protocol)클라이언트 사용
<TFTP 클라이언트 프로그램>
bsdi % tftp
tftp> connect svr4 8888
호스트 이름과 포트 번호를 지정
tftp> get temp.foo
파일을 가져온다
Transfer timed out
약 25초 후
tftp > quit
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
16
6.5 ICMP 포트 도달 불가 에러
<TFTP 요구에 의해 생성된 ICMP 포트 도달 불가>
1. 0.0
arp who-has svr4 tell bsdi
2 0.002050 (0.0020) arp reply svr4 is-at 0:0:c0:c2:9b:26
3 0.002723 (0.0007) bsdi.2924>svr4.8888:udp 20
4 0.006399 (0.0037) svr4>bsdi: icmp:svr4 udp port 8888 unreachable
5 5.000776 (4.9944) bsdi.2924>svr4.8888:udp 20
6 0.006399 (0.0037) svr4>bsdi:icmp:svr4 udp port 8888 unreachable
7 10.000887 (4.9966) bsdi.2924>svr4.8888:udp 20
8 10.004416 (0.0035) svr4>bsdi:icmp:svr4 udp port 8888 unreachable
9 15.001014 (4.9966) bsdi.2924>svr4.8888:udp 20
10 15.004574 (0.0036) svr4>bsdi:icmp:svr4 udp port 8888 unreachable
11 20.001177 (4.9966) bsdi.2924>svr4.8888:udp 20
12 20.004759 (0.0036) svr4>bsdi:icmp:svr4 udp port 8888 unreachable
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
17
6.5 ICMP 포트 도달불가 에러
<설명>

1번 줄: UDP 데이터그램이 svr4에 보내기 전 하드웨어 주소를
지정하 기 위한 ARP 요구를 보냄

2번 줄: ARP 응답이 돌아옴

3번 줄: UDP 데이터그램을 전송

4번 줄: ICMP 포트 도달불가 즉시 되돌아옴

5번 줄: TFTP 클라이언트는 ICMP 메시지를 무시하고 약 5초 후에
다른 UDP 데이터그램을 보냄

마지막 행 : “ UDP 20”(데이터 길이) = 2바이트(TFTP의 opcode)
+ 9 바이트(null로 종료된 temp.foo)+ 9바이트(null로
종료된 문자열 netascii)

tcpdump의 e옵션에서 사용한 ICMP 포트 도달불가 메시지 길이
= 70바이트
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
18
6.5 ICMP 포트 도달불가 에러


UDP 데이터그램은 포트 번호의 목적지 없이 호스트간에 교환되고, 각 20
바이트의 UDP 데이터그램은 특정 포트(2924)로부터 특정 포트(8888)로
전송
ICMP 에러 메시지는 에러를 발생시킨 데이터그램의 IP 헤더 다음에 적
어도 처음 8바이트가 포함되어야 함
<“UDP port unreachable” 예에서 되돌아온 ICMP 메시지>
IP
데이터그램
ICMP
메시지
ICMP의 데이터 부분
이더넷 헤더
IP 헤더
ICMP 헤더
14 바이트
20 바이트
8바이트
정보통신연구실
헤더 에러가 발생한
데이터그램의 IP 헤더
20 바이트
UDP 헤더
8 바이트
성균관 대학교
SungKyunKwan Univ.
19
6.5 ICMP 포트 도달불가 에러



UDP 헤더 : 송신지와 목적지 포트 번호
- 목적지 포트 번호(8888): ICMP 포트 도달불가 원인
- 송신지 포트 번호(2924):ICMP 에러를 수신한 시스 템이 특정
사용자 프로세스와 관련시키기 위해 사용
에러를 발생시킨 데이터그램의 IP 헤더 반환 이유:
ICMP의 계속되는 8바이트 내용(UDP 헤드)을 교환하는 방법을
알기 위해 프로토콜 필드가 IP헤드에 포함되기 때문
ICMP 도달불가 메시지:
- 코드: 3
- 두번째 32비트 워드: 0
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
20
6.5 ICMP 포트 도달불가 에러
<ICMP 도달불가 메시지>
유형(3)
코드(0-15)
검사합
8바이트
사용하지 않음(0 이여야 함)
IP 헤드(옵션 포함) + 원래의 IP 데이터그램 데이터의 처음 8바이트
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
21
6.5 ICMP 포트 도달불가 에러
(Tcpdump 타임 라인)
<유효하지 않는 포트에 대한 TFTP 요구의 타임 라인>
Svr4에게 Bsdi에 대한 응답을 부르고 있는 arp
S
Svr4rk 0;0;c0;c2;9b:26
에 있다는 것을 나타내는 arp 응답
Udp 20bytes
ICMP:Svr4 udp port 8888 unreachable
Udp 20bytes
ICMP:Svr4 udp port 8888 unreachable
Bsdi.2924
정보통신연구실
Svr4.8888
성균관 대학교
SungKyunKwan Univ.
22
6.5 ICMP 포트 도달불가 에러

TFTP 클라이언트가 되돌아온 요구 메시지를 재전송
하는 이유:
BSD 시스템의 네트워크 프로그램에서 사용자 프로세스가
connect를 해당 소켓에서 발행하지 않으면
이 소켓 때문에 ICMP 메시지의 UDP를 사용하는 사용자 프로세
스에 알릴 수 없는 사태가 발생
표준 BSD의 TFTP 클라이언트는 connect를 발행하지 않으므로
ICMP 에러가 프로세스에서 인식되지 않기 때문
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
23
6.6 4.4BSD에서 ICMP 메시지 처리





각 ICMP 메시지가 같은 구현내 처리 방법이 다른
이유:
치명적인 에러에서 정보 메시지까지 전반적인
상황을 포함하고 있기 때문
<4.4BSD에 의한 ICMP 메시지 처리 유형 참조>
ICMP 메시지 처리 방법
커널 ->커널
사용자 프로세스 -> 커널에 등록된 모든 사용자 프로세스에 전달
사용자 프로세스가 없는 경우 -> 버려지거나 무시
인용부호로 된 문자열: UNIX 에러 메시지
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
24
6.7 요약




ICMP
ICMP
ICMP
ICMP
메시지 형식
주소 마스크 요구와 응답
타임스탬프 요구와 응답
포트 도달불가 에러
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
25