본문 바로가기

클라우드/Kubernetes(쿠버네티스)

[kubernetes] IPv4/IPv6 이중 스택

 

IPv4/IPv6 이중 스택

FEATURE STATE: Kubernetes v1.21 [beta] IPv4/IPv6 이중 스택 네트워킹을 사용하면 파드와 서비스에 IPv4와 IPv6 주소를 모두 할당할 수 있다. IPv4/IPv6 이중 스택 네트워킹은 1.21부터 쿠버네티스 클러스터에 기본

kubernetes.io

 

IPv4/IPv6란?

IPv4

  • IPv4는 Internet protocol version 4의 약자이며 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이자 유일한 프로토콜로, IETF(인터넷 표준화 기구)RFC 791에 문서화 되어 있다.
  • IPv4는 32비트 방식이다.
  • 따라서 4개로 나눠진 최대 12자리의 번호로 이뤄져 있다.
  • 예를 들면, '192.168.111.224'이다.
  • 비트 수에 따라 개수가 정해지므로 2의 32승인 43억개의 주소가 만들어질 수 있다.
  • 인터넷상의 각 컴퓨터들은 호스트라고 부른다.
  • 호스트들은 다른 컴퓨터와 구별될 수 있도록 적어도 한 개 이상의 고유한 주소를 갖는다.
  • 하지만 현재 많은 IP 주소가 있으므로 3~5년 내에 주소 고갈의 문제가 발생할 것으로 예상된다.
  • 이 문제를 해결하기 위해 나온 것이 바로 IPv6이다.
  • 128비트 주소체계를 채택하여 2의 128승 개의 주소가 만들어 질 수 있다.
  • 따라서 사실상 무한대의 주소 생성이 가능하다.

 

IPv6

  • IPv6은 인터넷 프로토콜 버전6(internet protocol version 6)의 줄임말이다.
  • IPv4는 32비트 주소체계에 42억 개의 주소 수를 가지고 있고, A,B,C,D 클래스로 주소를 할당한다.
  • 반면 IPv6는 128비트의 주소체계이고, 주소도 CIDR를 기반으로 계층적으로 할당한다.
  • 주소 유형은 유니캐스트, 멀티캐스트, 애니캐스트 3가지 이다.
  • 가장 큰 장점은 IP주소의 길이가 128비트로 늘어났다는 점이다.
  • 이는 폭발적으로 늘어나는 인터넷 사용에 대비하기 위한 것인데 아직 IPv6가 상용화가 되지는 않았다.
  • 일부에서는 사용할 수 있지만 주소체계가 바뀌면 불편해지는게 많아서 그런지 완전 IPv6로 바뀌진 않았다.
  • 다른 장점으로는 
    1. 네트워크 속도 증가
    2. 특정한 패킷 인식을 통한 높은 품질의 서비스 제공
    3. 헤더확장을 통한 패킷 출처 인증과 데이터 무결성 및 비밀의 보장 등이 있다.
  • 주소 구문은 IPv4의 123.123.123.123 과 같은 12자리 숫자가 아니라, 이진수 형식으로 표시된다.
  • 즉 001000001110110101001000...11010 등 128비트로 표시되고, 128 비트 주소는 다시 16비트(0010000111011010) 단위로 나누어진다.
  • 16개씩 쪼개면 8파트가 나오게 된다.
  • 그 8파트가 IPv6의 주소가 되며 16진수로 변환되고, 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A와 같이 콜론으로 구분된다.
  • 여기서 21DA:D3:0:2F3B:2AA:FF:FE28:9C5A 처럼 0을 없애고 더 단순하게 주소를 만들 수 있다.
  • 이 경우 각 블록마다 하나의 숫자는 있어야 하기 때문에 한 블록에 0만 있을 때는 0 하나를 남겨 두어야 한다.
  • IPv6는 주소 공간을 늘려 망 확장성이 더욱 향상된 IP 주소 체계로, 휴대폰이나 전자제품에도 적용할 수 있다.

 

kubernetes IPv4/IPv6 이중 스택

IPv4/IPv6 이중 스택 네트워킹을 사용하면 파드와 서비스에 IPv4와 IPv6 주소를 모두 할당할 수 있다.

IPv4/IPv6 이중 스택 네트워킹은 1.21부터 쿠버네티스 클러스터에 기본적으로 활성화되어 있고, IPv4및 IPv6 주소를 동시에 할당할 수 있다.

 

지원되는 기능

쿠버네티스 클러스터의 IPv4/IPv6 이중 스택은 다음의 가능을 제공한다.

  • 이중 스택 파드 네트워킹(파드 당 단일 IPv4와 IPv6 주소 할당)
  • IPv4와 IPv6 지원 서비스
  • IPv4와 IPv6 인터페이스를 통한 파드 오프(off) 클러스터 이그레스 라우팅 (예: 인터넷)

필수 구성 요소

IPv4/IPv6 이중 스택 쿠버네티스 클러스터를 활용하려면 다음의 필수 구성 요소가 필요하다.

  • 쿠버네티스 1.20 이상 버전
  • Provider support for dual-stack networking (Cloud provider or otherwise must be able to provide Kubernetes nodes with routable IPv4/IPv6 network interfaces)
  • 이중스택(예: Kubelet 또는 Calico)을 지원하는 네트워크 플러그인

IPv4/IPv6 이중 스택 구성

IPv4/IPv6 이중 스택을 사용하려면, 클러스터의 관련 구성 요소에 대해 IPv6DualStack 기능 게이트를 활성화한다. (1.21부터 IPv4/IPv6 이중 스택이 기본적으로 활성화된다.)

IPv4/IPv6 이중 스택을 구성하려면, 이중 스택 클러스터 네트워크 할당을 설정한다.

  • kube-apiserver:
    • --service-cluster-ip-range=<IPv4 CIDR>,<IPv6 CIDR>
  • kube-controller-manager:
    • --cluster-cidr=<IPv4 CIDR>,<IPv6 CIDR>
    • --service-cluster-ip-range=<IPv4 CIDR>,<IPv6 CIDR>
    • --node-cidr-mask-size-ipv4|--node-cidr-mask-size-ipv6 IPv4의 기본값은 /24 이고 IPv6의 기본값은 /64 이다.
  • kube-proxy:
    • --cluster-cidr=<IPv4 CIDR>,<IPv6 CIDR>

참고:

IPv4 CIDR의 예: 10.244.0.0/16 (자신의 주소 범위를 제공하더라도)

IPv6 CIDR의 예: fdXY:IJKL:MNOP:15::/64 (이 형식으로 표시되지만, 유효한 주소는 아니다 - RFC 4193을 본다.)

1.21부터, IPv4/IPv6 이중 스택은 기본적으로 활성화된다. 필요한 경우 kube-apiserver, kube-controller-manager, kubelet 및 kube-proxy 커맨드 라인에 --feature-gates="IPv6DualStack=false" 를 지정하여 비활성화할 수 있다.

 

 

'클라우드 > Kubernetes(쿠버네티스)' 카테고리의 다른 글

[kubernetes] 쿠버네티스 아키텍처  (0) 2021.09.25
[kubernetes] IPv4/IPv6 이중 스택  (0) 2021.09.11
[kubernetes] host aliases  (0) 2021.09.11
[kubernetes] endpoints  (0) 2021.09.11
[kubernetes] dnsutils, nslookup  (0) 2021.09.08
[kubernetes] Volume  (0) 2021.08.25