2014년 1월 15일 수요일

IP Security(IPsec) 프로토콜

개요
원본 인터넷 프로토콜(IP)의 약점 중 하나는 데이터그램의 인증과 프라이버시 보호 기능을 제공하는 범용 방법이 없다는 것이다.
IP 데이터그램은 알려지지 않은 네트워크 사이에서 두 장비 간에 라우팅이 되어야 하기 때문에, 그 안에 있는 정보를 가로채고 수정하는 공격에 취약하다.
중요 애플리케이션이 인터넷을 점점 많이 사용하게 되면서, IP 보안의 개선을 위한 방법이 필요했다.
이를 위해 개발된 것이 IP Security 또는 IPsec라고 불리는 프로토콜 모음이다.
  • IPsec 서비스와 기능 개요
      • IPsec는 하나의 프로토콜이 아니라 IP 네트워크를 위한 완전한 보안 솔루션을 제공하는 서비스와 프로토콜 모음
    • 프라이버시 보호를 위한 사용자 데이터 암호화
    • 메시지의 무결성을 인증하여 중간에서 변조되지 않았음을 보장
    • 재생(replay) 공격과 같은 특정 종류의 보안 공격으로부터 보호
    • 장비가 자신의 보안 요구에 맞는 보안 알고리즘과 키를 협상할 수 있도록 함
    • 서로 다른 네트워크 요구를 만족시키기 위한 두 보안 모드
      • 터널(tunnel)과 전송(transport)
  • IPsec 표준
RFC번호 이름 설명
2401 Security Architecture for the Internet Protocol 주 IPsec 문서로 IPsec 기술의 구조와 일반 동작, 여러 구성 요소가 어떻게 쓰이는지를 보여준다.
2402 IP Suthentication Header 데이터 무결성과 원본 검증을 보장하는 데 쓰이는 IPsec 인증 세더(AH) 프로토콜을 정의한다.
2403 The Use of HMAC-MD5-96 within ESP and AH AH와 보안 페이로드 캡슐화(ESP) 프로토콜에서 사용하는 암호화 알고리즘인 Message Digest 5(MD5), HMAC 변종을 설명한다.
2404 The Use of HMAC-SHA-1-96 within ESP and AH AH와 ESP에서 사용하는 암호화 알고리즘인 Secure Hash Algorithm 1(SHA-1), HMAC 변종을 설명한다.
2406 IP Encapsulating Security Payload(ESP) 기밀성을 위해 데이터를 암호화하는 IPsec ESP 프로토콜을 설명한다.
2408 Internet Security Association and Key Management Protocol(ISAKMP) 키를 교환하고 보안 연관을 협상하는 방법을 정의한다.
2409 The Internet Key Exchange(IKE) 두 장비간 안전한 통신을 위해 보안 연관을 협상하고 키를 교환하는 데 쓰이는 IKE 프로토콜을 설명한다. IKE는 ISAKMP와 OAKLEY에 기반을 두고 있다.
2412 The OAKLEY Key Determination Protocol 키 교환을 위한 범용 프로토콜을 설명한다.


IPsec 일반 동작, 구성 요소, 프로토콜
  • IPsec는 TCP/IP 프로토콜과 애플리케이션이 사용할 수 있도록 IP 계층에서 보안 서비스를 제공한다.
    • 상대방이 이해할 수 있는 형태로 데이터를 보내는데 사용할 보안 프로토콜에 동의해야 한다.
    • 데이터를 인코딩할 때 사용할 구체적인 암호화 알고리즘을 결정해야 한다.
    • 암호로 인코딩된 데이터를 푸는 데 쓰이는 키를 교환해야 한다.
    • 이러한 배경 작업을 완료하면, 각 장비는 협상한 프로토콜, 방법, 키를 이용하여 데이터를 인코딩하고 네트워크로 송신할 수 있다.
  • IPsec 핵심 프로토콜
    • IPsec 인증 헤어(AH)
      • IPsec를 위한 인증 서비스를 제공한다.
      • 메시지의 송신자로 표현된 장비가 실제로 그 메시지를 송신했다는 것을 수신자가 검증할 수 있도록 한다.
      • 중간 경로에 있는 장비들이 데이터그램의 어떤 데이터도 변경하지 않았다는 것을 수신자가 검증할 수 있도록 한다.
      • 허가받지 않는 사용자가 메시지를 캡쳐한 뒤 나중에 재송신하는 재생 공격(replay attack)에 대한 보호 기능도 제공한다.
    • 보안 페이로드 캡슐화(ESP)
      • AH는 데이터그램 데이터의 무결성은 보장하지만 프라이버시는 보장하지 않음
      • 데이터그램의 정보를 "아는 사람만 볼 수 있도록" 하려면 ESP를 이용하여 암호화 해야 함
IPsec 프로토콜과 구성 요소 개요


  • IPsec 보조 구성 요소
    • 암호화/해싱 알고리즘
      • IPsec에서 널리 쓰이는 알고리즘이 Message Digest 5(MD5)와 Secure Hash Algorithm 1(SHA-1)이다.
    • 보안 정책, 보안 연과, 관리 방법
    • 키 교환 프레임워크와 방법
      • 두 장비가 암호화된 정보를 교환하기 위한 방법으로 인터넷 키 교환(IKE, Internet Key Exchange)을 제공

IPsec 구조와 구현 방법
    • 설계상 고려 사항
      • 종단 호스트 구현
      • 라우터 구현
  • 통합 구조
    • IPsec의 프로토콜과 기능을 IP 자체에 직접 통합하고 싶을 것
    • IPv6는 IPsec를 지원하도록 설계됨
    • IPv4는 현실적으로 실용적이지 않음
  • 스택 삽입(BITS, bump in the stack) 구조
    • IPsec는 IP와 데이터 링크 계층 사이에서의 별도 구조 계층으로 존재
    • 장점 : 어떤 IP 장비에서도 IPsec를 적용할 수 있다.
    • 단점 : 통합구조에 비해 TCP/IP 스택에서 해야 할 일이 늘어남
    • 일반적으로 IPv4 호스트에서 쓰임
  • 라인 삽입(BITW, bump in the wire) 구조
    • 기존의 라우터와 라우터 사이에 IPsec 장비를 끼워 넣어 구성

IPsec 모드: 전송과 터널
  • 전송 모드
    • 전송 계층에서 IP로 내려온 메시지를 보호함
    • AH, 혹은 AH와 ESP의 조합에 의해 처리되며 적절한 헤더가 전송(UDP 또는 TCP)헤더 앞에 붙는다. 그리고 그 앞에 IP 헤더가 붙는다.
  • 터널 모드
    • IP 헤더가 이미 추가된 완전히 캡슐화된 IP 데이터그램을 보호하는 데 쓰임
    • IPsec 헤더는 원본 IP 헤더의 앞에 붙으며 새로운 IP 헤더가 다시 이 IPsec 헤더 앞에 붙음
  • 전송 모드와 터널 모드 비교
    • 전송 모드
      • IP 헤더, IPsec 헤더(AH, 혹은 AH와 ESP의 조합), IP 페이로드(전송계층 헤더 포함)
    • 터널 모드
      • 새 IP 헤더, IPsec 헤더(AH, 혹은 AH와 ESP 조합), 기존 IP 헤더, IP 페이로드
IPsec 전송모드와 터널모드 비교

IPsec 보안 구성 요소

  • 보안 정책, 보안 연관, 관련 데이터베이스
    • 보안 정책, 보안 정책 데이터베이스
      • 보안 정책은 IPsec 구현에 내장된 규칙이다.
      • 보안 정책은 장비가 수신하는 서로 다른 데이터그램을 어떻게 처리할 지 지시한다.
      • 보안 정책은 보안을 어떻게 제공할지에 대한 전반적인 지침을 기술하며 필요할 경우 구체적인 지침까지도 제시한다.
      • 장비의 보안 정책은 장비의 보안 정책 데이터베이스(SPD, security policy database)에 저장되어 있다.
    • 보안 연관과 보안 연관 데이터베이스
      • 보안 연관(SA, security association)은 한 장비와 다른 장비 사이에 맺은 특정한 종류의 보안 연결을 설명하는 보안 정보다.
      • 장비의 보안 연관은 보안 연관 데이터베이스(SAD, security association database)에 포함된다.
  • 선택자
    • 장비가 특정 데이터그램에 어떤 보안 정책이나 SA를 사용할지를 결정하는 방법
    • SA가 자신이 적용될 데이터그램을 선택하기 위한 규칙 모음
  • 보안 연관 트리플과 보안 인자 색인
    • 보안 인자 색인
      • 서로 연결된 장비의 특정 SA를 유일하게 식별하기 위해 선택된 32비트 숫자
      • SPI는 AH 또는 ESP 데이터그램에 내장되며 각 보안 데이터그램을 SA와 연결시킨다
      • SPI는 메시지 수신자가 데이터그램에 어떤 SA가 적용되는지 파악하는데 쓰인다
    • IP 목적지 주소
      • SA가 수립된 장비의 주소
    • 보안 프로토콜 식별자
      • 이 연관이 AH를 위한 것인지, ESP를 위한 것인지를 지정한다.
      • 만약 장비에서 AH와 ESP 둘 다 사용하고 있다면, 각각 별도의 SA를 이용해야 한다.

IPsec 인증 헤더(AH)


    • AH 헤더는 메시지의 무결성을 보장하지만 메시지를 암호화하지는 않는다.
    • AH는 인증은 제공하지만 프라이버시는 제공하지 않는다. 이것은 ESP의 몫이다.
  • AH 데이터그램 위치와 연결
    • IPv6 AH위치와 연결
      • IPv6에서, AH는 확장 헤더로 IP 데이터그램에 삽입됨
      • IPv6의 일반적인 확장 헤더 연결 규칙을 그대로 따름
      • 전송모드에서, AH는 주 IP 헤더 안에 위치하며 최종 목적지에 대한 옵션을 포함하는 목적지 옵션 헤더 앞에, ESP 헤더가 있을 경우 그 앞에 나타남
      • 터널모드에서, AH는 터널링되는 원본 데이터그램을 캡슐화하는 새 IP 데이터그램의 확장 헤더로 나타남
    • IPv4 AH 위치와 연결
      • IPv4 데이터그램에서 프로토콜 필드는 데이터그램이 운반하는 상위 계층 프로토콜(보통 TCP 또는 UDP)을 지정
      • 그래서 이 필드는 다음 헤더(IP 페이로드의 맨 앞)를 가리킴
      • AH는 이 값을 가져와 다음 헤더 필드에 넣고, IP 프로토콜 필드에 AH 자체에 대한 프로토콜값(10진수로 51)을 넣음
      • 이렇게 하면 IP 헤더는 AH를, AH는 IP 데이터그램이 예전에 가리키던 것을 가리킴
  • AH 포맷
필드 이름 크기
(바이트)
설명
다음 헤더 1 AH 다음에 오는 헤더의 프로토콜 번호를 담고 있다. 헤더를 서로 연결하는 데 쓰인다.
페이로드 길이 1 이름과는 달리 이 필드는 페이로드가 아니라 인증 헤더 자체의 길이를 측정한다. 이 길이는 32비트 단위로 측정되며 IPv6에서 헤더 길이를 계산하는 일반적인 방법과 유사하게, 2를 뺀 값으로 표현된다.
예약됨 2 쓰이지 않는다. 0으로 설정된다.
SPI 4 32비트 값으로 목적지 주소와 보안 프로토콜 유형(물론 여기서는 AH)과 함께 이 데이터그램에 쓰이는 보안 연관(SA)을 식별한다.
순서 번호 4 두 장비간 SA가 구성될 때 0으로 초기화되는 카운터 필드이다. 이 필드는 그 SA를 사용하여 데이터그램이 송신될 때마다 증가한다. 이 필드는 특정 SA 내에서의 각 데이터그램을 유일하게 식별하며 캡쳐한 데이터그램을 재전송하는 것을 방지함으로써 재생 공격으로부터 IPsec를 방어하는 데 쓰인다.
인증 데이터 가변적 AH 프로토콜이 수행하는 해싱 알고리즘의 계산 결과인 무결성 검사값(ICV)을 포함한다.

IPsec AH를 포함하는 IPv4 데이터그램 포맷 IPsec 인증 헤더(AH) 포맷

    • 인증 데이터 필드의 크기는 서로 다른 데이터그램 길이와 해싱 알고리즘을 지원하기 위해 가변적으로 설정되어 있음
    • 인증 데이터 필드의 길이는 32비트의 배수가 되어야 하고 전체 헤더도 32비트의 배수(IPv4의 경우) 또는 64비트의 배수(IPv6의 경우)여야 하기 때문에 필드에 패딩이 추가될 수 있음

IPsec 보안 페이로드 캡슐화(ESP)
    • Encapsulating Security Payload 프로토콜
    • IP 데이터그램을 암호화하여 프라이버시를 보장
  • ESP 필드
    • ESP 헤더
      • SPI와 순서 번호(Sequence Number)라는 두 필드를 포함하며 암호화된 데이터 앞에 온다
    • ESP 트레일러
      • 암호화된 데이터 뒤에 위치
      • 패딩과 패딩 길이 필드를 이용해 암호화된 데이터를 32비트 경계에 맞춘다
      • ESP의 다음 헤더 필드도 포함
    • ESP 인증 데이터
      • AH 프로토콜과 유사한 방식으로 계산되는 ICV를 포함
      • ESP의 선택적인 인증 기능이 적용될 때 쓰임
  • ESP 동작과 필드 사용
    1. 헤더 계산과 위치
      • IPv6
        • ESP 헤더 필드는 확장 헤더로 IP 데이터그램에 삽입됨
        • IPv6의 일반적인 확장헤더 연결 규칙을 그대로 따름
        • 전송모드에서, 최종 목적지에 대한 옵션을 포함하는 목적지 옵션 헤더 전에, 그 밖의 모든 확장 헤더 뒤에
        • 터널모드에서, 터널링되는 원본 데이터그램을 캡슐화하는 새 IP 데이터그램의 확장 헤더로 나타남
      • IPv4
        • ESP 헤더는 일반 IPv4 헤더 뒤에 위치
        • 전송모드에서, 원본 데이터그램의 IP 헤더 뒤
        • 터널모드에서, 원본 데이터그램을 캡슐화하는 새 IP 데이터그램의IP 헤더 뒤
    2. 트레일러 계산과 위치
      • ESP 트레일러 필드가 암호화될 데이터 뒤에 붙으면 ESP는 암호화를 수행
    3. ESP 인증 필드 계산과 위치
      • 선택적인 ESP 인증 기능이 쓰일 경우에는 전체 ESP 데이터그램에 대한 계산이 이루어진다
  • ESP 인증 필드 계산과 위치
IPsec ESP를 사용하는 IPv6 데이터그램 포맷

IPsec ESP를 사용하는 IPv4 데이터그램 포맷


  • ESP 포맷
구간 필드 이름 크기
(바이트)
설명
ESP 헤더 SPI 4 32비트값으로, 목적지 주소와 보안 프로토콜 유형과 함께 이 데이터그램에 쓰이는 보안 연관(SA)을 식별한다.
순서 번호 4 두 장비간 SA가 구성될 때 0으로 초기화되는 카운터 필드이다. 이 필드는 그 SA를 사용하여 데이터그램이 송신될 때마다 증가한다. 이 필드는 재생 공격으로부터 IPsec를 방어하는 데 쓰인다.
페이로드 페이로드 가변적 암호화된 페이로드 데이터로 상위 계층 데이터 메시지 또는 캡슐화된 IP 데이터그램으로 구성된다. 이 필드는 일부 암호화 방법에서 필요로 하는 초기화 벡터 같은 지원 정보를 포함할 수도 있다.
ESP트레일러 패딩 가변적
(0에서 255)
암호화 또는 정렬을 위해 추가적인 패딩 바이트가 포함된다.
패딩 길이 1 위 패딩 필드의 파이트 수
다음 헤더 1 데이터그램에서 다음 헤더의 프로토콜 번호를 포함한다. 헤더를 연결하는 데 쓰인다.
ESP인증 데이터 가변적 선택적인 ESP 인증 알고리즘을 적용하여 계산한 ICV를 포함한다.
IPsec 보안 페이로드 캡슐화(ESP) 포맷

IPsec ESP 포맷

IPsec 인터넷 키 교환(IKE)

  • IKE 개요
      • IKE의 목적은 장비가 안전한 통신을 위해 필요로 하는 정보를 교환하도록 하는 것
      • IKE는 3개의 다른 프로토콜 기능을 결합하고 보완하기 때문에 혼성 프로토콜로 간주됨
    • ISAKMP(Internet Security Association and Key Management Protocol)
        • 암호화 키와 보안 연관 정보를 교환하기 위한 구조를 제공
      • OAKLEY
        • 다양한 키 교호나 모드를 정의하여, 키 교환을 위한 구체적인 방법을 설명
        • IKE 키교환 절차 대부분은 OAKLEY에 기반을 두고 있음
      • SKEME
        • OAKLEY와는 다른 키 교환 방법을 설명
        • IKE는 SKEME의 일부 기능(공개 키 암호화와 만료된 SA의 고속 재수립 포함)을 이용
  • IKE 동작
      • IKE는 OAKLEY나 SKEME를 엄격히 구현한 것이 아니라 양 쪽에서 일부 기능을 가져와 ISAKMP라는 고유한 방법을 만듦
    • ISAKMP 단계 1
      • 1단계는 두 장비가 이후에 정보를 어덯게 안전하게 교환할지에 동의하는 준비 단계다
      • 두 장비는 협상을 통해 ISAKMP 자체를 위한 SA인 ISAKMP SA를 생성한다
    • ISAKMP 단계 2
      • 1단계에서 수립한 ISAKMP SA를 이용하여 기타 보안 프로토콜을 위한 SA를 생성
      • 보통, 여기에서 AH와 ESP 프로토콜을 위한 "진짜" SA의 인자를 협상한다.
    • 1단계에서 협상한 ISAKMP SA는 이후 협상에 쓰이는 다음과 같은 속성을 포함한다.
      • DES(Data Encryption Standard) 같은 암호화 알고리즘
      • 해시 알고리즘(AH나 ESP에서 사용하는 MD5 또는 SHA)
      • 인증 방법(미리 공유한 키를 통한 인증 등)
      • 디피-헬만(Diffie-Hellman) 그룹

2014년 1월 7일 화요일

IP 네트워크 주소 변환(NAT) 프로토콜

IP NAT 개요

    • IPv4의 주소 공간 고갈, IP 주소 비용 증가, 보안 우려의 증가
    • IP 네트워크 주소 변환(IP NAT 또는 NAT, IP Network Address Translation)은 기관이 사설 주소를 사용한 네트워크를 구성하면서도 공중 인터넷과 통신할 수 있도록 하는 기술이다. NAT를 지원하는 라우터는 사설 주소를 공인 주소로, 또는 역으로 필요에 따라 변환한다. 이것은 여러 장비가 소수의 공인 IP 주소를 공유할 수 있는 등 여러 장점이 있지만 몇 가지 단점도 있다.
  • IP NAT의 장점
    • 공인 IP 주소 공유
    • 쉬운 확장
    • 로컬 통제력 강화
    • 인터넷 서비스 제공자(ISP) 선택의 유연성
    • 보안 강화
    • 투명함(대부분)
  • IP NAT의 단점
    • 복잡성
    • 공인 주소 부족으로 인한 문제
    • 특정 애플리케이션과의 호환성 문제
    • 보안 프로토콜 문제
    • 클라이언트 접근 지원 미비
    • 성능 감소

IP NAT 주소 용어
  • 내부 주소
    • 기관의 사설 네트워크에서 NAT를 사용하는 장비는 내부 네트워크에 위치해 있다고 표현한다.
    • 로컬 네트워크의 장비를 가리키는 모든 주소를 내부 주소(inside address)라고 부른다.
  • 외부 주소
    • 공중 인터넷(즉 로컬 네트워크 외부에 있는 모든 것)은 외부 네트워크에 있다고 간주된다.
    • 공중 인터넷에 있는 장비를 가리키는 주소를 외부 주소(outside address)라고 부른다.
  • 로컬 주소
    • 내부 또는 외부 주소를 가리키는가에 관계 없이 내부 네트워크의 데이터그램에 나타나는 주소를 의미
  • 전역 주소
    • 내부 또는 외부 주소를 가리키는가에 관계 없이 외부 네트워크의 데이터그램에 나타나는 주소를 의미

  • 내부 로컬 주소
    • 로컬 네트워크 장비 주소로 일반적인 로컬 장비 주소 지정 방법으로 표현됨
    • 예로 10.0.0.0 사설 블록을 사용하는 네트워크의 클라이언트에 10.0.0.207이라는 주소를 할당했다면 이것은 내부 로컬 주소임
  • 내부 전역 주소
    • 이것은 전역의, 공중 네트워크에서 라우팅 가능한 IP 주소로 내부 장비를 외부 세계에 표현하는 데 쓰임
    • NAT 구성에서, 내부 전역 주소는 NAT 라우터에서 사용할 수 있도록 기관에 할당된 공인 IP 주소를 의미
  • 외부 전역 주소
    • 공중 인터넷에서 참조하는 외부(공중 인터넷) 장비의 주소
    • 일반적인 공인 IP 주소를 의미
  • 외부 로컬 주소
    • 로컬 네트워크에서 참조하는 외부 장비의 주소

  • 내부 장비 표현
    • 내부 로컬 주소는 보통의 원래 주소
    • 내부 전역 주소는 내부 장비를 외부 네트워크에 표현하기 위한 변환된 주소
  • 외부 장비 표현
    • 외부 전역 주소는 보통의 원래 주소
    • 외부 로컬 주소는 외부 장비를 내부 네트워크에 표현하기 위한 변환된 주소

IP NAT 정적 주소 매핑과 동적 주소 매핑

    • 라우터의 NAT 소프트웨어는 변환 방법을 지시하는 변환 테이블을 관리
  • 정적 매핑
    • 내부 도는 외부 장비의 전역 표현과 로컬 표현 사이에 정의된 영구적이고, 고정된 관계를 의미
    • 예) 내부 로컬 주소가 10.0.0.207인 장비가 항상 내부 전역 주소로 194.54.21.10을 사용하게 할 때 정적 매핑을 사용
  • 동적 매핑
    • 전역과 로컬 주소 표현은 NAT 라우터에서 필요할 때마다 즉시 생성되며 사용이 끝나면 버려짐

IP NAT 단방향 (전통적/아웃바운드) 동작

  • 순서와 데이터그램 출발지 주소 목적지 주소

  1. 내부 클라이언트가 요청을 생성하여 NAT 라우터에게 송신
    • 내부 로컬 : 10.0.0.207 (클라이언트 내부 IP)
    • 외부 로컬 : 204.51.16.12 (대상 서버IP)
  2. NAT 라우터는 출발지 주소를 변환한 뒤 외부 서버에게 송신
    • 내부 전역 : 194.54.21.11 (라우터 외부 IP)
    • 외부 전역 : 204.51.1612 (대상 서버IP)
  3. 외부 서버가 응답을 생성하고 NAT 라우터에게 회신
    • 외부 전역 : 204.51.16.12 (대상 서버 IP)
    • 내부 전역 : 194.54.21.11 (라우터 외부 IP)
  4. NAT 라우터는 목적지 주소를 변환하고 데이터그램을 내부 틀라이언트에게 전달
    • 외부 로컬 : 204.51.16.12 (대상 서버 IP)
    • 내부 로컬 : 10.0.0.207 (클라이언트 내부 IP)

  • 전통적 NAT는 오직 이러한 유형의 아웃바운드 트랜잭션(내부 네트워크의 장비에서 시작됨)만을 지원한다.
  • 그래서 공중 인터넷에서 내부 사설 IP를 갖는 서버로 요청을 보내는 경우를 처리하지 못한다.

IP NAT 양방향 (Two-Way/인바운드) 동작
  • DNS를 사용한다.
  1. 외부 장비는 접근하고자 하는 내부 네트워크 장비의 이름을 이용해 DNS 요청을 전송한다. 예를 들어 그 이름을 www.ilinenat.com이라 하자
  2. 내부 네트워크를 위한 DNS 서버는 www.ilikenat.com 이름을 해당 장비의 내부 로컬 주소로 변환한다.
  3. 이 내부 로컬 주소는 NAT로 전달되며 NAT는 이것을 이용해 외부에서 접근하고자 하는 서버의 내부 로컬 주소와 내부 전역 주소를 매핑한다. 이 매핑 정보는 NAT 라우터의 변환 테이블에 저장된다.
  4. DNS 서버는 외부 장비에게 응답할 때 내부 장비의 내부 로컬 (사설) 주소가 아니라 이전 단계에서 매핑한 내부 전역 (공인) 주소를 알려준다.


  • 양방향 (two-way/인바운드) NAT의 동작 순서와 데이터그램 출발지/목적지 주소
  1. 외부 클라이언트가 요청을 생성하여 NAT 라우터에게 송신
    • 외부 전역 : 204.51.16.12
    • 내부 전역 : 194.54.21.6
  2. NAT 라우터가 목적지 주소를 변환하고 내부 서버에 송신
    • 외부 로컬 : 204.51.16.12
    • 내부 로컬 : 10.0.0.207
  3. 내부 서버가 응답을 생성하고 NAT 라우터에게 송신
    • 내부 로컬 : 10.0.0.207
    • 외부 로컬 : 204.51.16.12
  4. NAT 라우터가 출발지 주소를 변환하고 데이터그램을 외부 클라이언트로 라우팅함
    • 내부 전역 : 194.54.21.6
    • 외부 전역 : 204.51.16.12


IP NAT 포트 기반 (과부하) 동작

  • 일반 NAT의 개선된 버전으로 사설 네트워크의 다수의 호스트가 동시에 하나의 내부 전역 주소를 공유할 수 있도록 한다.
  • 이것은 TCP와 UDP 메시지에서 사용하는 포트 번호를 변경하는 방식으로 동작한다.
  • NAT 라우터는 외부로 나가는 요청의 출발지 주소와 포트를 내부 로컬에서 내부 전역 형태로 변환한다.
  • 그리고 응답의 목적지 조수와 포트를 내부 전역에서 내부 로컬 형태로 변환한다.
  • 외부 로컬과 외부 전역 주소는 요청과 응답에서 동일하다.


IP NAT 중복/2회 NAT 동작

  • 내부 네트워크에서 사용하는 주소와 외부 네트워크에서 사용하는 주소가 겹칠 경우
    • 사설 네트워크와 사설 네트워크 간의 연결
    • 사설 네트워크에 공인 주소를 부적절하게 할당
    • 공인 주소 할당의 유효 기간 만료
  • 2회 NAT에서는 외부 로컬 주소와 외부 전역 주소가 다를 수 있다.

IP NAT 호환성 문제와 특수 처리 요구사항


  • TCP와 UDP 체크섬 재계산
    • 헤더의 IP 주소를 변경한다는 것은 IP 헤더의 체크섬을 다시 계산해야 한다는 것을 의미
  • ICMP 조작
    • NAT는 IP 헤더와 매우 직접적으로 연관되어 있고, IP는 "보조" 프로토콜인 ICMP와 밀접히 연관되어 있기 때문에 NAT는 특정 ICMP 메시지를 검사하여 그 안에 포함된 주소를 변경할 필요가 있다.
  • IP 주소를 내장하는 애플리케이션
    • FTP와 같은 애플리케이션
  • 포트 변환에서의 추가적 문제
    • PAT가 쓰일 때, 주소에 해당됐던 이전 문제들이 포트에도 해달되기 때문에
  • 주소나 포트 번호 변경에 의한 파급 효과
  • IPsec에서의 문제

IPv6 데이터그램 크기, 단편화, 재조합과 라우팅 (27)

IPv6 데이터그램 크기와 단편화

IPv6 데이터그램 캡슐화와 포맷 (26)

IPv6 데이터그램 개요와 일반적인 구조