IP 패킷 분석IP 패킷 분석

Posted at 2018. 4. 16. 11:00 | Posted in 2-1학기/Network


'2-1학기 > Network' 카테고리의 다른 글

Ethernet IP TCP 패킷분석  (0) 2018.06.04
UDP패킷분석  (0) 2018.05.03
ARP  (0) 2018.04.11
ARP 프로토콜 문제  (0) 2018.04.09
GCC로 C언어 프로그래밍  (0) 2018.03.21
//

ARPARP

Posted at 2018. 4. 11. 20:07 | Posted in 2-1학기/Network

Address Resolution Protocol

OSI 7 Layer에서 Layer 3에 위치한 프로토콜이며, MAC 주소와 IP 주소를 서로 연결하는 용도로 사용한다.



■논리주소 

- 호스트나 라우터가 사용하는 네트워크 레벨 주소

- 전세계적으로 유일한 주소

- 소프트웨어상에 구현

- IP주소

- 32비트 길이 (x.x.x.x)


■물리주소

- 로컬 네트워크에서 유효한 주소

- 로컬 주소 (local address)

- 로컬에서만 유일하면 됨

- 보통 하드웨어로 구현

- 호스트나 라우터내에 설치된 NIC에 들어있음. (ex: 랜카드 등)

- MAC주소를 의미 48비트 (x-x-x-x-x-x)


■정적 변환(Static mapping)

- 논리주소와 물리주소 연관 테이블 생성

- 네트워크상의 각 시스템에 저장

- 필요시 테이블 검색

- 물리 주소가 변경될 경우 정적 테이블의 갱신으로 인한 오버헤드가 발생.

 (NIC변경, 이동 컴퓨터의 네트워크 이동 등)


※. 오버헤드 : 어떤 처리를 하기위해 간접적으로 들어가는 시간, 메모리를 의미


■동적 변환(Dynamic mapping)

- 물리 주소와 논리 주소 쌍 중 하나만 알면 프로토콜을 이용하여 다른 하나를 알아냄.

- ARP : 논리 주소를 물리 주소로 변환

- RARP : 물리 주소를 논리 주소로 변환(현재 잘 안씀)


IP의 데이터그램헤더에는 TCP, UDP, IGMP, ICMP가 실려서 전송됨. (캡슐화)


IGMP - Internet Group Message Protocol


로컬 네트워크에서 멀티캐스트 그룹에 속해있는 호스트들을 알려주는 제어 프로토콜

질의 , 응답을 통한 주기적인 확인.

로컬 서브네트워크를 벗어나면 폐기된다.


ICMP - Internet Control Message Protocol


오류/제어 메시지를 보고하는 형식의 프로토콜 . Tcp/ip 소프트웨어가 메시지를 처리한다.

오류를 보고하기만 하고 수정을 할 수는 없음.


■ARP 패킷 유형

- ARP Request : IP주소에 매핑되는 MAC 주소요청 (Boradcast)

- ARP Reply : 목적지 MAC 주소를 전송 (Unicast)


■ARP 프로토콜의 사용 예

- 웹브라우저로 사이트 접속 과정

- DNS 접근 시도를 위해 ARP Request 패킷 전송

- 목적지 IP에 접근을 위해 ARP Request 패킷 전송


■ARP 패킷의 내용

- 송신자

- 물리주소와 논리주소(MAC / IP)

- 수신자

- 물리주소와 논리주소(MAC / IP)


■ARP 캐시

- 수집된 IP주소와 이데 대응되는 물리주소 정보를 각 IP호스트에 테이블 형태로 메모리에 저장

- 다음 요청 패킷은 ARP 캐시에서 읽어 사용.

- DOS 모드에서 확인

-arp -a : 캐시된 모든 주소를 보여줌

-arp -d : 캐시된 모든 주소를 삭제함 



Ü Hardware Type (2byte)
w네트워크 유형을 나타내며, HLen 필드의 설정 제어
Ÿ1: 이더넷, 2: IEEE 802.3, 3: LocalTalk, 4: Frame-relay
Ü Protocol Type (2byte)
w상위계층 프로토콜 타입, Ethertype과 동일
Ÿ0x0800이면 IP 프로토콜
Ü HLen(Hardware Length) (1byte)
w물리 주소의 길이를 byte 단위로 정의
Ÿ이더넷의 경우 이 필드 값 :  6
Ü PLen(Protocol Length) (1byte)
w논리 주소의 길이를 byte 단위로 정의
Ÿ.수신자의 IP 주소 크기 : 4
Ü Operation 코드 (2byte)
wARP 패킷의 유형을 나타냄
Ÿ1: ARP Request, 2: ARP Reply, 3: RARP Request, 4: RARP Reply
Ü SHA(Sender Hardware Address) (6byte)
w송신자의 물리주소(MAC)
Ü SPA(Sender Protocol Address) (4byte)
w송신자의 논리주소(IP)
Ü THA(Target Hardware Address) (6byte)
w목적지의 물리주소(MAC)
w요청의 경우 물리주소를 알지 못하므로 필드의 값은 0
Ü TPA(Target Protocol Address) (4byte)
w목적지의 논리주소(IP)

■ARP 캡슐화 과정

(Type : 0x0806 [ARP] )

1. 송신자는 타깃 IP 주소를 알고있다.
2. IP가 ARP에게 ARP 요청 메시지 생성 요청
3. 데이터 링크층에 전달되면 발신지 주소는 송신자의 물리주소, 목적지 주소는 
   물리 브로드캐스트 주소로 하는 프레임에 캡슐화
4. 모든 호스트나 라우터가 프레임을 수신하여 자신의 ARP에 전달
5. 타겟 시스템을 자신의 물리 주소를 포함한 ARP 응답 메시지 송신(Unicast)
6. 송신자는 응답 메시지를 받고 타겟 시스템의 물리 주소를 알게된다.
7. IP 데이터그램은 프레임으로 캡슐화 되어 목적지에 유니캐스트

■ARP가 사용되는 네 가지 경우
1. 송신자가 호스트로서 같은 네트워크상에 다른 호스트에 패킷 전송(논리주소는 목적지 IP)
2. 송신자가 호스트이고 다른 네트워크상에 있는 다른 호스트에게 패킷 전송(논리주소는 라우터의 IP)
3. 송신자는 다른 네트워크상에 있는 호스트로 가는 데이터그램을 수신한 라우터(논리 주소는 next hop라우터의 IP)
4. 송신자는 같은 네트워크상에 있는 호스트로 가는 데이터그램을 수신한 라우터(논리 주소는 목적지 IP)

■프록시 ARP
- 서브넷팅의 효과를 만들기 위해 사용한다.
- 라우터가 특정 호스트에 대한 ARP 요청을 대신 응답하는 것이다.         
- 프록시 ARP 기능을 수행하는 라우터가 호스트의 집합 중 한 호스트의 물리 주소를 찾는
  요구를 받으면 라우터는 자신의 물리주소를 ARP 응답 메시지를 통해 알린다.

'2-1학기 > Network' 카테고리의 다른 글

UDP패킷분석  (0) 2018.05.03
IP 패킷 분석  (0) 2018.04.16
ARP 프로토콜 문제  (0) 2018.04.09
GCC로 C언어 프로그래밍  (0) 2018.03.21
리눅스 명령어  (0) 2018.03.21
//

서브넷팅서브넷팅

Posted at 2018. 4. 10. 21:00 | Posted in 2-1학기/CCNA

의의 

- 모자란 아이피수의 제한에 효율적으로 사용하기 위해

- 브로드캐스트 트래픽감소로 인한 성능 향상

- 라우터에 필터링 기능을 넣어서 보안성향상


(라우터의 필터링 기능을 넣는 이유 : 라우팅 정보를 업데이트를 하는 중 필요로 하지 않는 경로 정보를 차단하거나 일부 경로 옵션을 바꾸고싶은 경우에 필터링을 사용. 라우팅루프, 플래핑같은 현상이 일어 날수 있음.)


라우팅 루프 : 잘못된 경로정보로 계속 라우터를 루프하는것


플래핑(Flapping) : 같은 MAC 주소를 갖는 포트가 2개 이상이 같은 콜리전 도메인 내에 존재할 때, 네트워크 스위치에서는 이 두 포트 사이에서 활성 및 비활성 상태가 반복되는 현상이 발생하는데 이것을 플래핑(Flapping)이라고 한다.


IPv4의 서브넷팅




- 프리픽스의 길이와 서브넷마스크는 다른 네트워크를 식별하는 방법.

- 서브넷은 네트워크 비트가 호스트 비트를 빌려 생성.

- 호스트 비트를 많이 빌릴 수록 많은 서브넷 생성 가능.


8,16,24 프리픽스에서 네트워크는 쉽게 서브넷팅될수있음.




10.x.0.0/16을 서브넷팅

65534개의 호스트를 연결 할 수 있는 각 서브넷에 256개의 서브넷을 정의.

처음 16개의 2진수들은 네트워크 아이디를 식별 뒤의 16개 2진수들은 호스트아이피를 식별한다.



10.x.x.0/24

65536개의 서브넷과 254개의 호스트를 가짐.

/24 서브넷팅은 호스트수때문에 가장 많이 쓰이는 바운더리임.



■매직넘버


서브넷 계산에 사용하는 숫자

서브넷팅에서의 매직넘버는 단순히 서브넷 마스크의 마지막 값의 자리값 

/25  11111111.11111111.11111111.10000000 magic number = 128

/26  11111111.11111111.11111111.11000000 magic number = 64

/27  11111111.11111111.11111111.11100000 magic number = 32






■서브넷 수 계산공식


2^n (n = 빌려온 호스트 비트 수)






■호스트 수 계산공식


2^n - 2 (n = 호스트필드에 남아 있는 비트의 수)


여기서 - 2를 하는이유는 네트워크 아이디로 가장 앞의하나와 브로드캐스트용 주소를 하나씩 주기때문이다.

(ex - 192.168.1.0/24 -> 192.168.1.0 / 192.168.1.255)



위의 예시에 공식을 대입하면 


서브넷의 수는 2^n (n=3)

2^3 = 8개


호스트의 수는 2^n - 2 (n=5)

2^5 - 2 = 32 - 2(네트워크 주소, 브로드캐스트) = 30개


매직넘버는 맨마지막 1인비트가 2^5째 자리니까 32


192.168.1.0/27 (1의 갯수)


매직넘버수만큼 주소를 가지므로


192.168.1.0/27

192.168.1.32/27

192.168.1.64/27

192.168.1.96/27

192.168.1.128/27

192.168.1.160/27

192.168.1.192/27
192.168.1.224/27

8개의 호스트가 각 30개의 호스트를 갖는 서브넷이 만들어진다.


■VLSM - 가변 서브넷 마스크

- 주소 범위가 겹치지 않는 한 서브넷은 동일한 크기일 필요가 없습니다.
- 서브넷을 만들 때 더 큰것으로 부터 작은것으로 쉽게 작업 할 수 있습니다. 



위의 서브넷처럼 192.168.1.192/26을 192.168.1.192/27로 새로이 서브넷팅 할 수있다.

이렇게하면 더욱 세분화하여 효율적으로 네트워크 구조를 만들 수 있다.

11000000 10101000 00000001 11000000 /26
                        ↓
11000000 10101000 00000001 11100000 /27

빌려온 비트수가 하나늘때마다 2배가 되므로

서브넷의 수 2^1 = 2개

매직넘버 32

호스트의 수 2^5 - 2 = 30개

생성되는 네트워크는 

192.168.1.192/27
192.168.1.224/27


//