와이어샤크 - 5. network layer

roon-replica·2022년 8월 30일
0

network

목록 보기
5/7
  • 참고자료: 와이어샤크를 활용한 실전 패킷 분석 3/e

개요

  • ARP, IPv4, IPv6, ICMP, ICMPv6 같은 네트워크 계층 프로토콜을 다룸

ARP

배경지식

  • Address Resolution Protocol의 약자.

  • 논리 주소와 물리 주소.
    논리 주소는 여러 네트워크를 통해 간접적으로 연결된 장치 간의 통신.
    물리 주소는 하나의 네트워크에서 스위치를 통해 직접 연결된 장치 간의 통신.
    대부분의 경우 통신을 위해 이 2가지 주소 지정 방식이 함께 동작한다고 함.

  • 스위치에는 CAM(Content Addressable Memory) 테이블이 있다고 함.
    이 테이블에는 각 포트에 연결된 모든 장치의 MAC 주소가 나열되어 있음.
    스위치는 CAM을 이용해서 어떤 포트로 트래픽을 보낼지 결정한다고 함.

ARP 해석 과정

  • ARP 해석 프로세스에서는 ARP 요청, 응답 2개의 패킷만 사용한다고 함.
  1. ARP 요청
    IP 주소가 X인 컴퓨터의 MAC 주소를 알려달라는 브로드캐스트 요청을 함.
  1. ARP 응답
    IP 주소가 X인 ARP 요청이 찾는 장치는 자신의 MAC 주소를 응답함.
    전송 장치?는 수신 장치의 (MAC, IP) 주소 연관을 이용해 자신의 캐시를 업데이트 한다고 함..

의미 없는 ARP

  • 의미 없는 ARP는 좋은 것이라고 함...
    의미 없는 ARP는 한 네트워크의 모드 호스트가 (IP, MAC) 주소 매핑을 갱신하도록 함.

IP

  • OSI layer 3 프로토콜의 주요 목적은 네트워크 간의 통신.
    즉, inter network(인터넷)

  • LAN (Local Area Network)
    모든 장치가 허브나 스위치로만 연결된 단순한 네트워크.
    2개의 LAN을 연결하려면 라우터를 사용한다고 함.
    인터넷은 수백만 개의 LAN과 라우터의 모음이라고 함..!

IPv4

주소

  • IPv4 주소는 네트워크에 연결된 장치를 고유하게 식별하는데 사용되는 32비트 번호.

  • ip 주소는 네트워크 부분과 호스트 부분으로 구성된다고 함.
    네트워크 부분은 어떤 LAN인지 식별.
    호스트 부분은 해당 LAN에서의 장치를 식별.

    ip 주소와 서브넷 마스크는 주로 CIDR 표기법으로 작성됨.
    예시) 10.10.1.22/16
    -> 네트워크 부분이 상위 16비트, 나머지 하위 16비트가 개별 호스트 식별.

패킷 구조

  • TTL
    패킷이 통과할 수 있는 라우터의 최대 수.
    라우팅에 문제가 생기면 라우터 간에 무한 루프가 생길 수 있음.
    그래서 TTL 설정이 없으면 패킷의 수가 증가하여 DOS가 발생하게 되고, 네트워크 대역폭이 고갈됨. 그래서 TTL이 꼭 필요하다고 함!

  • packet fragmentation
    데이터 스트림?을 작은 단편으로 분할해 더 안정적으로 데이터를 전달하기 위한 ip의 기능이라고 함.
    데이터링크 계층(네트워크 인터페이스, 대표적으로 이더넷)의 MTU 크기에 따라 패킷의 최대 크기가 결정된다고 함.
    MTU보다 패킷이 크면 단편화되는 거임.

IPv6

  • 128 비트 주소공간

주소

  • 은근히 까다로움

패킷 구조

  • IPv4 보다 오히려 더 단순해짐.

IPv6에서 ARP

  • 브로드캐스트가 비효율적이라 간주되어 브로드캐스트 트래픽을 지원하지 않는다고 함..
    유니캐스트, 멀티캐스트, 애니캐스트를 지원.
    브로드캐스트를 지원하지 않다 보니 ARP 이용 못함.

    그래서 NDP(Neighbor Discovery Protocol)라는 것을 사용한다고 함..
    NDP의 Neighbor Solicitation이라는 걸 이용한다고 하고...
    이 기능은 ICMPv6를 이용한다고 함...

단편화

일단 스킵

IPv6 전환 프로토콜?

일단 스킵

ICMP

  • Internet Control Message Protocol
    TCP/IP의 유틸리티 프로토콜이라고 함..
    대부분의 네트워크 문제 해결 도구는 ICMP 메시지 중심이라고 함..!
    RFC 792 - internet control message protocol

  • ICMP는 IP의 일부이고, 메시지를 전송하기 위해 IP에 의존한다고 함.

패킷 구조

ICMP 예시

  • ping (에코 요청, 응답)

  • traceroute
    한 컴퓨터에서 다른 컴퓨터로의 경로 파악하는데 사용된다고 함.
    IP의 도움을 받아 ICMP를 이용해 패킷 경로 파악 가능.

ICMPv6

  • RFC 4443

질문들

  • 같은 네트워크에 있다면 IP는 필요 없으려나?
    근데 같은 네트워크에 있는지는 어케 알 수 있을까?

  • ip 패킷 헤더에서 header length, total length등은 왜 필요함?

  • 잘못 구성된 라우터는 왜 잘못 구성된거임?
    라우팅 테이블이 잘못된 정보를 담고 있는 건가
    왜 잘못 구성됨?
    stale한 데이터 문제?

  • ipv6에는 checksum 없는데... 그럼 오류검사 안하는거임?
    -> layer 2랑 4에 이미 checksum있다고 함..
    그럼 ipv4도 checksum 하지말지 왜 한거..?

  • 트래픽 분류에서 애니캐스트가 뭔지 모름

  • NDP(Neighbor Discovery Protocol) 모름
    이웃 간청, 이웃 광고...

  • traceroute 내부 동작..
    TTL 값을 1씩 증가시키며 경로를 추적하는데..
    어떤 알고리즘 쓰였을지 (다익스트라?)
    Shortest Path with Dijkstra’s Algorithm

profile
집중 ➝ 프로세서↑ 시간 투자 ➝ 디스크↑

0개의 댓글