SW/네트워크

네트워크 : IPv4 vs IPv6 : 개념, 개요, 차이점, 설명

얇은생각 2023. 2. 1. 07:30
반응형

오늘날의 기술 시대에 우리는 인터넷과 네트워킹 장치의 사용이 크게 증가하는 것을 목격하고 있습니다. 모든 가정에는 노트북, 스마트폰, 디지털 시계, IoT 장치, 홈 자동화 부품 및 홈 네트워크 또는 인터넷에 연결된 기타 장치가 있습니다. 장치는 다양한 네트워크 프로토콜을 통해 서로 통신하며, TCP와 IP가 가장 자주 사용됩니다. 네트워크에 연결된 각 장치에는 네트워크의 장치를 식별하는 IP 주소가 있어야 합니다.

인터넷 프로토콜과 IPv6가 IPv4와 어떻게 다른지 설명합니다.

 

 

IP(인터넷 프로토콜)란

인간으로서, 우리는 우리의 이름을 사용하여 서로를 확인하고 소통합니다. 마찬가지로, 컴퓨팅 세계에서 장치는 IP 주소를 사용하여 서로 식별하고 상호 작용합니다. 모든 컴퓨팅 장치가 서로 통신하기 위해 사용하는 공통 언어를 프로토콜이라고 합니다. 인간의 언어와 마찬가지로 프로토콜에는 데이터를 포맷하고 처리하는 규칙 집합도 있습니다.

 

네트워크 : IPv4 vs IPv6 : 개념, 개요, 차이점, 설명 1

 

IP(인터넷 프로토콜)는 컴퓨터 간의 데이터 주소 지정 및 라우팅을 지정하는 규칙 집합입니다. TCP 및 UDP와 같은 네트워크 전송 프로토콜과 함께 주로 사용됩니다.

인터넷은 이 독특한 주소 지정 패턴 때문에 오늘날 존재합니다. IANA는 인터넷에 연결하는 네트워크/사이트의 IP 주소 범위를 관리합니다. 그러나 분리된 로컬 네트워크 인프라를 운영하는 경우 선호도에 따라 번호를 할당할 수 있습니다. 이제 아키텍처와 비교 분석의 핵심으로 들어가 보겠습니다.

 

 

 

IPv4

인터넷 프로토콜(IP)의 첫 번째 주요 버전은 IPv4입니다. 또한 32비트 네트워크 주소 지정 스키마를 사용하여 옥텟으로 알려진 4개의 8비트 숫자로 더 분할합니다. 예를 들어 google.com의 IP 주소는 141.251.36.46입니다. 이 형식을 점선 사분 표기법이라고 합니다. 이러한 IP 주소는 수동으로 구성하거나 DHCP 서버를 통해 자동으로 가져올 수 있습니다.

원격 장치의 라이브 상태를 확인하려면 ping 명령을 사용하여 해당 IP에 대한 ICMP 프로빙을 수행할 수 있습니다.

ping -c 1 google.com

# PING google.com (142.251.36.46) 56(84) bytes of data.
# 64 bytes from ams17s12-in-f14.1e100.net (142.251.36.46): icmp_seq=1 ttl=116 time=247 ms
# 
# ...

 

 

IP 주소는 하위 네트워크를 만들기 위해 네트워크와 호스트 주소의 두 부분으로 나뉩니다. 서브넷 번호는 IP의 네트워크 및 호스트 부분을 결정하는 데 도움이 됩니다. 또한 사용 가능한 IP 공간은 아래 표와 같이 5개의 다른 클래스로 구분됩니다.

Address Class IP Ranges Subnet Mask No of Networks No of hosts per Network
Class A 1.0.0.0 to 126.0.0.0 255.0.0.0 126 16,777,214
Class B 128.0.0.0 to 191.255.0.0 255.255.0.0 16,282 65,534
Class C 192.0.0.0 to 223.255.255.0 255.255.255.0 2,097,150 254
Class D 224.0.0.0 to 239.255.255.255 Multicasting    
Class E 240.0.0.0 to 255.255.255.255 Research/Reserved/Experimental    

 

 

서브넷 계산에는 화면 뒤에 있는 몇 가지 수학적 루빅이 포함됩니다. 계산을 쉽게 하기 위해 ipcalc 또는 subnetcalc와 같은 도구를 IPv4 서브넷에 사용할 수 있습니다. 다음 스니펫은 도구 사용 방법을 보여 줍니다.

ipcalc 110.0.20.18/24

# Address: 110.0.20.18 01101110.00000000.00010100. 00010010
# Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
# Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
# =>
# Network: 110.0.20.0/24 01101110.00000000.00010100. 00000000
# HostMin: 110.0.20.1 01101110.00000000.00010100. 00000001
# HostMax: 110.0.20.254 01101110.00000000.00010100. 11111110
# Broadcast: 110.0.20.255 01101110.00000000.00010100. 11111111
# Hosts/Net: 254 Class A

 

 

subnetcalc 192.168.10.15/24

# Address = 192.168.10.15
# 11000000 . 10101000 . 00001010 . 00001111
# Network = 192.168.10.0 / 24
# Netmask = 255.255.255.0
# Broadcast = 192.168.10.255
# Wildcard Mask = 0.0.0.255
# Hosts Bits = 8
# Max. Hosts = 254 (2^8 - 2)
# Host Range = { 192.168.10.1 - 192.168.10.254 }
# Properties =
# - 192.168.10.15 is a HOST address in 192.168.10.0/24
# - Class C
# - Private
# GeoIP Country = Unknown (??)
# DNS Hostname = (Name or service not known)

 

 

일반적으로 IP 주소는 아래 그림과 같이 엔드 호스트 시스템 및 라우터 게이트웨이 인터페이스에 제공됩니다.

네트워크 : IPv4 vs IPv6 : 개념, 개요, 차이점, 설명 2

 

 

여기서 시스템 A(10.235.64.58)의 트래픽은 인터넷 클라우드 왼쪽에 있는 라우터 게이트웨이 인터페이스(10.235.64.57)에 도달합니다. 인터넷 라우팅을 통해 Google 서버 게이트웨이에 도달하고 마지막으로 대상 서버에 도달합니다.

네트워크 인터페이스 IP를 식별하기 위해 ifconfig, hostname 또는 ip와 같은 명령을 사용할 수 있습니다.

ifconfig ens160

# ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
# inet 10.235.64.58 netmask 255.255.255.252 broadcast 10.235.64.59
# inet6 fe80::fc7f:d8da:a969:1c1d prefixlen 64 scopeid 0x20<link>
# ether 00:0c:29:23:6f:30 txqueuelen 1000 (Ethernet)
# RX packets 35607241 bytes 34540488400 (34.5 GB)
# RX errors 0 dropped 12 overruns 0 frame 0
# TX packets 24701952 bytes 15008379564 (15.0 GB)
# TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

 

hostname -I

# 10.235.64.58

 

 

0.0.0.0 또는 127.0.0.1과 같은 특수 목적의 네트워크 IP 주소가 있습니다. 전자는 기본 경로 또는 쿼드제로 경로이며, 후자는 루프백 주소라고 합니다.

아래 스니펫에서는 해당 네트워크에 대한 기본 경로가 있는 커널 IP 라우팅 테이블을 볼 수 있습니다. 플래그 'U'는 네트워크 경로가 UP임을 나타내며, G는 네트워크 경로가 네트워크 게이트웨이임을 나타냅니다.

netstat -rn | grep ens160

# Kernel IP routing table
# Destination Gateway Genmask Flags MSS Window irtt Iface
# 0.0.0.0 10.235.64.57 0.0.0.0 UG 0 0 0 ens160
# 10.235.64.56 0.0.0.0 255.255.255.252 U 0 0 0 ens160

 

 

일반적으로 IPv4 데이터그램은 20바이트의 헤더 필드, 옵션 필드 및 가변 길이의 데이터 필드로 구성됩니다. 샘플 패킷 형식은 다음과 같습니다.

네트워크 : IPv4 vs IPv6 : 개념, 개요, 차이점, 설명 3

 

 

아래에서 Wireshark 캡처는 실시간 트래픽에서 패킷 헤더 정보를 해독하는 데 도움이 됩니다.

네트워크 : IPv4 vs IPv6 : 개념, 개요, 차이점, 설명 4

 

 

 

IPv6

인터넷 프로토콜 버전 6은 인터넷 프로토콜(IP)의 업데이트된 버전입니다. 인터넷 프로토콜 버전 6은 2018년 기준으로 전체 인터넷 트래픽의 75%를 전송하는 이전 버전(IPv4)을 대체하기 위한 것입니다(출처: Google IPv6 통계)를 참조하십시오.

IPv6 주소는 32개의 16진수를 사용하는 128비트(16바이트)이며, 이러한 숫자는 관리가 용이하도록 각각 4자리씩 8개의 그룹으로 더 분할됩니다. 아래에 간단한 그림이 나와 있습니다.

네트워크 : IPv4 vs IPv6 : 개념, 개요, 차이점, 설명 5

 

 

IPv6 명명 규칙에는 몇 가지 기본 단계가 있습니다.

규칙 1: 모든 문자는 대소문자를 구분하지 않습니다. 예를 들어, 'ab41'은 'AB41' 규칙 2와 같습니다. '0'인 연속 필드는 "::"으로 표시할 수 있지만 규칙 3: 필드에서 선행 0을 나타내는 것은 선택 사항입니다. 예를 들어 '001a'는 '1a'와 같습니다.

예를 들어 IPv6 주소 45ab:0000:a179:0000:c1c0:abcd:0876을 예로 들어 보겠습니다.

규칙 1 => 45ab:0000:a1500:0000:c1c0:abcd:0876 규칙 2 적용 => 45ab:0:c1c0:abcd:876 규칙 3 적용 => 45ab:0:cd:876 적용 규칙 3 => 45ab:0:cd:876 적용:876

IPv6 주소에는 세 가지 유형이 있습니다. 유니캐스트, 멀티캐스트 및 애니캐스트입니다. 유니캐스트 주소는 해당 특정 인터페이스에 전달되는 단일 네트워크 인터페이스 및 패킷입니다. 또한 유니캐스트 주소에는 로컬(링크 로컬) 및 글로벌 범위 수준이 있습니다. 멀티캐스트 주소는 패킷이 전송되는 그룹 인터페이스입니다. 애니캐스트 주소는 가장 가까운 인터페이스로 전달되는 그룹 인터페이스 및 패킷입니다.

아래에 잘 알려진 주소가 몇 개 나열되어 있습니다.

]::1/128 Loopback address
ff00::/8 Multicast addresses
fe80::/10 Link-local addresses
2001::/16 Regular IPv6 unicast addresses
2002::/16 6to4 Unicast addresses

 

 

subnetcalc 2001:4860:4860::8888/64

# Address = 2001:4860:4860::8888
# 2001 = 00100000 00000001
# 4860 = 01001000 01100000
# 4860 = 01001000 01100000
# 0000 = 00000000 00000000
# 0000 = 00000000 00000000
# 0000 = 00000000 00000000
# 0000 = 00000000 00000000
# 8888 = 10001000 10001000
# Network = 2001:4860:4860:: / 64
# Netmask = ffff:ffff:ffff:ffff::
# Wildcard Mask = ::ffff:ffff:ffff:ffff
# Hosts Bits = 64
# Max. Hosts = 18446744073709551616 (2^64 - 1)
# Host Range = { 2001:4860:4860::1 - 2001:4860:4860:0:ffff:ffff:ffff:ffff }
# Properties =
# - 2001:4860:4860::8888 is a HOST address in 2001:4860:4860::/64
# - Global Unicast Properties:
# + Interface ID = 0000:0000:0000:8888
# + Sol. Node MC = ff02::1:ff00:8888
# GeoIP Country = United States (US)
# DNS Hostname = dns.google

 

 

다시 말해, IPv6 패킷은 헤더와 페이로드를 모두 가집니다. 헤더 크기는 40바이트로 고정되고 소스 및 대상 주소는 32바이트가 소요됩니다. 샘플 패킷 형식은 다음과 같습니다.

네트워크 : IPv4 vs IPv6 : 개념, 개요, 차이점, 설명 6

 

 

IPv6에는 많은 이점이 있지만 IPv4를 대체할 수는 없습니다. 원활한 마이그레이션을 위해 두 프로토콜 버전이 한동안 공존해야 합니다. 따라서 서비스 제공업체는 IPv4 및 IPv6 패킷을 모두 이해할 수 있는 네트워크 인터페이스를 보유한 이중 스택 지원 시스템을 제공하고 있습니다. 

IPv6 터널링, IPv4 매핑 IPv6 주소 등과 같은 몇 가지 스마트 전환 메커니즘이 있습니다. 전자는 IPv4에서 IPv6 패킷을 캡슐화하는 반면 후자는 듀얼 스택 구현에서 IPv6을 IPv4 주소에 매핑합니다.

 

 

 

IPv4 대 IPv6 - 빠른 비교 분석

Features Internet Protocol - Version 4 [IPv4]  Internet Protocol - Version 6 [IPv6]
Deployment & allocation 1981 1999
Length 32-bit 128-bit
Address Space 4.29 x 10^9 3.4 x 10^38
Format Dotted Decimal / [10.235.64.56] Hexadecimal / [2400::4]
Number of Octets 4 16
Header Size Varies from 20 - 60 bytes 40 bytes
Classes Five classes: Class A, Class B, Class C, Class D, Class E None
Security Features / Authentication and encryption Not available Available
Check sum Available Not available
IPSec External and optional Inbuilt feature
Hop Count Indicated by TTL field Indicated by Hoplimit field
Fragmentation Performed by sender and forwarding routers Done by sender only
Option Fields Provided in the IPv4 header There are no optional fields, but IPv6 Extension headers are available
Multicast IGMP manages the multicast group membership MLD replaces the IGMP
Broadcast message Available Not available. Multicast is used
IP to MAC Mapping Address Resolution Protocol Neighbour Discovery Protocol

 

 

인터넷 프로토콜의 기본과 버전을 살펴보았습니다. 그 과정에서, IPv4와 IPv6의 주소 지정 스키마, 패킷 형식, 기능을 비교 분석을 통해 설명합니다. IPv4가 오늘날 대부분의 인터넷 트래픽을 전송하고 있지만, IPv6는 네트워킹 세계의 미래입니다.

반응형