[컴퓨터망]-NAT & IPv6

2023. 6. 12. 20:47· Computer Science/Network
목차
  1. NAT(network addres translation)
  2. NAT의 장점
  3. NAT의 동작과정
  4. NAT의 문제점? 논란?
  5. IPv6 
  6. IPv6의 헤더 구조
  7. 주된 변화
  8. IP datagram 구성요소
  9. Transition from IPv4 to IPv6
  10. 요약

 

32bit IP address방식인 IPv4가 충분하지 않아서 더 많은 host에게 주소를 할당하기 위해서 사용하는 것이 NAT이다.

 

NAT(network addres translation)

Nat은 네트워크에서 IP 주소를 변환하는 프로세스를 말합니다.
여러 장치가 하나의 IPv4 address를 공유하여 인터넷에 연결할 수 있도록 도와줍니다.

 

 

rest of internet을 통해서 나가는 datagram들은 동일하게 138.76.29.7이라는 NAT IP address를 가집니다.

하지만 오른쪽을 보면 port 번호가 다르다는것을 알 수 있습니다.

 

NAT의 장점

  1. 여러장치가 하나의 공인 IP 주소를 공유할 수 있기에, IP 주소의 효율적인 사용이 가능하고,
    IPv4 주소의 고갈 문제를 완화할 수 있습니다.
  2. 로컬 네트워크 내 호스트의 주소를 외부에 알리지 않고 변경할 수 있다.
  3. ISP 변경 시 로컬 네트워크 장치의 주소 변경 없이 변경 가능
  4. 로컬 네트워크 내 장치들은 외부 세계에서 직접 접근 및 확인할 수 없다.

💡요약하면 IP 주소 공간을 절약하고, 네트워크의 관리를 편리하게 하며, 보안을 강화한다.

 

NAT의 동작과정

 

  1. 호스트가  포트번호가 3345이고, IP주소가 10.0.0.1인 것을 128.119.40.186.80 datagram에 보낸다.
    • local 네트워크 내의 host가 패킷을 보낸다.
  2. NAT 라우터는 받은 주소를 NAT 주소로 바꾸고, 호스트를 식별할 수 있도록 포트번호를 새로 부여한다.
    • 138.76.29.7로 바꾸고, 새로운 포트번호인 5001을 부여한다.
  3. 이렇게 NAT 라우터에서 datagram에서 받은 패킷을 변환했다는 것을 기록하기 위해 Nat translation Table에 기록한다.
  4. 서버는 패킷을 받아서, 대답하기 위해 NAT 라우터로 보낸다.
  5. NAT 라우터는 아까 기록했던 NAT translation Table의 포트번호를 보고, 호스트를 식별해서 올바르게 보내준다.

즉 NAT 라우터는 호스트를 식별하기 위해 NAT translation table을 사용한다.

 

NAT의 문제점? 논란?

  • 라우터는 일반적으로 3계층까지만 처리해야 한다
  • IP주소 부족은 NAT가 아닌 IPv6로 해결되어야 한다
  • End to End 원칙을 위반한다.(네트워크 계층 장치에 의한 포트번호가 변경되기에)
  • NAT 트래버셜  

IPv6 

IPv4만으로는 IP주소를 할당하기의 한계가 있었고, 이를 확장하기 위해서 등장한 것이 IPv6 주소체계이다.

IPv4는 32bit 였다면, IPv6는 128bit의 주소값을 사용해서 많은 기기를 연결할 수 있다.

 

IPv6의 헤더 구조

 

왼쪽이 IPv4고, 오른쪽이 IPv6이다.
딱 봐도 구조가 단순해진것을 알 수 있다.

 

주된 변화

  • 고정된 길이의 40 bytes 헤더를 사용한다.
    • 기존의 IPv4는 20바이트에서 60바이트까지 가변적인 길이를 가졌으며 다양한 옵션필드를 포함했다.
      그 반면 IPv6는 40바이트의 고정된 길이를 가지고, 필요한 정보를 간결하게 포함하고 있다.
  • checksum이 없다.
    • 처리시간이 훨씬 단축됨.
  • Fragmentation/reassembly을 허용하지 않는다.
    • 보낼 때 송신츠겡서 알아서 잘라서 보낸다.

 

IP datagram 구성요소

  • pri
    • 데이터그램의 우선순위 도는 품질을 나타냄.
  • Flow Label(20bit)
    • 패킷의 흐름을 식별하기 위한 값
  • Payload Length(16bit)
    • IPv6 헤더 이후의 페이로드 크기를 나타낸다.
      • 여기서 페이로드란 데이터그램에 실려서 최종 목적지까지 전달되는 데이터
  • Next Header(8bit)
    • 페이로드 다음 계층 프로토콜을 나타낸다. (TCP, UDP 식별)
  • hop limit(8bit)
    • 약간 IPv4의 TTL 느낌 -> 네트워크에서 잔파 할 수 있는 최대 홉 수.
      -> 0이 되면 패킷은 폐기됨.
  • Source Address(128bit) 
    • 데이터 그램의 출발지
  • Destination(128bit)
    • 데이터그램의 목적지
  • Option, Payload(가변길이)
    • Option -> 선택적인 확장 헤더 옵션, Payload -> 실제 데이터, 응용 프로토콜 데이터

 

Transition from IPv4 to IPv6

IPV4와 IPV6가 공존하기 위해서 tunneling 기능을 활용할 수 있다.

해당 기술은 IPv6 패킷을 IPv4 패킷 속에 담아서 전송하는 방식이다.

 

 

요약

  • NAT는 IPv4에서 주소를 더욱 확장해서 사용하기 위해서 등장했다.
    • 여러 장치가 하나의 IP address를 공유해서 사용한다.
  • NAT translation table을 통해서 라우터는 호스트의 포트번호를 식별한다.
  • IPv6는 IPv4 만으로 주소를 할당하기에 한계가 있어서 등장했다.
    • 32bit -> 128bit
  • IPV6은 checksum, fragmentation이 없고, 고정된 헤더 길이를 제공한다(40byte)
  • IPv4와 IPv6을 같이 사용하기 위해서 tunneling 기능을 활용할 수 있다.

 

저작자표시 (새창열림)

'Computer Science > Network' 카테고리의 다른 글

[컴퓨터망]-라우팅 알고리즘  (0) 2023.06.13
[컴퓨터망]-Flow table  (0) 2023.06.12
[컴퓨터망]-IP addressing,IPv4,CIDR,DHCP,Subnet  (0) 2023.06.12
[컴퓨터망] - IP datagram format  (2) 2023.04.15
[컴퓨터망] - Network Layer(Routing & Forwarding & Switching Fabric && Buffer Management)  (1) 2023.04.15
  1. NAT(network addres translation)
  2. NAT의 장점
  3. NAT의 동작과정
  4. NAT의 문제점? 논란?
  5. IPv6 
  6. IPv6의 헤더 구조
  7. 주된 변화
  8. IP datagram 구성요소
  9. Transition from IPv4 to IPv6
  10. 요약
'Computer Science/Network' 카테고리의 다른 글
  • [컴퓨터망]-라우팅 알고리즘
  • [컴퓨터망]-Flow table
  • [컴퓨터망]-IP addressing,IPv4,CIDR,DHCP,Subnet
  • [컴퓨터망] - IP datagram format
재한
재한
안녕하세요 💻
짜이한안녕하세요 💻
재한
짜이한
전체
오늘
어제
  • 분류 전체보기 (502)
    • Skils (116)
      • Android (50)
      • C++ (5)
      • Kotlin (36)
      • Algorithm (24)
      • Server (1)
    • CodingTest (228)
      • Programmers (45)
      • Baekjoon (183)
    • Experience (8)
      • 후기(코딩테스트,프로그램,프로젝트) (8)
    • Computer Science (70)
      • Design Pattern (2)
      • OOP (2)
      • Computer Architecture (14)
      • OS (2)
      • Software Engineering (3)
      • DataBase (8)
      • Network (39)
    • 학교 (75)
      • R프로그래밍 (26)
      • 회계와 사회생활 (17)
      • 컴퓨터학개론 (20)
      • it기술경영개론 (12)

블로그 메뉴

  • 홈
  • 태그
  • 카테고리
  • 글쓰기
  • 설정

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
재한
[컴퓨터망]-NAT & IPv6
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.