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로 바뀌진 않았다.
- 다른 장점으로는
- 네트워크 속도 증가
- 특정한 패킷 인식을 통한 높은 품질의 서비스 제공
- 헤더확장을 통한 패킷 출처 인증과 데이터 무결성 및 비밀의 보장 등이 있다.
- 주소 구문은 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(쿠버네티스)' 카테고리의 다른 글
kanico 란 (0) | 2022.05.29 |
---|---|
[kubernetes] 쿠버네티스 아키텍처 (0) | 2021.09.25 |
[kubernetes] host aliases (0) | 2021.09.11 |
[kubernetes] endpoints (0) | 2021.09.11 |
[kubernetes] dnsutils, nslookup (0) | 2021.09.08 |