2013년 12월 24일 화요일

IPv6 주소지정 방식

IPv6 주소지정 개요:
주소지정 모델, 주소 유형과 주소 크기

  • IPv6 주소지정 모델 특성
      • IPv4와 기본적으로 동일한 특성들...
    • 주소의 핵심 기능
      • 네트워크 인터페이스를 식별하고 라우팅하기 위해 주소를 사용
    • 네트워크 계층 주소
    • 장비당 IP 주소의 수
    • 주소 해석과 접두사 표현
      • 클래스 비사용 IPv4 주소처럼 네트워크 식별자 부분과 호스트 식별자 부분으로 나누어짐
      • IPv6 주소 자체로 구별 안됨
      • CIDR과 유사하게 표기하는 접두사 길이로 네트워크 ID의 길이를 알림
    • 사설 주소와 공개 주소
  • IPv6가 지원하는 주소 유형
    • 유니캐스트 주소
      • 한 인터페이스당 한 주소
    • 멀티캐스트
      • 그룹으로 메시지를 전달하고, 속한 그룹의 모든 장비가 메시지를 받음
    • 애니캐스트
      • 특정 그룹의 어떤 멤버에게 전달되어야 하지만 모든 멤버에게 전달될 필요는 없음
      • 대표적인 예 : 특정 네트워크의 라우터 그룹이 부하를 분산하는 경우
      • 애니캐스트 주소가 생겼으므로 모든 장비가 서로 다른 IP 주소를 사용해야 한다는 불편함을 덜 수 있게 됐다.
  • IPv6 주소 크기와 주소 공간
    • 128비트 = 340,282,366,920,938,463,463,374,607,431,768,211,456개

IP 주소와 주소 표기법과 접두사 표현
일반16진수 표기법 805B 2D9D DC28 0000 0000 FC57 D4C8 1FFF
0 억제 표기법 805B 2D9D DC28 0 0 FC57 D4C8 1FFF
0 압축 표기법 805B 2D9D DC28 :: FC57 D4C8 1FFF
혼합 표기법 805B 2D9D DC28 :: FC57 212 200 31 255

  • IPv6 주소 16진법 표기법
    • 805B:2D9D:DC28:0000:0000:FC57:D4C8:1FFF
    • 805B:2D9D:DC28:0:0:FC57:D4C8:1FFF
  • IPv6 주소의 0 압축
    • 805B:2D9D:DC28::FC57:D4C8:1FFF
    • FF00:4501:0:0:0:0:0:32 -> FF00:4501::32
  • IPv6 혼합 표기법
    • 첫 96비트는 콜론 16진 표기법으로 표시하고 마지막 32비트만 부점 10진 표기법을 사용
    • 805B:2D9D:DC28:0:0:FC57:212.200.31.255
  • IPv6 주소 접두사 길이 표시
    • 접두사 주소 뒤에 슬래시(/)를 덧붙인 뒤 표시

IPv6 주소 공간 할당
처음 비트 IPv6 주소 공간의 비율 할당
0000 0000 1/256 할당되지 않음(미지정 주소/루프백 주소와 같은 특별한 주소가 여기에 속한다)
0000 0001 1/256 할당되지 않음
0000 001 1/128 NSAP 주소 할당을 위해 예약됨
0000 01 1/64 할당되지 않음
0000 1 1/32 할당되지 않음
0001 1/16 할당되지 않음
001 1/8 전역 유니캐스트 주소
010 1/8 할당되지 않음
011 1/8 할당되지 않음
100 1/8 할당되지 않음
101 1/8 할당되지 않음
110 1/8 할당되지 않음
1110 1/16 할당되지 않음
1111 0 1/32 할당되지 않음
1111 10 1/64 할당되지 않음
1111 110 1/128 할당되지 않음
1111 1110 0 1/512 할당되지 않음
1111 1110 10 1/1024 링크 로컬 유니캐스트 주소
1111 1110 11 1/1024 사이트 로컬 유니캐스트 주소
1111 1111 1/256 멀티캐스트 주소


IPv6 전역 유니캐스트 주소 포맷
    • 유니캐스트 주소는 001로 시작된다
  • 유니캐스트 주소 블록 구조
    • 인터넷 토폴로지 계층의 다양한 계층에서 주소 블록을 쉽게 할당할 수 있도록 한다.
    • 라우터가 인터넷으로 정보를 전달하는 계층 구조를 자동으로 IP 네트워크 주소에서 반영한다. 그래서 좀더 효율적인 라우팅을 위해 경로를 합산할 수 있다.
    • ISP와 같은 기관이 고객에게 주소 블록을 나누어 줄 수 있도록 유연성을 강화한다.
    • IPv4의 서브넷처럼 실제 사용자 기관이 내부 네트워크에 맞추어 주소 블록을 나눌 수 있도록 유연성을 강화한다.
    • IP 주소에 의미를 더 부여한다. 아무런 구조가 없은 단순한 비트열이 아니라 주소를 보면 정보를 얻을 수 있도록 한다.
  • 유니캐스트 주소 공간을 나누는 일반적인 방법
    • 유니캐스트 주소의 128비트를 가장 일반적으로 나누는 방법
필드명 크기(비트) 설명
접두사 n 전역 라우팅 접두사:
주소의 네트워크 ID나 접두사로 라우팅에서 사용한다.
서브넷 ID m 서브넷 식별자:
사이트에 있는 서브넷을 식별하기 위해 사용한다.
인터페이스 ID 128-n-m 인터페이스 식별자:
특정 인터페이스(호스트나 다른 장비)에 대한 유일한 식별자.
특정 접두사와 서브넷 내에서 고유해야 한다.

  • 유니캐스트 주소 공간의 IPv6 구현
    • IPv6는 라우팅 접두사로 48비트를, 하위 네트워크 식별자로는 16비트를 선택
필드명 크기(비트) 설명
접두사 48 전역 라우팅 접두사:
라우팅에서 사용하는 네트워크 ID 접두사.
처음 세 비트가 001이면 유니캐스트 주소이다.
서브넷 ID 16 서브넷 식별자:
사이트에 있는 서브넷을 식별한다.
인터페이스 ID 64 인터페이스 식별자:
특정 인터페이스(호스트나 다른 장비)를 식별하는 고유한번호.
특정 접두사와 서브넷 내에서 고유하다.


  • 원본 전역 라우팅 접두사 분할 방식: 집합자
      • 전체 48비트 중 45비트로 전역 라우팅 접두사를 나눌 수 있다.(처음 3비트는 001로 고정)
    • 최상위 집합자(TLA, Top-Level Aggregators)
      • 가장 큰 인터넷 기관을 가리킨다.
      • 등록 관리 기관에서 큰 IPv6 주소를 할당받는다.
    • 차순위 집합자(NLA, Next-Level Aggregators)
      • TLA에서 주소 블록을 할당받아 최종 사용자 기관(또는 사이트)에게 나누어 준다.
필드명 크기(비트) 설명
TLA ID
(최상위 집합자 ID)
13 최상위 집합자 식별자:
최상위 수준 집합자를 나타내는 전역 고유 식별자.
13비트를 사용하며 총 8,192 TLA를 생성할 수 있다.
RES (예약됨) 8 예약됨:
향후에 사용하기 위해 8비트는 예약해두고 0으로 설정한다.
TLA ID와 NLA ID 사이에 8 비트를 사용하지 않고 남겨 두어 필요할 때 TLA ID나 NLA ID 필드를 확장할 수 있게 한다.
NLA ID
(차순위 집합자 ID)
24 차순위 집합자 식별자:
각 TLA는 고객에게 주소 블록을 할당할 수 있는 24비트 필드를 가진다. NLA ID는 각 TLA ID마다 고유하다. 24비트의 사용은 TLA 기관의 재량에 따른다.


  • 전역 라우팅 접두사의 계층 분할 예
필드명 크기
(바이트)
설명
(유니캐스트 지정자) 3 모든 유니캐스트 주소는 001로 시작한다.
여기에는 특별한 이름이 없다(주로 포맷 접두사라고 부른다).
계층 1 ID 10 계층 1 식별자:
가장 높은 계층을 나타내는 식별자.
가장 큰 인터넷 기관이 가지는 전역 구조에서 가장 큰 주소 블록을 할당할 때 사용한다.
계층 1 기관의 수는 210이나 1,024개이다.
계층 2 ID 12 계층 2 식별자:
계층 1 기관이 할당받은 블록은 12비트를 사용하여 4,096 주소 블록으로 나누어 낮은 계층 기관에게 나누어 줄 수 있다.
계층 3 ID 23 계층 3 식별자:
계층 2 기관은 자신의 주소 블록을 23비트를 사용하여 나눈다.
그러므로 8백만 개가 넘는 /48 주소 블록을 생성하여 사용자에게 할당할 수 있다.
또는 계층 2 기관의 고객 성향에 맞추어 계층을 더 많이 만들 수도 있다.



IPv6 인터페이스 식별자와 물리 주소 매핑
IPv6 유니캐스트 주소의 마지막 64비트는 인터페이스 ID를 나타내는데 수정 EUI-64라고 하는 특별한 포맷을 가진다. 이더넷 네트워크 인터페이스 카드 등의 장비에 부여된 48비트 MAC 주소를 가지고 인터페이스 ID를 간단히 만들 수 있다. 네트워크 접두사(라우팅 접두사와 서브넷 ID)를 앞에 붙여 장비를 위한 IPv6 주소를 결정한다.

특별한 IPv6 주소: 예약, 사설, 미지정, 루프백

  • 특별 주소 유형
    • 예약 주소
      • IETF의 현재와 미래의 다양한 목적을 위해 예약된 공간
      • 0000 0000으로 시작하는 주소 공간의 꼭대기 부분
    • 사설/미등록/라우팅 불가 주소
      • 처음 9비트가 "1111 1110 1"
    • 루프백 주소
      • 단 하나의 루프백 주소 "::1"
    • 미지정 주소
      • 호스트 자신을 가리키는 주소 "::"
  • IPv6 사설 주소 유형 범위
    • 사이트 로컬 주소
      • 1111 1110 11로 시작하는 10비트
    • 링크 로컬 주소
      • 1111 1110 10로 시작하는 10비트


IPv4 주소 내장

    • IPv6 장비로 만들어진 두 네트워크가 IPv4로 연결되어 있다면 터널링을 사용하여 두 IPv6 네트워크를 연결시킬 수 있다.
  • IPv4 호환 IPv6 주소
    • IPv6 기능을 가지는 장비를 위한 특별한 주소
    • 96개의 0 뒤에 IPv4 주소
    • 예) ::101.45.75.219
  • IPv6 매핑된 IPv4 주소
    • 일반적인 IPv4 주소를 IPv6 주소 공간에 매핑할 때 사용
    • 오로지 IPv4만을 지원하는 장비를 위해 사용하는 주소
    • 80개의 0 뒤에 16개의 1 뒤에 IPv4 주소
    • 예) ::FFFF:222.1.41.90


IPv6 멀티캐스트와 애니캐스트 주소지정

    • 기본 주소 유형에서 브로트캐스트는 사라짐, 멀티캐스트 지원 강화, 애니캐스트
  • IPv6 멀티캐스트 주소
    • 한 데이터그램을 그룹 수신자 모두에게 한꺼번에 전송할 수 있다.
    • 1111 1111로 시작하는 주소는 모두 멀티캐스트 주소
    • 즉 FF 로 시작하면 멀티캐스트 주소
*IPv6 멀티캐스트 주소 포맷
필드명 크기
(바이트)
설명
(지정자) 8 처음 8비트는 항상 1111 1111로, 이것이 멀티캐스트 주소라는 것을 알린다.
이 필드는 포맷 접두사로 불리었으나 이제는 이것을 가리키는 특별한 이름이 없다.
플래그 4 멀티캐스트 주소의 특성을 알리기 위한 플래그로 사용하는 4비트이다.
현재는 처음 3비트는 사용되지 않으므로 0으로 설정한다.
4번째 비트는 임시(T, Transient) 플래그이다.
T 플래그가 0이면 멀티캐스트 주소를 영구적으로 할당하거나 잘 알려진 멀티캐스트 주소라는 뜻이다.
1이라면 임시로 사용하는 멀티캐스트 주소라는 뜻이다.
범위 ID 4 멀티캐스트의 범위를 정의하기 위해 4비트를 사용한다.
0에서부터 15까지의 16개의 범위를 정의할 수 있다.
범위 ID로 전체 인터넷에 대한 멀티캐스트 주소를 만들 수도 있고, 특정 기관, 사이트, 링크와 같이 작은 범위로 한정 지을 수도 있다.
기본값은 다음과 같다(10진수)
0 = 예약됨
1 = 노드 로컬
2 = 링크 로컬
5 = 사이트 로컬
8 = 기관 로컬
14 = 전역
15 = 예약됨
그룹 ID 112 각 영역 계층에 속하는 특정 그룹을 지칭한다.


    • 멀티캐스트 범위


    • 잘 알려진 멀티캐스트 주소
      • 임시(T, Transient) 플래그는 잘 알려진 주소들과 달리 일반적인 형태로 사용할 수 있는 멀티캐스트 주소라는 표식이다
      • '모든 노드'와 '모든 라우터' 멀티캐스트 주소는 결국 IPv4의 브로드 캐스트 기능과 동일
    • 요청 노드 멀티캐스트 주소
      • 일반적인 멀티캐스트 주소 외에 각 유니캐스트 주소는 요청 노드 주소(solicited-node address)라 불리는 특별한 멀티캐스트 주소를 가진다
      • IPv6 ND 프로토콜에서 사용한다
* 중요한 IPv6 유명 멀티캐스트 주소
멀티캐스트 주소
패턴
유효 범위 값
(10진수)
지향 범위 설명
FF0x:0:0:0:0:0:0 0에서 15 예약됨 112비트 그룹 ID가 모두 0인 멀티캐스트 주소는 모두 예약되어있다.
FF0x:0:0:0:0:0:1 1, 2 모든 노드 그룹 ID가 1이면 모든 노드에게 멀티캐스트 한다. 노드 로컬(FF01:0:0:0:0:0:1)이나 링크 로컬(FF02:0:0:0:0:0:1)로 멀티캐스트하는 주소가 여기에 속한다.
FF0x:0:0:0:0:0:2 1, 2, 5 모든 라우터 그룹 ID가 2이면 수신자 영역으로 결정된 곳에 있는 모든 라우터에게 전달한다. 노드 로컬, 링크 로컬, 사이트 로컬 영역을 사용할 수 있다.


  • IPv6 애니캐스트 주소
    • "데이터를 그룹 멤버 중 가장 가까운 멤버에게 보내시오" 의미
    • 하나 이상의 인터페이스에 같은 유니캐스트 주소를 할당할 때 자동적으로 애니캐스트 주소가 된다

IPv6 자동 구성과 주소 재지정
    • IPv6 네트워크에 있는 장비가 독립적으로 스스로를 구성할 수 있도록 하는 기능은 IPv6에서 가장 흥미롭고 앞으로 가치가 있는 기능이다.
  • IPv6 상태 비유지형 자동 구성
    • 실행 단계
      1. 링크 로컬 주소 생성
      2. 링크 로컬 주소 고유성 검사
      3. 링크 로컬 주소 할당
      4. 라우터 접촉
      5. 라우터 지시
      6. 전역 주소 구성
    • IPv6는 상태 비유지형 주소 자동 구성이라는 놀라운 기능을 사용하여 장비의 계층 2 주소를 가지고 특별한 과정을 거쳐 자신만의 IPv6 주소를 장비 스스로 생성할 수 있게 한다.
  • IPv6 장비 주소 재지정
    • IP 주소를 일정 시간 대여하는 방식

2013년 10월 24일 목요일

IPv6개요, IPv4에서 변경된 부분, IPv6로의 전이

IPv6의 동기와 개요
    • 상대적으로 작은 32비트의 주소 공간
    • 클래스 기반의 주소 할당 방식 때문에 주소 부족
      • CIDR과 IP NAT 기술로 부족현상을 조금 지연
  • IPv6 표준
    • 주요 기능은 1998년에 발표된 RFC 2460에서 RFC 2467까지에 이르는 일련의 RFC로 정의
    • RFC 2060
      • 주 IPv6 표준
      • 인터넷 프로토콜, 버전 6 명세
      • IPv6의 동작을 돕는 두 프로토콜
        • 인접 노드 발견 프로토콜(ND)
        • 인터넷 제어 메시지 프로토콜 버전 6 (ICMPv6)
    • RFC2373
      • IP 버전 6 주소지정 구조(IP Version 6 Addressing Architecture)
    • RFC 2374
      • IPv6 집선 가능한 전역 유니캐스트 주소지정 포맷
      • An IPv6 Aggregatable Global Unicast Address Format
  • IPv6 설계 목표
    • 더 넓은 주소 공간
    • 더 효율적인 주소관리
    • 주소 부족을 해결하기 위한 보조 방식의 제거
      • IPv6는 NAT나 그와 유사한 방식을 사용하지 않으며, 모든 TCP/IP 장비들이 공인 주소를 가질 수 있도록 한다.
    • 쉬운 TCP/IP 관리
    • 현대적인 라우팅 방식
    • 더 나은 멀티캐스팅 지원
    • 더 나은 보안 지원
    • 더 나은 이동성 지원

IPv6의 중요 변경 사항과 추가 사항
  • IPv6로 오면서 IPv4와 달라진 부분
    • 더 큰 주소 공간: 32비트 -> 128비트
    • 계층적 주소 공간
    • 유니캐스트 주소의 계층적 할당
    • 유니캐스트 이외의 주소에 대한 더 나은 지원
      • 애니캐스트(이 그룹 멤버 중에서 가장 가까운 멤버에게 전달) 추가
    • 자동 구성과 주소 재지정
    • 새 데이터그램 포맷
    • 서비스 품질 보장(QoS) 지원
    • 보안 지원
    • 단편화와 재조합 과정 개선
    • 현대화된 라우팅 지원
    • 전이 기능
    • 다른 프로토콜의 변경

IPv4에서 IPv6로의 전이
  • IPv4에서 IPv6로의 전이 방법
    • 이중 스택 장비
    • IPv4/IPv6 변환
    • IPv4 터널링

2013년 10월 23일 수요일

IP 라우팅과 멀티캐스팅

IP 데이터그램 전달
  • 직접 데이터그램 전달
    • 데이터그램이 동일한 물리 네트워크의 두 장비 간에 송수신될 때는 출발지 장비에서 목적지 장비로 직접 전달된다.
  • 간전 데이터그램 전달(라우팅)
    • 두 장비가 동일한 물리 네트워크에 있지 않을 경우의 데이터그램 전달
  • 데이터그램 라우팅과 주소지정의 관계

IP 라우팅 개념과 다음 홉 라우팅 과정
  • 다음 홉 라우팅(next-hop routing)
    • 데이터그램은 목적지 장비가 있는 물리 네트워크에 도달할 때까지 한 라우터에서 다음 라우터로 전달된다.
  • IP 데이터그램 간접 전달은 다음 홉 라우팅이라는 과정을 통해 수행된다.
  • 여기서 각 메시지는 목적지 네트워크에 도달할때까지 한 라우터에서 다른 라우터로 전달된다.
  • 이 방법의 주요 장점은 각 라우터가 모든 목적지 네트워크로의 정확한 경로를 아는 것이 아니라 주어진 데이터그램의 다음 이웃 라우터만을 알면 된다는 것이다.


IP 경로와 라우팅 테이블
  • 라우터는 내부 라우팅 테이블을 통해 데이터그램을 어떻게 라우팅할지 결정한다.
  • 이 테이블은 데이터그램이 특정 네트워크에 도달하기 위해 어떤 라우터를 이용해야 하는지를 알려주는 항목을 포함한다.
  • 라우팅 가능한 프로토콜과 라우팅 프로토콜은 서로 다르다.
  • IP는 라우팅 가능한 프로토콜인데, 그것은 IP 메시지(데이터그램)가 라우팅 가능하다는 것을 의미한다.
  • 라우팅 프로토콜의 예로 라우팅 정보 프로토콜(RIP, Routing Information Protocol)과 경계 경로 프로토콜(BGP, Border Gateway Protocol) 등이 있는데 이들은 라우터 간에 라우팅 정보를 교환하는 데 쓰인다.

서브넷 또는 CIDR 환경에서의 IP 라우팅


IP 멀티캐스팅
    • 멀티캐스팅 - 한 장비가 여러 수신자에게 메시지를 보내는 기능
  • 멀티캐스트 주소지정
    • 클래스 D 블록이 멀티캐스트 주소로 예약
  • 멀티캐스트 그룹관리
    • 장비는 동적으로 그룹에 참여하거나 탈퇴할 수 있어야 함
    • 그룹 정보는 IP 인터네트워크로 전파되어야 함
    • 인터넷 그룹 관리 프로토콜(IGMP)
      • Internet Group Management Protocol
      • 인터넷의 장비와 라우터들이 서로 그룹과 그룹 가입 정보를 교환할 수 있도록 하는 메시지 포맷을 정의
  • 멀티캐스트 데이터그램 처리와 라우팅
  • IP 멀티캐스팅은 한 장비가 사설 인터네트워크나 전역 인터넷을 통해 여러 장비로 정보를 보낼 수 있도록 하는 특수 애플리케이션을 개발할 수 있도록 한다.
  • IP 멀티캐스팅은 기존의 유니캐스트 IP보다 복잡하며, 주소지정과 라우팅 부분에서 특수한 주의를 필요로 한다.

2013년 10월 16일 수요일

IP 데이터그램 크기, 단편화, 재조합

IP 데이터그램 크기, MTU, 단편화 개요
  • IP 데이터그램 크기와 하부 네트워크 프레임 크기
    • 장비가 다른 장비와 연결하기 위해 사용하는 네트워크
      • 근거리(LAN) 연결(이더넷이나 토큰링 등)
      • 무선 LAN(WLAN) 링크(802.11)
      • 전화 접속 연결
      • 디지털 가입자 회선(DSL, Digital Subscriber Line) 연결
      • T1 링크
      • 기타 원거리(WAN) 등
      • 광섬유 분산 데이터 인터페이스(FDDI, Fiber Distributed Data Interface) 네트워크
        • 데이터 필드의 최대 데이터 크기 : 약 4,470바이트
    • 일반 이더넷 프레임
      • 페이로드의 크기를 1,500바이트로 제한
  • MTU와 데이터그램 단편화
    • MTU, maximum transmission unit 또는 maximum transfer unit
      • 물리 네트워크로 전달될 수 있는 최대 IP 데이터그램의 크기
      • 큰 MTU를 가진 네트워크에서 온 데이터그램이 작은 MTU를 가진 네트워크로 전달되려면 작은 MTU에 맞게 단편화돼야 한다.
  • 다중 단계 단편화
    • 중간 라우터는 이미 단편화된 IP 메시지를 다시 단편화할 수 있지만, 단편들을 재조합하지는 않는다.
    • 재조합은 수신 장비에서 일어난다.
  • 인터넷 최소 MTU
    • 576바이트 (RFC 791에서 지정)
    • 512바이트의 데이터 블록 + 표준 IP 헤더와 옵션
  • MTU 경로 발견
    • 종단 장비들은 TCP/IP의 ICMP에 내장된 에러 보고 방식을 이용하는 MTU 경로 발견(path discovery)을 통해 전체 경로의 MTU를 파악할 수 있다.

IP 메시지 단편화 과정
  • 하나의 메시지가 여러 조각으로 단편화되면 발생하는 문제
    • 순서와 위치 지정
    • 단편화 메시지 분리
    • 재조합 종료
  • IP 단편화 과정

  • 단편화 관련 IP 데이터그램 헤더 필드
    • 전체 길이
      • 각 단편의 길이를 나타낸다
    • 식별자
    • MF(More Fragments)
      • 맨 마지막 단편만 0으로, 나머지는 1로 설정
    • 단편화 오프셋
      • 13비트이므로 0에서 8,191까지 값을 가짐
      • 단편은 8바이트 단위로 지정
      • 위의 그림에서 셋째 단편의 오프셋은 820(6,560/8)이다.

IP 메시지 재조합

  • 재조합은 메시지의 최종 목적지 장비에서만 일어남
    • 단편이 다양한 경로를 거칠 수 있기 때문에 라우터가 모든 단편을 모은다는 것을 보장할 수 없음
    • 라우터가 단편 모으기 하면 비효율적임
  • 재조합 과정
    • 단편 인식과 단편화된 메시지 식별
    • 버퍼 초기화
    • 타이머 초기화
    • 단편 수신과 처리



2013년 10월 7일 월요일

인터넷 프로토콜 데이터그램 캡슐화와 포매팅

IP 데이터그램 캡슐화

  • 상위 계층 메시지는 TCP나 UDP 메시지로 패키징되고 그것은 다시 IP 데이터그램의 페이로드가 된다.
  • IP 데이터그램은 2계층으로 전달되어 LAN, WAN, WLAN 프레임으로 캡슐화된다.
  • 그리고 물리 계층에서 비트로 변환되어 전송된다.


IP 데이터그램 일반 포맷

  • 인터넷 프로토콜 버전 4 (IPv4) 데이터그램 포맷
필드 이름 크기(바이트) 설명
버전 1/2(4비트) 데이터그램을 만드는 데 쓰인 IP 버전을 나타낸다.
IHL 1/2(4비트) IP 헤더 길이를 32비트 워드 단위로 지정한다.
TOS 1 서비스 품질 기능(예: IP 데이터그램에 우선 순위를 줘서 전송)을 제공하기 위한 정보를 전달하는 필드.
TL 2 IP 데이터그램의 전체 길이를 바이트 단위로 지정한다.
식별자 2 이 필드는 특정 메시지에 속한 각 단편과 연관된 16비트 값을 포함한다.
플래그 3/8(3비트) 3개의 제어 플래그, 2개는 단편화 관리용, 1개는 예약
단편화 오프셋 1 5/8(13비트) 메시지 단편화가 일어날 때 이 필드는 전체 메시지 안에서 이 데이터의 위치, 또는 오프셋을 8바이트(64비트) 단위로 나타낸다.
TTL 1 이 필드는 데이터그램이 네트워크에서 얼마나 오래 살아남을 수 있는지를 라우터 홉 수로 나타낸다.
프로토콜 1 데이터그램에서 운반하는 상위 계층 프로토콜을 식별한다.
헤더 체크섬 2 전송 중 오류를 방지하기 위해 헤더에 대한 체크섬을 계산한다.
출발지 주소 4 데이터그램을 처음 송신한 장비의 32비트 IP 주소다.
목적지 주소 4 데이터그램의 목적지 장비의 32비트 IP 주소다.
옵션 가변적 일부 IP 데이터그램에서 표준 헤더 뒤에 올 수 있는 하나 이상의 옵션 유형
패딩 가변적 하나 이상의 옵션이 IP 헤더에 포함됐는데 그 옵션 비트 수가 32의 배수가 아닐 경우에는 헤더 길이를 32비트(4바이트)의 배수로 맞추기 위해 0비트 패딩이 추가됨
데이터 가변적 데이터그램에서 전송할 데이터로 전체 상위 계층 메시지이거나 아니면 단편화된 메시지의 일부


  • IPv4 플래그 하위 필드

하위 필드 이름 크기(바이트) 설명
예약 1/8(1비트) 쓰이지 않음
DF 1/8(1비트) 1로 설정 : 데이터그램을 단편화하지 말라는 것을 나타냄
링크의 최대 전송 단위(MTU)를 검사하는 데 쓰임
MF 1/8(1비트) 0으로 설정: 메시지의 마지막 단편이라는 것을 나타냄
1로 설정: 단편화된 메시지의 일부분이 아직 남아 있다는 것을 나타냄


  • IPv4 프로토콜 하위 필드

값(16진수) 값(10진수) 프로토콜
00 0 예약
01 1 ICMP
02 2 IGMP
03 3 GGP
04 4 IP-in-IP 캡슐화
06 6 TCP
08 8 EGP
11 17 UDP
32 50 보안 페이로드 캡슐화(ESP) 확장 헤더
33 51 인증 헤더(AH) 확장 헤더

  • IPv4 데이터그램 포맷

  • IP 데이터그램 TTL(Time to Live) 필드
    • 데이터그램이 무한히 인터넷을 방황하지 않도록 하기 위함
    • 데이터그램의 최대 홉 수를 나타냄
    • 라우터는 데이터그램을 처리할 때마다 TTL 필드를 1만큼 감소
    • TTL 값이 0이되면 데이터그램은 버려지며 최초 송신자에게 ICMP(Internet Control Message Protocol) 시간 초과(Time Exceeded) 메시지가 전송됨
  • IP 데이터그램 서비스 유형(TOS, Type of Service) 필드
    • 원래 IP 데이터그램 전달을 위한 특정 서비스 품질(QoS, quality-of-service) 기능을 제공하기 위해 고안된 1바이트
    • 거의 사용되지 않음
    • RFC 2474는 TOS 필드의 처음 6비트를 차등화 서비스(DS, Differentiated Services)라는 기술을 지원하도록 재정의
    • DS에서 TOS 피드의 값은 코드포인트(codepoint)라고 불림

IP 데이터그램 옵션과 옵션 포맷
  • 모든 IP 데이터그램은 표준 20바이트 헤더를 포함함
  • IP 헤더에서 옵션 필드의 전체 길이는 가변적
  • IPv4 옵션 포맷
하위 필드 이름 크기(바이트) 설명
옵션 유형 1 옵션 유형 하위 필드는 3개의 하위 필드로 다시 세분화 됨
옵션 길이 0 또는 1 가별 길이 옵션의 경우, 전체 옵션의 길이를 바이트로 나타냄
옵션 데이터 0 또는 가변적 가변 길이 옵션의 경우, 옵션의 일부로 전달할 데이터를 포함함


  • IPv4 옵션: 옵션 유형 하위 필드

하위 필드 이름 크기(바이트) 설명
복사 플래그 1/8(1비트) 데이터그램이 단편화될 때 옵션을 모든 단편에 복사해야 할 경우 1로 설정
옵션 클래스 2/8(2비트) 옵션이 속한 일반 범주를 명시하는 4개 값 중 하나를 지정. 실제로 쓰이는 값은 0(제어옵션)과 2(디버깅과 측정)의 두가지다.
옵션 번호 5/8(5비트) 옵션의 종류를 지정한다. 두 옵션 클래스 각각에 대하여 32개의 서로 다른 값을 지정할 수 있다.


  • 널리 쓰이는 IPv4 옵션
옵션 클래스 옵션 번호 길이(바이트) 옵션 이름 설명
0 0 1 옵션 목록 끝 옵션 목록의 끝을 표시하는 데 쓰이는, 단지 하나의 0바이트를 포함하는 옵션
0 1 1 동작 없음 필요할 경우 특정 옵션을 32비트 경계에 정렬하기 위해 내부적으로 패딩하는 데 쓰이는 "더미 옵션"
0 2 11 보안 군대에서 IP 데이터그램의 보안 등급을 지정하는 데 쓰이는 옵션
0 3 가변적 Loose 소스 라우팅 IP 데이터그램 소스 라우팅에 쓰이는 두 옵션 중 하나
0 7 가변적 경로 기록 데이터그램의 경로를 헤더 자체에 기록하는 데 쓰인다.
0 9 가변적 Strict 소스 라우팅 IP 데이터그램 소스 라우팅에 쓰이는 두 옵션 중 하나
2 4 가변적 시간 경로 기록 옵션과 유사하게 동작하지만 각 장비가 IP 주소 대신 시간 정보를 기록한다.
2 18 12 Traceroute RFC 1393에서 설명하는 traceroute 유틸리티의 개선된 버전에서 쓰인다.
    • 소스 라우팅 (RFC 791 참고)
      • 일반적으로 라우팅은 라우터의 몫
      • 데이터그램 최초 송신 장비가 경로를 지정하는 경우 소스라우팅
      • 2개의 IP 옵션이 소스 라우팅 지원
      • 옵션은 IP 주소 목록을 포함
      • strict 소스 라우팅
        • 옵션에 지정된 경로가 순서대로 정확히 사용되어야 함
        • 다른 라우터는 데이터그램을 절대로 처리하면 안됨
      • loose 소스 라우팅
        • 중간에 거쳐가야 할 IP 주소 목록을 지정
        • 목록에 있는 장비 사이에 다른 홉이 들어올 수 있도록 함

2013년 10월 6일 일요일

IP 클래스 비사용 주소지정 - 클래스 비사용 도메인 간 라우팅/슈퍼네팅

IP 클래스 비사용 주소지정과 슈퍼네팅 개요

  • 클래스 단위 주소지정의 주요 문제점
    • 세밀성이 떨어짐
    • 클래스 B는 많이 소요되나 클래스 C는 인기가 없음
    • 낭비되는 클래스 B 대신 클래스 C 10개를 사용하면 라우터가 10배의 항목을 관리 하게 됨
  • 해결책: 주소 클래스 제거
    • 네트워크 크기가 오직 3단계로 구분된다면 할당 효율 문제를 적절히 해결하는 것은 불가능
    • 클래스를 완전히 제거한 클래스 비사용 할당 방법 사용
    • 클래스 비사용 도메인간 라우팅(CIDR, Classless Inter-Domain Routing)
      • 주소지정과 라우팅 모두를 다룬다.
      • CIDR을 때때로 슈퍼네팅(supernetting)이라 부름
        • 서브네팅의 원리를 대형 네트워크에 적용
      • 가변 길이 서브넷 마스킹(Variable Length Subnet Masking)을 인터넷에 적용한 것
  • 클래스 비사용 주소지정과 라우팅의 주요 장점
    • CIDR은 클래스 단위 주소지정 방법에 비해 여러 장점이 있음
      • 효율적인 주소 공간 할당
      • 클래스 불균형 제거: 클래스 A, B, C 네트워크 존재 않음
      • 효율적인 라우팅 항목 관리
      • 별도의 서브네팅 방법이 필요 없음

IP 슈퍼네팅: CIDR 계층적 주소지정과 표기법
  • CIDR(슬래시) 표기법
    • CIDR에는 주소 클래스가 없기 때문에 주소만으로 네트워크 ID의 크기를 파악할 수 없다.
    • CIDR에서는 접두사(네트워크 ID)의 길이를 주소 뒤의 슬래시 다음에 표시한다.
    • 이것을 CIDR 표기법 또는 슬래시 표기법이라고 부른다.
  • 슈퍼네팅: 인터넷 서브네팅
    • 인터넷 할당번호 관리기관(IANA, Internet Assigned Numbers Authority)은 모든 사람에게 네트워크 ID를 나눠 줬으며 그것을 받은 사람은 호스트 ID를 부여함.
    • IANA/ICANN은 주소를 대형 블록으로 나눠 4개의 대륙별 인터넷 레지스트리(RIR, regional Internet registries)인 APNIC, ARIN, LACNIC, RIPE NCC에 분배
    • RIR은 주소 블록을 더욱 세분화하여 하위 수준의 국가 인터넷 레지스트리(NIR, national Internet registries), 지역 인터넷 레지스트리(LIR, local Internet registries)와 인터넷 서비스 제공자(ISP) 같은 개별 기관에 분배
  • 클래스 단위 주소지정과 클래스 비사용 주소지정의 공통점
    • 사설 주소 블록
      • 일부 주소 블록은 사설 네트워크 주소를 위해 예약
    • 특수 의미를 갖는 주소
      • 모두 1과 모두 0에 대한 의미는 그대로 유지
    • 루프백 주소
      • 네트워크 127.0.0.0 (127.0.0.0/8)은 루프백 기능으로 예약

IP 서브넷 주소지정 개념

※클래스 단위 주소지정에 근거를 두고 있는 서브네팅은 오늘날 진부한 기술로 취급 받고 있다. 서브넷과 서브넷 마스크의 개념은 아직까지 남아 있기는 하지만, 클래스 A, B, C 인터넷 주소 블록을 할당하고 그것을 서브넷으로 구분하는 방법은 더 이상 쓰이지 않는다.

IP 서브넷 주소지정 개요, 동기, 장점
    • 서브넷 주소지정은 IP 주소 해석 과정에 하나의 단계를 추가했다.
    • 그래서 네트워크, 네트워크가 포함하는 서브넷, 서브넷이 포함하는 여러 호스트의 3단계 계층 구조가 생성된다.
  • 장점
    • 물리 네트워크 구조에 더 잘 들어맞음
    • 유연성
    • 공중 인터넷에는 보이지 않음
    • 새로운 IP 주소를 요청할 필요가 없음
    • 라우팅 테이블 항목을 많이 넣을 필요가 없음
  • 서브넷 마스크
    • 32비트 구성
    • 서브넷 ID와 호스트 ID를 구분하기 위한 정보
  • 라우팅 정보 프로토콜(RIP, Routing Information Protocol)과 같은 라우팅 프로토콜 변경
  • 단점
    • 실제 동작 방법을 이해하기가 어렵다.

IP 서브네팅: 3단계 계층적 IP 서브넷 주소지정
  • 클래스 단위 네트워크는 호스트 ID를 서브넷 ID와 호스트 ID로 나눔으로써 서브넷으로 변환된다.
  • 이들 비트는 네트워크 내에서 개별 서브넷을 식별하는 데 쓰인다.
  • 호스트들은 이 서브넷에 할당된다.

IP 서브넷 마스크, 표기법, 서브넷 계산
  • 서브넷 마스크의 기능
    • IP 주소에 따라다니는 32비트 2진수
    • 네트워크 ID나 서브넷 ID에 해당하는 부분을 1로, 호스트 ID에 해당하는 부분을 0으로 설정하여 생성됨
    • 서브넷 마스크를 통해 TCP/IP 장비는 IP 주소의 어떤 비트가 네트워크 ID와 서브넷 ID에 속하는지, 그리고 어떤 비트가 호스트 ID에 속하는지를 알아냄
  • 서브넷 마스크 표기법
    • 클래스 B 네트워크에서 5비트 서브넷 ID와 11비트 호스트 ID의 경우 서브넷 마스크는 11111111 11111111 11111000 00000000(2)이 된다.
    • 이것을 부점 10진 표기법으로 255.255.248.0이 된다.
  • 서브넷 마스크 적용
    • 서브넷 마스크는 편의를 위해 부점 10진 표기법으로 표현되기도 한다. 그렇지만 컴퓨터는 서브넷 마스크를 2진수로 인식하며 마스크의 동작 방식과 서브넷 ID 비트의 수를 이해하기 위해 2진수로 표현되는 경우가 많다.
  • 서브넷 마스크 표기법 원리
    • 마스크를 하나의 숫자로 표현하는 방법이 지금은 많이 쓰임
    • IP 주소가 154.71.150.42이고 서브넷 마스크가 255.255.248.0이라 하는 대신 154.71.150.42/21 이라고 표현 할 수 있음
    • 이것을 슬래시 표기법 또는 클래스 비사용 도메인간 라우팅(CIDR, Classless Inter-Domain Routing) 표기법이라 부름
    • 이 표기법은 가변 길이 서브넷 마스킹(VLSM, Variable Length Subnet Masking) 환경에 더 자주 쓰임

주소 클래스 A, B, C의 IP 기본 서브넷 마스크
    • 네트워크 ID 부분은 1, 서브넷 ID 부분은 없고, 호스트 ID 부분은 0
  • 클래스 A : 255.0.0.0
  • 클래스 B : 255.255.0.0
  • 클래스 C : 255.255.255.0

IP 커스텀 서브넷 마스크
    • 커스텀 서브네팅: 서브넷 ID와 호스트 ID를 구분하는 지점을 네트워크에 맞게 선택할 수 있는 서브네팅
  • 얼마나 많은 서브넷 비트를 사용할지 결정
    • 서브네팅의 근본적인 균형 관계는 서브넷 ID에 1비트를 추가할 때마다 서브넷의 수는 2배가 되지만 서브넷별 호스트의 수는 약 1/2로 줄어든다는 것임
  • 커스텀 서브넷 마스크 결정
    • 서브넷 구분 방법을 결정했으면, 네트워크의 기본 서브넷 마스크에서 서브넷 ID에 해당하는 비트 수 만큼 0을 1로 바꿔서 커스텀 서브넷 마스크를 얻을 수 있다.
  • 서브넷별 호스트 수와 네트워크별 서브넷 수에서 2를 뺌
    • 서브넷 ID에 7비트나 8비트를 사용할 수 없다. 호스트 ID - 2개이므로.

IP 서브넷 식별자, 서브넷 주소, 호스트 주소
  • 서브넷 식별자
    • 모두 0이나 모두 1로 되어 있는 서브넷 ID는 제외
  • 서브넷 주소
    • 서브넷의 식별자는 서브넷 ID이다. 서브넷 주소는 전체 네트워크 주소의 서브넷 비트를 서브넷 ID로 대체하여 얻을 수 있다.
  • 각 서브넷 내의 호스트 주소
    • 모두 0으이나 모두 1로 설정된 호스트 ID는 사용하지 않음
※서브넷 ID는 네트워크 전체에서 동일한 길이를 갖는다. 그래서 만약 호스트 수가 크게 다른 서브네트워크를 가지고 있을 경우 문제가 생길 수 있다.


IP 가변 길이 서브넷 마스킹

  • 가변 길이 서브넷 마스킹(VLSM, Variable Length Subnet Masking)
    • 기본 서브넷 주소지정 방법의 문제점을 해결하기 위한 방법
    • 네트워크를 서브넷으로 나눈 뒤, 그 서브넷을 다시 서브넷으로 나누는 것
    • 서브네팅을 여러 번 반복하여 네트워크를 크기가 다른 여러 서브네트워크 계층으로 구분하는 기법
  • VLSM을 이용한 다중 단계 서브네팅
    • VLSM에서는 이진 서브넷 마스크 대신 클래스 비사용 주소지정의 슬래시 표기법이 널리 쓰임
    • VLSM예제
  • VLSM을 사용하려면 VLSM 기능이 있는 라우팅 프로토콜을 지원하는 라우터가 필요하다.