로컬 네트워크에 연결된 모든 디바이스가 외부 인터넷과 통신할 때, 하나의 공용 IPv4 주소를 공유하도록 하는 기술
- Private IP Address → Public IP Address로 변환하는 기술
- 로컬 네트워크 내에서 호스트 간 통신은 로컬 주소를 사용하고, 외부로 나가는 트래픽은 NAT를 통해 하나의 공용 IP 주소로 변환되며 다른 포트 번호를 가진다.
장점
- 하나의 공용 IP 주소로 다수의 디바이스 공유: IP 주소 부족 문제를 완화
- 내부 주소 변경을 외부로 노출하지 않음: 로컬 네트워크에서 디바이스의 IP 주소를 변경하거나 재구성해도, 외부 네트워크에서는 이러한 변경 사항을 알 필요 없다.
- 보안 강화: NAT를 통해 로컬 네트워크 상의 디바이스들은 외부 네트워크에서 직접적으로 접근하거나 보지 못하도록 보호된다.
동작 구조
- 외부로 나가는 데이터그램을 전송할 때, 데이터그램의 IP주소와 포트 번호를 NAT IP 주소와 포트 번호로 변환
- NAT는 로컬 네트워크 내에서 어떤 IP 주소를 사용하는 호스트가 어떤 포트 번호를 할당받았는지를 기억하고 관리하기 위해 NAT translation table을 사용
- 외부 네트워크에서 로컬 네트워크로 들어오는 데이터그램을 받으면, NAT는 기록한 IP 주소 및 포트 번호 테이블을 확인하여 올바른 로컬 호스트로 전달하기 위해 목적지 IP 주소와 포트 번호를 변환 후 올바른 목적지에 전달
동작 과정
- 로컬 네트워크의 호스트 (예: 10.0.0.1, 포트 3345)가 128.119.40.186으로 데이터그램을 전송
- NAT 라우터는 이 데이터그램의 출발지 IP 주소를 NAT IP 주소 (예: 138.76.29.7)로 변경하고, 출발지 포트 번호도 새로운 포트 번호 (예: 5001)로 변경
→ NAT translation table에 이 변환 정보를 기록- 외부에서 138.76.29.7 IP 주소 및 5001 포트 번호로 들어오는 데이터그램이 수신되면, NAT는 이 정보를 NAT translation table에서 검색하여 올바른 로컬 네트워크의 IP 주소와 포트 번호 (예: 10.0.0.1, 포트 3345)로 변환
- 변환된 데이터그램은 목적지 정보가 10.0.0.1 IP 주소와 3345 포트로 변경되어, 올바른 호스트에게 전달
문제점: 로컬 네트워크 내에서 사설 IP 주소 대역 (예: 10.0.0.X)를 사용하는 경우, 해당 주소 대역은 여러 네트워크에서 중복으로 사용될 수 있으므로 외부에서 해당 IP 주소로 접근하기 어려워진다.
→ 로컬 네트워크 내의 호스트가 서버 역할을 수행하는 경우, 외부에서 해당 서버에 직접 접근하기 어려울 수 있다.
IPv4의 주소 부족 문제를 해결하기 위해 등장한 새롭게 고안된 주소 체계
Format
- 고정 헤더 크기: IPv6 헤더의 크기는 고정되어 있으며 40바이트로 정해져 있다.
- 헤더 정보를 빠르게 처리하고 읽을 수 있다.
- source address, destination address가 128비트로 늘어났기 때문에 주소를 담는 필드 크기 자체는 증가했다.
- IPv4 헤더 크기: 20바이트 ~ 60바이트
- 향상된 우선순위 제어: Type of Service (TOS)와 유사한 역할을 하지만 더 상세한 우선순위 제어를 제공한다.
- Flow Label: 특정 패킷 흐름을 식별하고 QoS (Quality of Service)를 제공하기 위한 목적으로 사용된다.
- Next Header: IPv6 패킷 내에서 추가적인 확장 헤더를 지원하기 위한 공간으로 사용된다.
→ Extension header나 상위 계층 패킷의 프로토콜을 식별하는 데 사용될 수 있다.- Hop Limit: IPv4의 TTL (Time to Live)와 유사한 역할을 한다.
→ 패킷이 무한순환 하지 않도록 각 라우터를 거칠 때마다 1씩 감소하며, "Hop Limit" 값이 0이 되면 데이터그램은 폐기된다.
- Checksum: IPv6에서는 헤더 체크섬 (Header Checksum) 필드가 없어졌다.
- 대부분의 물리적인 링크 및 전송 계층에서 오류 검출 및 복구가 이루어지고 상위 프로토콜인 TCP/UDP 에 체크섬 필드가 있기 때문에, 네트워크 계층에서 중복된 체크섬 검사가 더이상 필요하지 않다고 판단
- 전송 기술이 발달하면서 오류 발생↓
- Fragmentation 필드: IPv6에서는 fragmentation 관련 필드가 없어졌다.
- 출발지에서만 패킷이 목적지까지 도달하기 전에 경유하는 중간 라우터의 MTU (Maximum Transmission Unit) 중 가장 작은 MTU를 고려하여 패킷을 조절하고, 필요한 경우에만 fragmentation을 수행
→ fragmentation이 발생하지 않는 것은 아니며, 출발지에서만 fragmentation이 발생 할 수 있다.