TCP/IP 통신망 특론 · 2020. 10. 13. · TCP IP ARP Ethernet Driver Ethernet Driver Ethernet...
Transcript of TCP/IP 통신망 특론 · 2020. 10. 13. · TCP IP ARP Ethernet Driver Ethernet Driver Ethernet...
TCPIP
제 4장주소변환프로토콜
(ARP : Address Resolution Protocol)
1
22
4.1 ARP의개요
4.2 예제 : ftp 호스트명을입력했을때ARP동작
4.3 ARP 캐시
4.4 ARP 패킷형식
4.5 ARP 예
4.6 프럭시ARP
4.7 근거없는(Gratuitous) ARP
4.8 ARP 명령어
4.9 요약
목 차
2020-10-13 TCPIP
33
4.1 ARP개 요 (Address Resolution Protocol)
32bit IP 주소: TCP/IP 프로토콜 그룹에서만 동작
물리적 하드웨어 주소 : 독자적 주소 체계
데이터 전송시 목적지 하드웨어 주소를 알아야 함
ARP 기능
IP주소를 대응하는 물리적 하드웨어 주소로
자동적으로 변환하는 보조적 프로토콜
IP데이터 그램을 정확한 목적지 호스트로 보냄
여러가지 형태의 물리적 하드웨어 주소를 처리
점대점 접속은 ARP를 사용 안함
2020-10-13 TCPIP
44
32-비트 인터넷 주소
48-비트 이더넷 주소
ARP RARP
4.1 ARP개 요 (cont’d)
2020-10-13 TCPIP
55
ARP의전제와기본개념
• 기본개념
네트워크인터페이스가하드웨어주소를갖음
• 전제
이더넷브로드캐스트네트워크를전제로함
4.2 예제
2020-10-13 TCPIP
66
1. 논리주소(logical address)
호스트나라우터가사용하는네트워크레벨주소
전세계적으로유일한주소
IP 주소
32 비트길이
2. 물리주소(physical address)
로컬네트워크에서유효한주소
로컬주소(local address)
로컬에서만유일하면됨
보통하드웨어로구현
호스트나라우터내에설치된 NIC에들어있음
4.1 개요
2020-10-13 TCPIP
77
인터넷에서사용하는주소
호스트나라우터로패킷을전달하기위해
논리및물리주소가모두필요
논리주소를물리주소로변환또는그반
대가필요
정적또는동적변환가능
4.1 개요
2020-10-13 TCPIP
88
4.1 개요
정적변환(static mapping)
논리주소와물리주소연관테이블생성
네트워크상의각시스템에저장
필요시테이블검색
물리주소가변경될경우정적테이블의주기적인
갱신으로인한오버헤드
(NIC 변경, 이동컴퓨터의네트워크이동등)
2020-10-13 TCPIP
(실습) 윈도우창에서 arp 를치면테이블을볼수있음.
99
4.1 개요
ARP와 RARP
Address Resolution Protocol
Reverse Address Resolution Protocol
2020-10-13 TCPIP
1010
TCP/IP 프로토콜에서 ARP와 RARP의위치
2020-10-13 TCPIP
11112020-10-13 TCPIP
12
ARP 패킷형식
122020-10-13 TCPIP
http://www.networksorcery.com/enp/default1001.htm 참조
13
ARP 패킷형식
13
Hardware type : 네트워크유형정의(이더넷 : 1)
Protocol type : 프로토콜정의(IPv4 : 080016)
Hardware length : 물리주소의바이트단위길이
Protocol length : 논리주소의바이트단위길이
Operation : 패킷유형-ARP 요청(1), ARP 응답(2)
Sender hardware address : 송신자물리주소
Sender protocol address : 송신자논리주소
Target hardware address : 타겟물리주소
Target protocol address : 타겟논리주소
2020-10-13 TCPIP
14
ARP 패킷의캡슐화
142020-10-13 TCPIP
Ethernet frame 에서는 LAN 상의모든컴퓨터가쉽게동기될수 preambl과 SFD( start
frame delimiter) 를맨앞에송신한다.
1. `10101010` 이 7번반복(Preamble)되고,
2. 마지막바이트로 `10101011(SFD)`가붙어서,
* 모두 8 바이트(64비트)가 동기화에사용
ㅇ `10101010` 이 7번반복(Preamble)되고, ㅇ마지막바이트로 `10101011(SFD)`가붙어서, ㅇ모두 8 바이트(64비트)가동기화 .
15
ARP 프로세스의캡슐화동작과정
15
1. 송신자는타겟 IP 주소를알고있다
2. IP가 ARP에게 ARP 요청메시지생성요청
(송신자물리주소, IP 주소; 타겟 IP 주소, 물리주소(O))
3. 데이터링크층에전달되면송신자물리주소, 목적지가브로드캐스트주소로하는프레임생성 ( IP 는캡슐화)
4. 모든호스트나라우터가프레임을수신하여자신의 ARP
에전달
5. 타겟시스템은자신의물리주소를포함한 ARP 응답메시지송신(유니케스트)
6. 송신자는응답메시지를받고타겟시스템의물리주소를알게된다
7. IP 데이터그램은프레임으로캡슐화되어목적지에유니캐스트
2020-10-13 TCPIP
1616
호스트A에서 호스트 B로 IP 데이터그램전송
4.2 예제(cont’d)
1. 호스트A의ARP는호스트 B의 IP주소를포함한ARP요구패킷을 LAN에방송
2. LAN상의모든호스트의ARP는ARP 요구패킷수신
3. 호스트 B는수신한ARP 패킷에서자신의 IP주소 인지
4. 송신한호스트A에게호스트 B의물리적하드웨어주소와ARP응답패킷으로응답
5. 호스트A에서ARP 응답패킷수신
6. 호스트 B의 IP주소와물리적하드웨어주소의매핑을ARP 캐시에저장
7. 호스트A에서호스트 B의물리적하드웨어주소를새로운캐쉬엔트리에있는
정보이용 & IP 데이타그램을 B로직접전달
2020-10-13 TCPIP
1717
호스트A에서 호스트 B의물리적하드웨어주소를판단
4.2 예제(cont’d)
1. 호스트A의ARP는호스트 B의 IP주소를포함한ARP요구패킷을 LAN에방송
2. LAN상의모든호스트의ARP는ARP 요구패킷수신
3. 호스트 B는수신한ARP 패킷에서자신의 IP주소 인지
4. 송신한호스트A에게호스트 B의물리적하드웨어주소와ARP응답패킷으로응답
5. 호스트A에서ARP 응답패킷수신
6. 호스트 B의 IP주소와물리적하드웨어주소의매핑을ARP 캐시에저장
7. 호스트A에서호스트 B의물리적하드웨어주소를새로운캐쉬엔트리에있는
정보이용 & IP 데이타그램을 B로직접전달
2020-10-13 TCPIP
1818
FTPResolver
TCP
IP
ARP
Ethernet Driver
Ethernet Driver Ethernet Driver
ARP ARP IP
TCP
Host이름
IP 주소로 연결설정
IP 데이터그램을IP 주소로 보냄
Host이름
IP 주소
ARP Request (Ethernet Broad Cast)
ARP Reply (IP주소와 하드웨어 주소)
• ftp 호스트 명을 입력 했을 때 ARP동작
4.2 예(cont’d)% ftp 호스트 B
호스트 A
호스트 B
2020-10-13 TCPIP
1919
4.3 ARP 캐시
각 호스트는 매번 ARP를 실행하지 않고 ARP 캐시에물리적 주소 임시 저장
인터넷 주소로부터 하드웨어 주소로 최신 정보 유지, 관리
정상적인 엔트리 종료 시간 : 엔트리가 만들어진 20분후
ARP 캐시 명령어
arp(8)에서 -a 옵션을 사용함
48비트 이더넷 주소는 콜론(:)으로 구분된 6개의 16 진수로 표시
2020-10-13 TCPIP
20
4-1. ARP 실습Arp 테이블관찰
자신의컴에서시작/실행(cmd 입력)/DOS창에서 (ipconfig 또는
ipconfig /all 입력) 하여자신의 ip 와 mac 주소찾을것. LAN 내의
동작하고있는다른컴에게 $ ping ip 룰실행하고, $arp -a 로 cache
테이블확인 .
명령어창에서 c://> ipconfig 입력
명령어창에서 c://>arp –a 입력
명령어창에서 c://>ping 자신의ip+1 입력
명령어창에서 c://>arp –a 입력
명령어창에서 c://ping 자신의ip+n 입력
명령어창에서 c://arp –a 입력
명령어창에서 c://telnet 자신의ip+m 입력또는 discard등입력
2020-10-13 TCPIP20
2121
4.4 ARP 패킷 형식
이더넷
목적지 주소
이더넷
발신지 주소
프레임
유형
66 2이더넷 해더
ARP
다른네트워크와이용과 IP주소이외의다른주소도해결
이더넷헤더 : 14바이트 (6+6+2)
이더넷목적지주소모든비트가 1인주소 : 브로트캐스트
이더넷프레임유형
LAN상의호스트간의데이터전송시목적지인터페이스를결정
ARP 요구/응답 : 0x0806
2020-10-13 TCPIP
2222
4.4 ARP 패킷 형식
2 2 1 1 2 6 4 6 4
Hard유형
Prot유형
op송신자이더넷주소
송신자IP주소
타겟이더넷주소
타겟IP주소
Prot 길이
hard 길이
28 바이트 ARP 요구/응답
Hard와 Prot의 유형과 길이 : 다음 4개 필드의 유형과 길이 지정
OP : ARP와 RARP의 요구와 응답을 구분(14)
송신자와 타겟의 이더넷과 IP 주소
이더넷 헤더 부분과 송신자 하드웨어 주소와 중복 주의
2020-10-13 TCPIP
2323
4.5 ARP 예
tcpdump 출력
1 0.0 0:0:c0:6f:2d:40 ff:ff:ff:ff:ff:ff arp 60:
arp who-has svr4 tell bsdi
2 0.002174 (0.0022) 0:0:c0:c2:9b:26 0:0:c0:6f:2d:40 arp 60:
arp reply svr4 is-at 0:0:c0:c2:9b:26
3 0.002831 (0.0007) 0:0:c0:6f:2d:40 0:0:c0:c2:9b:26 ip 60:
bsdi.1030 > svr.discard: s 596459521:596459521 (0)
win 4096 <mss 1024> [tos 0x10]
4 0.007834 (0.0050) 0:0:c0:9b:26 0:0:c0:6f:2d:40 ip 60:
svr.discard > bsdi.1030: s 3562228225:3562228225 (0)
ack 596459522 win 4096 <miss 1024>
5 0.009615 (0.0018) 0:0:c0:6f:2d:40 0:0:c0:c2:9b:26 ip 60:
bsdi.1030 > svr4.discard: . Ack 1 win 4096 [tos 0x10]
bsdi % arp -a
bsdi % telnet svr4 discard
Trying 140.252.13.34…
Connected to svr4.
Escape character is `^]`
. ^]
Telnet> quit
Connection closed.
◼ 일반적인 예
2020-10-13 TCPIP
2424
6 6 2 1 1 1 3 2 38-1492 4
dest
addrleng
DSAP
AA
SSAP
AA
cntl03
org code
00type CRCdata
src
addr
802.3 MAC 802.2 LLC 802.2 SNAP
IEEE 802.2/802.3 Encapsulation(RFC 1042)
2 38-1492
type0800
IP datagram
2 28
type0806
ARP request/reply
10
PAD
2 28
type0835
RARP request/reply
10
PAD
6 6 2 46-1500 4
dest
addrtype CRCdata
src
addr
EthernetEncapsulation(RFC 894) 46-1500 bytes
2 46-1500
type
0800 IP datagram
2
type
0806
28
ARP request/reply
18
PAD
28
RARP request/reply
18
PAD
2
type
0835
IEEE 802.2/802.3 캡슐화(RFC 1042)와이더넷캡슐화(RFC 894)참고 (그림2.1)
2020-10-13 TCPIP
CRC
4
=[(14+<28+18>)+4]=14+46+4
2525
ARP 사용예. 1
2020-10-13 TCPIP
2626
ARP 사용예. 2
2020-10-13 TCPIP
2727
ARP 사용예. 3
2020-10-13 TCPIP
2828
ARP 사용예. 4
2020-10-13 TCPIP
29
4-2. ARP 헤더실습 & HW
발신: A host IP address 220.68.231.77 and physical
address 0x0c0c0c0c0c01 has a packet to send to
수신 : another host IP address 220.68.231.105 and
physical address 0x00270e0bdd65. The two hosts are on
the same Ethernet network.
질문 1:Make the ARP request and reply packets
encapsulated in Ethernet frames. (만들어서그리시요)
질문2 : tcpip-lab4.pcapng에서찾아서 보이시요.
(수업시간에 해보고,숙제로제출하시요 )
2020-10-13 TCPIP29
3030
◼ 존재하지 않는 호스트로의 ARP 요구
Bsdi % date; telnet 140.252.13.36; date
Sat Jan 30 06:46:33 MST 1993
Trying 140.252.13.34 . . .
Telnet : Unable to connect to remote host: Connection time out
Sat Jan 30 06:47:49 MST 1993
bsdi % arp -a
? (140.252.13.36) at (incomplete)
• tcpdump 출력
1 0.0 arp who-has 140.252.13.36 tell bsdi
2 5.509.069 ( 5.5091) arp who-has 140.252.13.36 tell bsdi
3 29.509745 (24.0007) arp who-has 140.252.13.36 tell bsdi
4.5 ARP 예 (cont’d)
2020-10-13 TCPIP
3131
◼ ARP 캐시 타임아웃
각 호스트는 매번 ARP를 실행하지 않고 ARP
캐시에 물리적인 주소를 임시저장
완전 엔트리 : 20분후 종료
불완전 엔트리: 3분후 종료
엔트리가 참조될 때마다 타임아웃 재시작
4.5 ARP 예 (cont’d)
2020-10-13 TCPIP
3232
4.6 프럭시ARP
라우터가ARP 요구에대한응답을대신하는것( 목적
지호스트가라우터의다른쪽에연결되어있을경우)
gemini % arp -a
netb (140.252.1.183) at 0:80:ad:3:6a:80
sun (140.252.1.29) at 0:80:ad:3:6a:80
무차별ARP 또는ARP hack
라우터가프럭시ARP대행자로동작하여같은네트워크 ID의
물리네트워크분리
새로운 TCP/IP 네트워크의분리를위해과거에구식 TCP/IP 구
현호스트숨김
2020-10-13 TCPIP
3333
140.252.1.29
.66.65
gemini
svr4sunbsdislip
SLIP (dialup)
Ethernet,subnet
140,252,1
Ethernet 140.252.13
SLIP
.35 .33 .34
netb
modem
modem
Telebit NetBlazerrouter configured to act asproxy ARP agent for sun
140.252.1.183
ARP request for 140.252.1.29
ARP reply
2020-10-13 TCPIP
3434
4.7 근거없는ARP
다른호스트가자신의 IP주소를사용하는지를
체크할수있음
호스트의초기가동환경설정시네트워크인
터페이스가설정될때수행됨( 자신의 IP 주소
를찾는ARP 요구를보냄)
송신 ip 및수신 ip 는모두자신의 ip 주소1 0.0 0:0:c0:6f:2d:40 ff:ff:ff:ff:ff:ff arp 60:
arp who-has 140.252.13.35 tell 140.252.13.35
2020-10-13 TCPIP
3535
4.7 근거없는ARP (cont’d)
예
- 다른호스트가동일한 IP주소를사용하는지를판단
응답시나타나는메세지
“duplicate IP address sent from 이더넷 address: a:b:c:d:e:f”
2020-10-13 TCPIP
3636
4.7 근거없는ARP (cont’d)
백업파일서버가다운된서버의역할을대신
하도록할수있음
백업서버가자신의하드웨어주소와다운된서버
의 IP 주소로근거없는ARP 요구
다운된서버로보내질패킷이모두백업서버로가
도록함
어떤호스트가캐시안에존재하는 IP주소로부터ARP 요구를받음캐시엔트리는송신자하드웨어주소를 갱신함
2020-10-13 TCPIP
3737
4.8 ARP 명령어
ARP - a : 모든 엔트리를 보임
ARP - d : 엔티티의 삭제
ARP - s : 엔트리 추가
•temp : 캐시로부터 타임 아웃
•pub : ARP 대행자 기능
Bsdi % arp -a
sun (140.252.13.33) at 8:0:20:3:f6:42svr4 (140.252.13.34) at 0:0:c0:c2:9b:26
2020-10-13 TCPIP
3838
4.9 요약 ARP (Address Resolution Protocol )
응용이나시스템관리자에게인식되지않은체동작
ARP캐시
프럭시ARP
근거없는ARP
ARP 운영의기본
캐시를검사하여조작
조작하기위해 arp 명령어사용
캐시의엔트리를나타내고수정
타이머를가지고있음
2020-10-13 TCPIP