IPv4 주소 부족
Vint Cerf (IP의 아버지)에 따르면 IPv4 32 비트 주소 크기는 임의로 선택되었습니다. IP는 정부 / 학계 협력 실험이었으며 현재의 공개 인터넷은 상상되지 않았습니다. IP 패러다임은 연결된 각 장치에 고유 한 IP 주소가 있고 (IP 장치간에 전송 된 모든 패킷은 소스 IP 주소에서 대상 IP 주소로 엔드 투 엔드 연결됨) IP를 사용하는 많은 프로토콜은 각 장치에 따라 달라집니다 고유 한 IP 주소가 있습니다.
가능한 모든 IPv4 주소 *를 사용할 수 있다고 가정하면 IPv4 주소는 4,294,967,296 개에 불과하지만 (2018 년 9 월 현재) 현재 세계 인구는 7,648,290,361입니다. 보시다시피, 모든 사람이 IPv4 주소를 하나만 가질 수있을만큼 충분하지는 않지만 많은 사람들이 각각 IP 주소가 필요한 컴퓨터, 프린터, 휴대폰, 태블릿, 게임 콘솔, 스마트 TV 등을 가지고 있습니다. IP 주소에 대한 비즈니스 요구 사항에도 영향을 미치지 않습니다. 우리는 또한 IoT, 사물 인터넷 (Internet of Things)의 중심에 있으며 전구, 온도 조절 장치, 온도계, 레인 게이지 및 스프링클러 시스템, 경보 센서, 가전 제품, 차량, 차고 문 열기, 엔터테인먼트 시스템, 애완 동물 고리, 그리고 다른 모든 것을 아는 사람.
* 호스트 주소 지정에 사용할 수없는 IPv4 주소 블록이 있습니다. 예를 들어 멀티 캐스트에는 호스트 주소 지정에 사용할 수없는 268,435,456 주소 블록이 있습니다. IANA는 https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml 에서 IANA IPv4 특수 목적 주소 레지스트리를 유지 관리하여 모든 특수 주소 블록과 목적을 문서화합니다. .
IANA (Internet Assigned Numbers Authority)는 각 지역에 할당 할 RIR (Regional Internet Registry)에 할당 할 IPv4 주소 블록이 부족하여 RIR도 각 지역에 할당 할 IPv4 주소가 부족합니다. IPv4 주소를 원하거나 필요로하는 ISP (인터넷 서비스 제공 업체) 및 회사는 더 이상 RIR에서 IPv4 주소를 얻을 수 없으며 이제 IPv4 주소 부족으로 인해 IPv4 주소의 가격이 높아질 수있는 비즈니스에서 IPv4 주소를 구매해야합니다. 상승).
특별한 목적으로 예약되어 있고 호스트 주소 지정에 사용할 수없는 모든 IPv4 주소를 사용할 수 있더라도 IPv4 주소의 크기가 제한되어 있기 때문에 IPv4 주소가 충분하지 않기 때문에 여전히 같은 위치에 있습니다.
IPv4 주소 부족 완화
IANA와 RIF는 IANA와 IETF (Internet Engineering Task Force)가 IPv4 주소 부족에 대한 완화를 채택하지 않은 경우보다 몇 년 전에 IPv4 주소가 부족했을 것입니다. 한 가지 중요한 완화 방법은 CIDR (Classless Inter-Domain Routing)을 선호하는 IPv4 네트워크 클래스의 사용 중단입니다. 고급 주소 지정은 3 개의 할당 된 네트워크 크기 (16,777,216, 65,536 또는 네트워크 당 256 개의 총 호스트 주소) 만 허용합니다. 즉, 많은 주소가 낭비됩니다 (300 개의 호스트 주소 만 필요한 비즈니스에는 65,536 개의 가능한 호스트가있는 고급 네트워크를 할당해야 함) (클래식 네트워크의 주소 중 99 % 이상 낭비)
지금까지 IPv4 수명 연장에 가장 큰 영향을 미쳤던 완화 방법은 개인 주소 지정과 NAPT (Network Address Port Translation)라는 NAT (Network Address Translation)의 변형입니다. 이는 대부분의 사람들이 의미하는 바입니다 NAT 또는 PAT를 참조하십시오 (PAT는 NAPT의 공급 업체별 용어입니다). 불행히도 NAPT는 IP 엔드-투-엔드 패러다임을 끊는 못생긴 대안이며, 고유 한 IP 주소 지정에 의존하는 프로토콜을 손상 시키므로 훨씬 더 못생긴 대안이 필요합니다.
NAT / NAPT
NAT의 개념은 매우 간단합니다. 패킷이 NAT 장치를 통과 할 때 패킷 헤더의 소스 및 대상 IPv4 주소 중 하나 또는 둘 다를 대체합니다. 실제로 IPv4 헤더에는 IPv4 헤더의 무결성을 검사하기 위해 계산 된 필드가 있고 IPv4 헤더를 변경하면 필드를 다시 계산해야하며 패킷 페이로드의 일부 전송 프로토콜에도 자체 계산이 있기 때문에 계산이 필요합니다. 패킷 전달에 사용될 수있는 NAT 장치의 컴퓨팅 리소스를 사용하여 다시 계산해야하는 필드
기본 NAT에서 NAT 장치는 내부 네트워크에서 외부 네트워크로 전송 된 IPv4 패킷에 대한 패킷 헤더의 소스 IPv4 주소를 대체하는 데 사용하는 IPv4 주소 풀을 가지며, 변환 테이블을 유지하여 패킷을 내부 네트워크의 올바른 호스트로 다시 전달하기 위해 외부 네트워크에서 반환되는 트래픽의 대상 IPv4 주소. 또한 변환 테이블을 작성 및 유지 보수하고 테이블 검색을 수행하기 위해 NAT 디바이스의 자원이 필요합니다. NAT에서 사용하는 리소스는 패킷 전달에 사용할 수있는 리소스에서 가져 오기 때문에이 리소스 사용률은 패킷 전달을 느리게 할 수 있습니다.
NAPT는 TCP 및 UDP의 전송 프로토콜 주소 (포트)와 ICMP의 쿼리 ID를 변환하여 기본 NAT를 더욱 발전시킵니다. NAPT는 전송 계층 주소를 변환하여 많은 내부 호스트 IPv4 주소에 단일 외부 IPv4 주소를 사용할 수 있습니다. NAPT는 각 전송 계층 프로토콜에 대해 별도의 테이블이 필요하고 전송 프로토콜에 대한 무결성 계산도 수행해야하므로 기본 NAT보다 리소스를 훨씬 더 많이 사용합니다.
여러 네트워크에서 재사용 할 수있는 개인 IPv4 주소 지정 사용 (대부분의 가정 / 주거 네트워크는 기본적으로 IANA에서 할당 한 개인 IPv4 주소 범위 중 하나에있는 동일한 192.168.1.0/24 네트워크를 사용함을 알 수 있습니다) 을 NAPT와 함께 사용하면 비즈니스 및 개인 사용자는 각각 대규모 내부 (개인 주소 지정) 네트워크에 단일 외부 (공용) 주소를 사용할 수 있습니다. 이렇게하면 많은 IPv4 주소 (총 가능한 IPv4 주소 수의 몇 배)가 절약되고 NAPT없이 축소 될 때까지 IPv4의 수명이 연장되었습니다. NAPT에는 몇 가지 심각한 단점이 있습니다.
- NAPT는 IP 엔드-투-엔드 패러다임을 차단하며 TCP, UDP 및 ICMP에서만 작동하여 다른 전송 프로토콜을 손상시킵니다. TCP 및 UDP가 명목상 NAPT와 함께 작동하더라도 NAPT에 의해 손상된 TCP 또는 UDP를 사용하는 응용 프로그램 계층 프로토콜도 있습니다. STUN / TURN과 같은 다른 완화는 일부 응용 프로그램 계층 프로토콜에 사용할 수 있지만 비용과 복잡성을 추가 할 수 있습니다.
- NAPT는 리소스를 많이 사용하므로 NAT를 사용하지 않고 가능한 것에 비해 패킷 전달 속도가 느려집니다. 일부 공급 업체는 패킷 전달에서 리소스를 훔칠 필요성을 완화하기 위해 전용 하드웨어를 추가하지만 비용, 크기, 복잡성 및 전력 사용량이 추가로 발생합니다.
- NAPT를 사용하는 경우 변환 테이블에 변환 항목이 없으므로 내부에서 시작된 트래픽으로 인해 NAPT 네트워크 외부에서 시작된 트래픽을 내부 네트워크로 전달할 수 없습니다. 단일 외부 (공용) 주소는 NAT 장치에서 구성되며 전송 프로토콜 변환 표에서 대상 IPv4 주소가 있고 소스 IPv4 주소에 대한 항목이없는 패킷은 NAPT 장치 자체가 아닌 것으로 간주됩니다. 내부 네트워크. 이 문제에 대해 포트 포워딩이라고하는 완화가 있습니다.
- 포트 포워딩은 기본적으로 변환 테이블에 영구적 인 항목을 구성하여 특정 전송 프로토콜로 향하는 외부 시작 트래픽과 프로토콜이 특정 내부 호스트로 전달 될 주소를 허용합니다. 이것은 내부 호스트 하나만 특정 전송 프로토콜 및 주소의 대상이 될 수 있다는 단점이 있습니다. 예를 들어 내부 네트워크에 여러 웹 서버가있는 경우 웹 서버 중 하나만 TCP 포트 80 (웹 서버의 기본값)에 노출 될 수 있습니다.
- IPv4 주소 부족이 심하기 때문에 ISP (Internet Service Providers)에 고객에게 할당 할 공용 주소가 부족합니다. ISP는 더 이상 공개 주소를 얻을 수 없으므로 특히 가정 / 주거 사용자를 해치는 일부 완화 방법을 채택했습니다. ISP는 공용 주소를 얻는 특권을 기꺼이 지불하려는 비즈니스 고객을 위해 소중한 공용 주소 풀을 예약하려고합니다. 이를 위해 ISP는 이제 개인 또는 공유 주소를 가정 / 거주 고객에게 할당하기 시작했으며 ISP는 자체 라우터에서 NAPT를 사용하여 단일 공용 주소에서 여러 개인 또는 공유 주소를 쉽게 사용할 수 있습니다. 이는 가정 / 주거 네트워크가 두 개의 NAPT 변환 (ISP NAPT에서 고객 NAPT로) 뒤에있는 상황을 만듭니다.
- 내부 호스트를 외부에서 직접 처리 할 수 없기 때문에 많은 사람들이 NAPT와 보안을 동일시하는 실수를합니다. 이것은 잘못된 보안 감각입니다. 네트워크를 공용 인터넷에 연결하는 방화벽은 NAPT를 실행하기에 편리한 장소이기 때문에 상황을 혼란스럽게합니다. NAPT 자체가 방화벽이고 실제 방화벽이 필요하지 않다는 위험한 인식을 만듭니다. 네트워크 보안은 방화벽에서 가져옵니다. 기본적으로 모든 외부 시작 트래픽을 차단하고, 명시 적으로 허용하도록 구성된 트래픽 만 허용하며, 패킷 내용을 심층 검사하여 위험한 패킷 페이로드를 삭제합니다. 사람들이 깨닫지 못하는 것은 하드웨어 나 소프트웨어에 방화벽이 없으면 NAPT 장치의 외부 또는 내장 된 NAPT 장치를 보호하기 위해 NAPT 장치 자체가 취약하다는 것입니다. NAPT 장치가 손상되면 공격자가 확장하여 공격자가 내부적으로 주소가 지정된 내부 네트워크에 완전히 액세스 할 수 있습니다. 변환 테이블과 일치하지 않는 외부 시작 패킷은 실제로 외부 주소로 주소가 지정된 장치이므로 NAPT 장치가 직접 공격 될 수 있기 때문에 NAPT 장치 자체로 보내집니다.
IPv4 주소 부족에 대한 해결책
IETF는 IPv4 주소 부족을 예측하고 128 비트 주소를 사용하는 IPv6 솔루션을 만들었습니다. 이는 340,282,366,920,938,463,463,374,607,431,768,211,456 가능한 IPv6 주소를 의미합니다. 거의 상상할 수없는 IPv6 주소의 수는 NAPT (IPv6에는 NAT 표준이없고, IPv4와 같은 방식, 실험적인 IPv6 NAT RFC는 NAPT를 특별히 금지 함)의 필요성을 제거하여 원래의 IP 엔드-투-엔드 패러다임을 복원합니다. IPv4 주소 부족에 대한 완화는 IPv6가 어디에나있을 때까지 IPv4의 수명을 연장 시키며,이 시점에서 IPv4는 사라져야합니다.
인간은 실제로 IPv6에 사용 된 크기의 숫자를 이해할 수 없습니다. 예를 들어 표준 IPv6 네트워크는 각 네트워크 및 네트워크 주소의 호스트 부분에 대해 64 비트를 사용합니다. 이는 가능한 IPv6 표준 / 64 네트워크는 18,446,744,073,709,551,616이며, 각 네트워크에 대해 동일한 (거대한) 호스트 주소 수입니다. 큰 숫자를 이해하려면 네트워크에서 가능한 모든 주소를 검색하는 도구를 고려하십시오. 이러한 도구가 초당 1,000,000 개의 주소를 스캔 할 수있는 경우 (아마도) 단일 / 64 IPv6 네트워크에서 스캔을 수행하는 데 584,542 년이 걸렸습니다. 현재 전체 IPv6 주소 공간의 1/8 만 2,305,843,009,213,693,952 표준 IPv6 / 64 네트워크로 작동하는 글로벌 IPv6 주소에 할당되며 2100 년에 전 세계 인구가 210 억 명 (약간 현실적인 숫자) 인 경우, 210 억 명 중 1 명은 109,802,048 개의 표준 IPv6 / 64 네트워크를 가질 수 있으며 각 네트워크는 18,446,744,073,709,551,616 개의 가능한 호스트 주소를 갖습니다. 불행히도 (수십 년 동안) IPv4 주소 부족으로 인해 사람들의 주소 보존이 심화되어 많은 사람들이 단순히 그 주소를 놓을 수 없으며 IPv6에 적용하려고 시도하는데 이는 무의미하고 실제로 해 롭습니다. IPv6은 실제로 주소를 낭비하도록 설계되었습니다.
IETF는 또한 후 시점이라는 이점이 있었으며 제대로 작동하지 않는 IPv4의 기능을 제거하고 일부 IPv4 기능을 개선하며 IPv4에없는 기능을 추가하여 새롭고 향상된 IP를 만들어 IP (IPv6)를 개선했습니다. . IPv6은 IPv4와 완전히 별개의 프로토콜이므로 IPv4에서 IPv6으로 전환 할 때 IPv4와 병렬로 실행될 수 있습니다. 호스트와 네트워크 장치는 동일한 인터페이스에서 IPv4와 IPv6을 동시에 (이중 스택 형) 실행할 수 있으며 각각 서로에게 보이지 않습니다. 두 프로토콜 사이에 간섭이 없습니다.
IPv6의 문제점은 실제로 유비쿼터스 IPv4와 호환되지 않는 완전히 다른 프로토콜이며, 많은 사람들이 IPv4 주소 부족에 대한 완화가“충분히 좋은”것으로 보인다는 것입니다. IPv6이 표준화 된 지 몇 년이 지난 지금 우리는 이제 IPv6 사용에있어 약간의 관심을 끌고 있습니다 (Google 보고서, 2018 년 9 월 현재 전 세계 IPv6 채택률 20 % 이상, 미국 IPv6 채택률 35 % 이상). 우리가 최종적으로 IPv6으로 전환하는 이유는 할당 할 사용되지 않은 IPv4 주소가 더 이상 없기 때문입니다.
IPv4 문화의 모든 부분에서 사람들이 과거를보기가 쉽지 않은 다른 장애물이 있습니다. 많은 사람들이 IPv6을 두려워하여 자라서 IPv4, 사마귀 및 모든 것에 익숙해졌습니다. 예를 들어, IPv6 주소는 IPv4 주소에 비해 크고 추악한 것으로 보이며 많은 사람들을 방해하는 것 같습니다. 실제로 IPv6은 특히 주소 지정을 위해 IPv4보다 쉽고 유연합니다. IPv4에서 배운 교훈은 처음부터 IPv6에 적용되었습니다.