2018년 1월 4일 목요일

OSI 7 Layer # 3계층 네트워크 ARP,IP,ICMP

ARP [Address Resolution Protocol]

IP주소를 이용해서 MAC 주소를 알려주는 프로토콜시스템B의 IP는 알고있지만MAC 주소는 모름

시스템A
시스템B
(AA:AA:AA:AA:AA:AA)
(BB:BB:BB:BB:BB:BB)
10.10.10.10/24
10.10.10.20/24




 
1. 시스템A는 ARP 요청 패킷을 작성 (OPCODE가 1)
2. 시스템B의 MAC 주소를 모르기 때문에 (정확한 위치를 모름) ARP 요청 패킷을 브로드 캐스트 한다. (전체로 보낸다)
3. ARP 요청 패킷을 받은 시스템은 요청 패킷 안에 들어있는 목적지 IP주소와 본인의 IP주소를 비교, 일치하면 응답 패킷 작성, 일치하지 않으면 무시
4. IP주소가 일치한 시스템은 응답패킷을 작성해서 전달할 때 본인의 MAC 주소를 물어본
시스템의 MAC 주소를 알고있기 때문에 ARP 응답 패킷을 유니캐스트로 전송.
 
 
ARP 관련 공격 Man in the middle
 
3계층인 ARP 프로토콜은 같은 네트워크 대역에서만 사용할 수 있는 프로토콜이다.
WAN에서가 아닌 같은 LAN 대역에서만 사용
 
특징 : LAN을 벗어나는 곳에는 전달되지 않는다.
--------------------------------------------------------------------
                     ARP 패킷 캡쳐 실습
--------------------------------------------------------------------
cmd를 관리자 권한으로 실행
arp -d 명령어 실행
 
와이어샤크로 패킷 캡쳐 시작
 
필터에 arp 적용
 
cmd에서 ping 8.8.8.8 명령어 실행







IP [Internet protocol]
































IHL (header Length) :
헤더의 길이, 옵션이 추가로 붙을 수 있다.옵션은 1개당 4바이트, 최대 10개까지 가능 
IHL = 20바이트 ~ 60바이트표기할 때는 실제 헤더 길이를 4로 나눠서 표기실제 표기는 5 ~ 15바이트
 
TOS (Type of Service) 현재 사용되고 있지 않음
일반적으로 시스템들이 무시하고 사용하지 않기 때문에 사용되지 않는 필드
 Precedence : 상위 3비트, 우선순위 지정
TOS bit : 하위 5비트, 기능 추가
Delay: 지연 비트, 가장 빠른 경로로 보낸다.
Throughput: 처리량 비트, 가장 처리량이 높은 경로,
Reliability: 신뢰성 비트, 경로 상의 모든 라우터가 해당 기능을
지원할 때 오류 없는 전송을 보장Cost: Cost 비트, 최소 Cost인 경로로 보낸다.
Nomal: 예약 비트, 사용하지 않는 비트
 
Diffentiated Services 로 바뀜.
Delay: 지연 비트, 가장 빠른 경로로 보낸다.
Throughput: 처리량 비트, 가장 처리량이 높은 경로,
Reliability: 신뢰성 비트, 경로 상의 모든 라우터가 해당 기능을
지원할 때 오류 없는 전송을 보장ECN: 혼잡한 경로로 보내지 않는다.Congestion Experienceed: 현재 해당 패킷 구간이 혼잡을 경험하고 있다고 알려줌
 TL (Total Length) : 
패킷의(전체)총길이,최대 65535, 일반적으로는 MTU를 넘을 수 없다.(65535 까지 표현은 가능하다.
 ID (Identification) :
 패킷 조각화가 일어났을 때 여러개의 패킷이 원래 하나의 패킷이었다 는 것을 구분하기 위한 것. 
 IP Flags : 패킷 조각화 관련 설정 필드
X : 예약 비트 (거의 사용 X)D : Don't fragmentation, 조각화 하지 않겠다는 선언M : More fragmentation, 조각화가 일어났다고 알려주는 비트마지막 패킷의 경우 0 으로 셋팅 
--------------------------------------------------------------------
Ping 명령으로 조각화 확인
--------------------------------------------------------------------

ping -l 2000 ^@
와이어샤크 패킷 확인하기


















데이터 11,980 bytes 보낸다는 가정 시
MTU 3300 bytes 

3280328032802140
MF1110
Offset04108201230
 
데이터 3280 bytes
MTU 1300 bytes
 
12801280720
MF110
Offset0160320
 
Offset 값은 데이터 값 나누기 8
 
TTL (Time to Live) : 라우터를 하나 지나갈 때 마다 1씩 감소하는 값
TTL 초기값 128 (윈도우)
 
Protocol : 상위 계층의 프로토콜이 무엇인지 알려준다.
ICMP : 1TCP : 6UDP : 17
 
Header Checksum : IP 헤더만 체크
 

Fragment Offset : 데이터에서 얼마만큼 떨어져있는지
1480 이상일 때
 
 
--------------------------------------------------------------------
IP 헤더 캡쳐 실습
--------------------------------------------------------------------
cmd에서 ping 8.8.8.8 명령어 실행
 
와이어샤크에서 패킷 캡쳐
 
필터에 ip.addr == 8.8.8.8 추가
 
--------------------------------------------------------------------
IP 패킷 조각화 캡쳐 실습
--------------------------------------------------------------------
cmd에서 ping -l 2000 192.168.0.100 명령어 실행
 
와이어샤크에서 패킷 캡쳐
 
필터에 ip.addr == 192.168.0.100 추가
 






ICMP (Internet Control Message Protocol) 8바이트





타입 : 대분류
0, 3, 5, 8, 11 중요.
코드 : 소분류

--------------------------------------------------------------------
ICMP 패킷 캡쳐 실습
--------------------------------------------------------------------
1. cmd에서 ping -n 1 8.8.8.8 명령어 실행
 
2. cmd에서 ping -n 1 192.168.0.200 명령어 실행
 
3. cmd에서 tracert 8.8.8.8 명령어 실행

댓글 없음:

댓글 쓰기