Ch 3. IPv6


IPv6

IPv6의 특징

확장된 주소 공간

  • IPv4의 주소 부족 문제, 보안 문제를 해결하기 위하여 주소 체계를 128비트로 확장한 인터넷 프로토콜 주소.

헤더 단순화

  • IPv4에서 자주 사용하지 않는 헤더 필드를 제거함. (단편화 관련 필드, 체크섬 필드 삭제)
  • 추가적으로 필요한 기능은 확장헤더를 사용하여 수행한다.
  • IPv6의 기본 헤더는 40바이트

보안 / 개인보호에 관련된 기능 지원

  • 보안과 관련된 인증절차, 데이터 무결성 보호, 선택적인 메시지 발신자 확인 기능 등을 프로토콜 차원에서 지원함.
  • 확장 헤더를 이용하여 종단간 암호화 기능을 지원, 패킷에 대한 변조 방지.

자동 주소 설정

  • IPv6에서는 라우터가 제공하는 네트워크 프리픽스 정보와 MAC주소를 사용하여 자동으로 로컬 IPv6 주소를 생성한다.

상태 보존형 자동 설정 (Stateful auto-configuration)

  • DHCP 서버로부터 모든 네트워크 정보를 받는 방식
  • 주소를 요청받은 DHCP는 호스트에 할당 가능한 주소를 전달한다.
  • 장점: 주소를 효율적으로 이용하고 인증과정을 통해 보안 유지가 가능
  • 단점: 서버에 대규모 데이터베이스가 준비되어야 함

    비상태형 자동 설정(Stateless auto-confuguration)

  • 호스트가 자신의 인터페이스 정보와 라우터에서 얻은 네트워크 정보를 이용하여 자체적으로 IPv6주소를 생성하는 방식
  • 장점: 서버가 필요없음.
  • 단점: 권한이 없는 엑세스가 들어오는 등 보안 문제가 발생할 가능성이 있다.

IPv6 패킷 포맷

  • IPv4의 헤더 길이, 식별자, 플래그, 분할 옵셋(Fragment Offset), 헤더 체크섬 필드가 제거되었음.
  • 서비스 타입(TOS)는 트래픽 클래스(Traffic Class) 필드로 대체됨
  • 프로토콜 타입 필드와 TTL 필드는 다음 헤더(Next Header), 홉 제한(Hop Limit) 필드로 이름이 변경

트래픽 클래스 (Traffic Class)

  • IPv6 패킷의 클래스 또는 우선 순위를 나타내는 8비트 필드
  • 실시간 데이터와 같이 특별한 처리가 필요한 경우 특정 값을 사용하여 다른 패킷과의 차별화를 갖는다.
  • IPv4 패킷으로 변환될 때 TOS 필드 값 계산에 활용됨

플로우 레이블(Flow Label)

  • 동일한 서비스 클래스를 필요로하는 패킷들을 표현하는 20비트 필드
  • 디폴드 값은 0이며 음성, 화상 등 실시간 데이터의 경우 이외의 값으로 저장된다.

페이로드 길이 (Paylod Length)

  • 전송되는 데이터의 크기를 바이트 단위로 표현하는 16비트 필드
  • 최대 $2^{16}$바이트 표현 가능하며 이보다 큰 데이터를 보낼 때 점보 페이로드 옵션을 사용한다.
  • 점보 페이로드 옵션 사용시 필드 값은 0으로 설정.

다음 헤더(Next Header)

  • IPv6 기본 헤더 이후의 확장 헤더 종류를 표현하는 8비트 필드
  • 각 확장 헤더는 다음 헤더 필드 값을 통해서 알 수 있다.

홉 제한(Hop Limit)

  • 패킷이 경유할 수 있는 최대 라우터 홉 수를 표현하는 8비트 필드
  • 라우터를 지날때 마다 1씩 감소하여 0이 되면 패킷을 폐기하고 송신측에 ICMP메시지를 전달한다.

확장 헤더의 순서

  • 확장 헤더는 정해진 순서로 사용되며 각 확장 헤더는 생략될 수 있지만 다른 순서로는 사용될 수 없다.
  • 목적지 옵션 헤더: 확장 헤더에 두번 사용될 수 있음.
    • 라우팅 헤더 앞 - 전송 경로에 있는 노드에서만 사용됨.
    • 마지막 옵션 헤더 - 최종 목적지 호스트에서만 사용됨.

확장 헤더 포맷

  • 다음 헤더 필드: 다음에 위치할 헤더의 종류를 1 바이트로 표현
  • 헤더 길이: 확장 헤더 데이터 길이를 1 바이트로 표현
  • 옵션 데이터 필드: 확장 헤더의 종류에 따라 다르게 사용

홉-바이-홉 옵션(Hop-by-hop option)

  • 패킷의 전달 경로에 있는 모든 노드에서 해당 옵션을 처리하고자 하는 경우에 사용
  • 경로상의 모든 라우터에 패킷을 전달하고자 하는 경우, 홉-바이-홉 옵션을 사용하여 한 번에 전송한다.
  • 홉-바이-홉 옵션 타입
    • Pad1 - 한 바이트 패딩 데이터를 삽입하여 다른 옵션들을 4 바이트 단위로 정렬하기 위해 사용
    • PadN - 여러 바이트의 패딩을 위해 사용, 옵션 타입값 1
    • 점보 페이로드 - 정해진 페이로드 길이(65,535 bytes)보다 큰 패킷을 전송하기 위해 사용, 옵션 타입값 194, 옵션 길이 4바이트로 사용
    • 라우터 경고 - 패킷이 경유하는 모든 라우터에게 IP 패킷의 내용을 더 자세히 검사하도록 경고하는 옵션, 라우터 경고 옵션은 대역폭 예약 프로토콜인 RSVP(Resource Reservation Protocol)와 같이 경로상의 모든 라우터에서 특정한 처리를 필요로 하는 경우에 사용.

라우팅 헤더 옵션(Routing Header Option)

  • 송신 측에서 지정한 경로를 따라서 패킷을 전송하도록 하는 옵션
  • 다음 헤더 값 43
  • IPv4의 엄격한 소스 라우팅 옵션(라우터 타입 필드 값: 0)과 느슨한 소스 라우팅 옵션(라우터 타입 필드 값: 1)을 모두 지원

분할 헤더 옵션(Fragment Header Option)

  • 전송 경로의 MTU보다 더 큰 패킷을 나누어 전송할 때 사용하는 옵션
  • 다음 헤더 필드 값 44
  • 분할 옵셋 필드: 전체 데이터에서 해당 패킷의 상대적인 위치를 8바이트 단위로 표현
  • M(More Fragment Flag) 비트: 전체 데이터에서 패킷이 마지막인지 아닌지를 나타내는 비트, 0인 경우 해당 패킷은 마지막 분할 패킷임을 명시함.
  • 분할 식별자: 동일한 데이터로부터 분할된 패킷들은 같은 분할 식별자를 갖는다.

인증 헤더 옵션(Authentication Header Option)

  • 수신한 패킷이 정확한 송신자로부터 올바른 메시지를 받았는지 확인하는 옵션
  • 송신자 인증 및 데이터 무결성을 확인함.
  • 다음 헤더 필드 값 51

목적지 헤더 옵션(Destination Header Option)

  • 목적지 호스트에서만 특정 작업을 수행하고 싶을 때 사용하는 옵션
  • 다음 헤더 필드 값 60

IPv6 주소

IPv6 주소 구성

  • 주소 형태를 기술하는 필드인 포맷 프리픽스(Format Prefix)와 순수한 주소를 나타내는 주소 필드로 구성
  • IPv6주소는 전송 방법에 다라 유니캐스트, 멀티캐스트, 애니캐스트 주소로 구분한다.

IPv6 주소 표기법

기본 표기법

  • 128비트로 구성된 IPv6주소는 16비트씩 콜론으로 나누고 각 필드를 16진수로 표현한다.
  • ex) 3ffe:1900:4545:0003:0200:f8ff:ffff:1105

주소 생략법

  • 16비트씩 나눈 각 필드에서 상위 0은 생략하여 표현
  • 0으로만 구성된 필드가 연속될 경우 필드 안의 0을 모두 삭제하고 2개의 콜론만으로 표현한다. (단, 생략된 필드의 크기를 유추하기 위하여 생략은 한번만 가능하다.)
  • ex) 3ffe : 0501 : 0000 : 0000 : 0000 : 97ff : 0000 : efab -> 3ffe : 501 : : 97ff : 0 : efab

IPv4 주소의 IPv6 주소 표기

  • IPv4의 주소를 하위 32비트에 그대로 채우고, 나머지 상위 96 비트를 모두 0으로 채우는 방식을 사용한다.
  • 하위 32비트는 IPv4형식으로 IPv6 주소를 표현할 수 있음.
  • ex) 203.252.53.46 -> : : 203.252.53.46

주소 프리픽스 표기

  • IPv6 주소 뒤에 “/“를 표기하고 네트워크 프리픽스 길이를 10진수로 표현한다.
  • ex) 3ffe : 0501 : 97ff : : efab / 70 => 네트워크 프리픽스 주소의 길이는 70비트

출처: 정진욱, 김현철 공저. “TCP/IP와 인터넷”, pp 82-117. 2004. (주)생능출판사

댓글