KR100757881B1 - Nat를 이용한 자동 터널링 방법 및 그 시스템 - Google Patents

Nat를 이용한 자동 터널링 방법 및 그 시스템 Download PDF

Info

Publication number
KR100757881B1
KR100757881B1 KR20060091373A KR20060091373A KR100757881B1 KR 100757881 B1 KR100757881 B1 KR 100757881B1 KR 20060091373 A KR20060091373 A KR 20060091373A KR 20060091373 A KR20060091373 A KR 20060091373A KR 100757881 B1 KR100757881 B1 KR 100757881B1
Authority
KR
South Korea
Prior art keywords
address
nat
header
mapping table
ipv4
Prior art date
Application number
KR20060091373A
Other languages
English (en)
Inventor
이민규
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR20060091373A priority Critical patent/KR100757881B1/ko
Priority to US11/878,917 priority patent/US20080071927A1/en
Priority to JP2007219451A priority patent/JP2008079304A/ja
Application granted granted Critical
Publication of KR100757881B1 publication Critical patent/KR100757881B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 NAT를 이용한 자동 터널링 방법 및 그 시스템에 관한 것으로, 상기 NAT 내부영역의 호스트로부터 수신된 요청 메시지의 외부헤더의 출발지 주소와 내부헤더의 출발지 주소의 동일 여부를 판단하는 과정과, 상기 외부헤더의 출발지 주소와 내부헤더의 출발지 주소가 동일하지 않은 경우 기 저장된 NAT 변환정보를 이용하여 상기 외부헤더의 출발지 주소를 범용주소로 변환하는 과정과, 상기 변환된 외부헤더의 출발지 범용주소와 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소의 매핑 테이블 엔트리를 매핑 테이블에 저장한 후 해당 요청 메시지를 NAT 외부영역의 호스트로 전송하는 과정과, 상기 NAT 외부영역의 호스트로부터 수신된 상기 요청 메시지에 대한 응답 메시지의 외부헤더의 목적지 주소를 상기 매핑 테이블에 저장된 범용주소로 할당한 후 해당 응답 메시지를 전송하는 과정을 포함하는 것을 특징으로 한다.

Description

NAT를 이용한 자동 터널링 방법 및 그 시스템{AUTOMATIC TUNNELING METHOD AND SYSTEM USING NETWORK ADDRESS TRANSLATION}
도 1은 IPv6 Transition 망 구조에서의 일반적인 터널링 과정을 개략적으로 도시한 도면.
도 2는 6 to 4 IPv6 주소 형식을 나타내는 도면.
도 3은 6 to 4 사이트에서 패킷이 송신되어 캡슐화되고 다시 역캡슐화되는 예를 도시화한 도면.
도 4는 NAT 변환기를 사용하는 망에서 6 to 4 터널을 통한 ICMPv6 메시지 전달의 일예를 나타내는 도면.
도 5는 NAT 변환기를 사용하는 망에서 6 to 4 터널을 통한 ICMPv6 메시지 전달의 다른 예를 나타내는 도면.
도 6은 본 발명에 따른 NAT 변환기를 사용하는 망에서 6 to 4 터널을 통한 ICMPv6 메시지 전달의 일예를 나타내는 도면.
도 7은 도 6의 NAT 외부영역에 위치한 6 to 4 라우터의 구성을 나타내는 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
100,200 : IPv6 호스트 300,400: 6 to 4 라우터
410 : 패킷 송수신부 420 : 제어부
430 : 주소 비교부 440 : 매핑정보 DB
450 : 응답 메시지 생성부 600 : NAT 변환기
본 발명은 NAT를 이용한 자동 터널링 방법 및 그 시스템에 관한 것으로, 보다 상세하게는 IPv6 Transition 터널의 한 종류인 6 to 4 터널을 NAT(Network Address Translation) 영역을 지나서도 사용할 수 있게 하는 NAT를 이용한 자동 터널링 방법 및 그 시스템에 관한 것이다.
네트워크간 연결 프로토콜인 TCP/IP(Transmission Control Protocol/ Internetworking Protocol) 프로토콜 중 네트워크 계층 프로토콜은 현재 IPv4(Internetworking Protocol, version 4)로 운용되고 있다. IPv4는 인터넷상에서 시스템간 호스트 대 호스트 통신을 제공한다. 비록 IPv4가 잘 설계되었다고는 하지만 IPv4가 나온 이래(즉, 1970년대) 발전을 거듭하고 있는 데이터 통신(예컨대, 인터넷)에 IPv4를 적용하기에 부적절한 결점들이 발견되고 있다.
따라서, 이러한 결점들을 보완하기 위해 'IPng(Internetworking Protocol, next generation)'라고도 알려진 IPv6(Internet Protocol, version 6)가 제안되었고 현재 표준이 되었다. IPv6에서 인터넷 프로토콜은 엄청나게 발전하는 인터넷을 수용하기 위해 많은 부분이 수정되었다. 예를 들어, IP 주소의 형식과 길이가 패킷 형식과 함께 변화되었고, 관련 프로토콜(예컨대, ICMP(Internet Control Message Protocol) 등)이 수정되었고, 네트워크 계층에서 ARP(Address Resolution Protocol), RARP(Reverse Address Resolution Protocol) 그리고 IGMP(Internet Group Management Protocol)와 같은 다른 프로토콜들이 삭제되거나 ICMP 프로토콜에 포함되었다. 또한 라우팅 프로토콜들{예를 들어, RIP(Routing Information Protocol), OSPF(Open Shortest Path First) 등}이 이러한 변화를 수용하기 위해 약간씩 수정되었다.
이처럼 IPv6가 제안되고 현재 표준이 되어 점차적으로 IPv6 기반으로 동작하는 시스템들이 개발되고는 있지만, 인터넷에는 엄청나게 많은 시스템이 존재하기 때문에 IPv4에서 IPv6로의 천이(transition)가 급격하게 일어날 수는 없다. 즉, 인터넷상의 모든 시스템이 IPv4에서 IPv6로 전환하는 데는 많은 시간이 필요하다. 따라서 천이는 IPv4 시스템과 IPv6 시스템 사이에 발생되는 문제를 방지하기 위해 점진적으로 이루어져야 한다.
이러한 전략은 IETF(Internet Engineering Task Force)에 의해 고안되었는데, 이중 스택(dual stack)을 이용하는 방법, 헤더 변환(header translation)방법, 터널링(tunneling)을 이용하는 방법의 세 가지 방법들이 있다.
이중 스택(dual stack)을 이용하는 방법은 IPv6로 완전하게 이전하기 전에 모든 호스트가 이중 스택(dual stack) 프로토콜을 갖는 것을 의미한다. 즉, 인터넷의 모든 시스템이 IPv6를 사용할 때까지 IPv4와 IPv6를 동시에 운용하도록 하는 방법이다.
헤더 변환(header translation) 방법은 대부분의 인터넷이 IPv6를 사용하지만 아직도 일부 시스템이 IPv4를 사용하는 경우에 유용한 방법이다. 즉, 송신자는 IPv6를 사용하기 원하나 수신자는 IPv6를 이해하지 못할 때 송신자가 IPv6 패킷의 헤더를 IPv4 헤더로 변환하여 전송하는 방법이다.
터널링(tunneling) 방법은 IPv6를 사용하는 두 컴퓨터가 서로 통신하려고 하는데 IPv4를 사용하는 영역을 통과해야만 할 때 사용되는 방법이다. 즉 IPv6 패킷이 IPv4를 사용하는 영역에 들어갈 때 IPv6 패킷을 IPv4 패킷 내에 캡슐화하였다가 IPv4 영역을 빠져나올 때 역캡슐화하는 방법이다.
특히, 이와 같은 터널링의 종류는 크게 설정터널(configured tunnel)과 자동터널(automatic tunnel)로 구분되어지며, 자동터널의 종류에는 6 to 4, ISATAP(Intra-Site Automatic Tunnel Address Protocol)등이 있으며, 본 발명은 이들 세 가지 방법 중 터널링 방법에 관한 것으로, 특히 6 to 4 자동 터널링 방법에 관련된 것이다.
이러한 6 to 4 터널링 메커니즘은 하나 이상의 유일한 IPv4 주소를 가지고 있는 IPv6 전용 사이트에 6to4 IPv6 Prefix를 할당하여 외부 IPv6 네트워크와 자동 터널링을 가능하도록 하는 메커니즘을 가리킨다. 6 to 4 터널링 메커니즘에서는 "2002:IPv4주소::/64"와 같이 IPv6 주소 형식 중에서 인터페이스 식별자에 IPv4 주 소를 포함시키는 IPv6 범용 주소를 사용한다. 예를 들어, 6 to 4 라우터의 IPv4 주소가 10.1.1.1이라고 하면, 6 to 4 라우터의 IPv6 주소는 "Global 6to4 Address: 2002:0a01:0101::1/64" 와 같이 설정될 수 있다.
한편, NAT(Network Address Translation)는 사설주소를 범용주소로 변환시켜주거나 범용주소를 사설주소로 변환시켜주는 변환기법으로 RFC3022에 정의되어 있으며, NAT의 내부영역은 사설주소를 사용하고 NAT의 외부영역은 범용주소를 사용하여 NAT 장비가 이를 대응시켜주는 방식이다. 이러한 NAT는 원래 범용 IPv4 주소의 고갈 때문에 개발되었으나 보안의 효과도 가진다.
상술한 6 to 4 자동 터널링 방식의 문제점은 6 to 4 라우터 중 한 라우터가 NAT 영역 내부에 존재하고 또 다른 6 to 4 라우터가 NAT 영역 외부에 존재할 때, NAT 영역 내부의 6 to 4 호스트로부터 NAT 영역 외부에 존재하는 6 to 4 호스트로 전송되는 ICMPv6 요청 메시지는 정상적으로 도달하게 되지만, NAT 영역 외부의 6 to 4 호스트로부터 전송되는 ICMPv6 요청 메시지에 대한 ICMPv6 응답 메시지는 NAT 영역 내부의 6 to 4 호스트까지 도달할 수 없게 된다. 왜냐하면 NAT 영역 외부의 6 to 4 라우터가 ICMPv6 응답 메시지를 캡슐화할 때 사용하는 IPv4 목적지 주소는 NAT 영역 내부의 6 to 4 라우터의 사설 주소이기 때문에 NAT 영역 외부의 6 to 4 라우터에는 해당 IPv4 주소에 대한 라우팅 정보가 존재하지 않기 때문이다.
이와 같이, 기존에는 NAT를 이용한 6 to 4 호스트간의 양방향 통신이 불가능하였으나, 이러한 단점을 해결하기 위한 방안으로 NAT 장비에서 6 to 4 터널에서 캡슐화된 모든 패킷들을 따로 처리하는 방안(6 to 4 ALG)이 국내출원번호 10-2005- 7008519호에 개시되어 있다. 이러한 방안을 간략히 설명하면, NAT 장비에서 6 to 4 라우터로부터 캡슐화된 패킷을 발견하면 이 패킷은 공인 주소로 변환할 때 IPv4 패킷의 출발지 주소만 변경하는 것이 아니라 IPv6 출발지 주소에도 IPv4 공인 주소가 포함하도록 수정해 주는 것이다. 그러나 이러한 방식은 NAT 장비에서 모든 패킷을 검사하여 6 to 4 방식으로 캡슐화되었는지 찾아내고 6 to 4 패킷을 수정해야 하기 때문에 송신지연이 발생하고 NAT 장비에도 부하를 많이 주게 된다는 문제점이 있었다.
따라서, 본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로서, 송신측 6 to 4 호스트가 NAT 영역 내부에 있고 수신측 6 to 4 호스트가 NAT 영역 외부에 존재해도 6 to 4 터널을 통해 양방향 통신이 가능하도록 한 NAT를 이용한 자동 터널링 방법 및 그 시스템을 제공함에 있다.
또한, NAT 영역을 통해 6 to 4 방식을 사용함에 있어서 NAT 장비의 수정이 필요없도록 하고 추가적인 송신지연을 최소화할 수 있도록 한 NAT를 이용한 자동 터널링 방법 및 그 시스템을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 NAT를 이용한 자동 터널링 방법의 일 측면에 따르면, 상기 NAT 내부영역의 호스트로부터 수신된 요청 메시지의 외부헤더의 출발지 주소와 내부헤더의 출발지 주소의 동일 여부를 판단하는 과정과, 상기 외부헤더의 출발지 주소와 내부헤더의 출발지 주소가 동일하지 않은 경우 기 저장된 NAT 변환정보를 이용하여 상기 외부헤더의 출발지 주소를 범용주소로 변환하는 과정과, 상기 변환된 외부헤더의 출발지 범용주소와 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소의 매핑 테이블 엔트리를 매핑 테이블에 저장한 후 해당 요청 메시지를 NAT 외부영역의 호스트로 전송하는 과정과, 상기 NAT 외부영역의 호스트로부터 수신된 상기 요청 메시지에 대한 응답 메시지의 외부헤더의 목적지 주소를 상기 매핑 테이블에 저장된 범용주소로 할당한 후 해당 응답 메시지를 전송하는 과정을 포함하는 것을 특징으로 한다.
상기 요청 메시지를 NAT 외부영역의 호스트로 전송하는 과정에서, 상기 외부헤더의 출발지 범용주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 범용주소이고, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소는 상기 라우터의 IPv4 사설주소이다.
상기 NAT가 응답 메시지를 수신하는 경우, 메시지 외부헤더의 목적지 주소를 사설 주소로 변환하여 상기 NAT 내부영역에 위치한 라우터로 전송하는 과정을 더 포함한다.
상기 요청 메시지를 NAT 외부영역의 호스트로 전송하는 과정에서, 상기 매핑 테이블은, 상기 외부헤더의 출발지 범용주소를 저장하기 위한 필드와, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하기 위한 필드와, 상기 저장된 매핑 테이블 엔트리가 소정 시간 경과 후 삭제되는 시간 정보를 저장하기 위한 소멸 타이머 필드로 이루어진다.
상기 매핑 테이블 엔트리 저장시 상기 소멸 타이머 필드에 저장되는 시간 정보는 NAT 장비에 설정된 타이머 값에 따라 설정되어진다.
그리고, 상기 저장된 매핑 테이블 엔트리는 상기 소멸 타이머 필드에 저장된 시간 정보 값이 '0'이 되면 자동으로 삭제된다.
한편, 상기한 목적을 달성하기 위한 본 발명에 따른 NAT를 이용한 자동 터널링 시스템의 일 측면에 따르면, 상기 NAT 내부영역의 호스트로부터 수신된 요청 메시지의 외부헤더의 출발지 주소와 내부헤더의 출발지 주소가 동일하지 않은 경우, 기 저장된 NAT 변환정보를 이용하여 변환된 상기 외부헤더의 출발지 범용주소와 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소의 매핑 테이블 엔트리를 매핑 테이블에 저장한 후, 상기 NAT 외부영역의 호스트로부터 수신된 상기 요청 메시지에 대한 응답 메시지의 외부헤더의 목적지 주소를 상기 매핑 테이블에 저장된 범용주소로 할당한 후 해당 응답 메시지를 전송하는 NAT 외부영역의 라우터를 포함하는 것을 특징으로 한다.
상기 라우터는, 상기 NAT 내부영역과 외부영역에 위치한 호스트와 메시지를 송수신하기 위한 패킷 송수신부와, 상기 NAT로부터 전송되는 요청 메시지를 상기 패킷 송수신부를 통해 수신하여 수신된 요청 메시지의 외부헤더에 포함된 출발지 주소와 내부헤더의 출발지 주소를 비교하는 주소 비교부와, 상기 주소 비교부로부터 비교된 주소 비교 결과에 따라 NAT를 통한 상기 요청 메시지의 주소 변환 여부 를 판단하는 제어부와, 상기 제어부의 판단 결과 상기 NAT를 통한 상기 요청 메시지의 주소 변환이 있는 경우, 상게 제어부의 제어에 따라 상기 요청 메시지의 외부헤더에 포함된 출발지 범용주소와 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하는 매핑 테이블 DB와, 상기 제어부의 제어에 의해 상기 요청 메시지에 대한 응답 메시지의 외부헤더의 목적지 주소를 상기 매핑 테이블 DB에 저장된 사설주소에 매핑되는 범용주소로 할당하여 NAT로 전송할 응답 메시지를 생성하는 응답 메시지 생성부를 포함한다.
상기 매핑 테이블 DB에 저장되는 외부헤더의 출발지 범용주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 범용주소이고, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 사설주소이다.
또한, 상기 매핑 테이블 DB에 저장되는 매핑 테이블은 상기 외부헤더의 출발지 범용주소를 저장하기 위한 필드와, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하기 위한 필드와, 상기 저장된 매핑 테이블 엔트리가 소정 시간 경과 후 삭제되는 시간 정보를 저장하기 위한 소멸 타이머 필드로 이루어진다.
특히, 상기 매핑 테이블 엔트리 저장시 상기 소멸 타이머 필드에 저장되는 시간 정보는 NAT 장비에 설정된 타이머 값에 따라 설정된다.
그리고, 상기 저장된 매핑 테이블 엔트리는 상기 소멸 타이머 필드에 저장된 시간 정보 값이 '0'이 되면 자동으로 삭제된다.
또한, 상기한 목적을 달성하기 위한 본 발명에 따른 NAT를 이용한 라우팅 장치의 일 측면에 따르면, 상기 NAT 내부영역과 외부영역에 위치한 호스트와 메시지를 송수신하기 위한 패킷 송수신부와, 상기 NAT로부터 전송되는 요청 메시지를 상기 패킷 송수신부를 통해 수신하여 수신된 요청 메시지의 외부헤더에 포함된 출발지 주소와 내부헤더의 출발지 주소를 비교하는 주소 비교부와, 상기 주소 비교부로부터 비교된 주소 비교 결과에 따라 NAT를 통한 상기 요청 메시지의 주소 변환 여부를 판단하는 제어부와, 상기 제어부의 판단 결과 상기 NAT를 통한 상기 요청 메시지의 주소 변환이 있는 경우, 상게 제어부의 제어에 따라 상기 요청 메시지의 외부헤더에 포함된 출발지 범용주소와 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하는 매핑 테이블 DB와, 상기 제어부의 제어에 의해 상기 요청 메시지에 대한 응답 메시지의 외부헤더의 목적지 주소를 상기 매핑 테이블 DB에 저장된 사설주소에 매핑되는 범용주소로 할당하여 NAT로 전송할 응답 메시지를 생성하는 응답 메시지 생성부를 포함하는 것을 특징으로 한다.
상기 매핑 테이블 DB에 저장되는 외부헤더의 출발지 범용주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 범용주소이고, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 사설주소이다.
또한, 상기 매핑 테이블 DB에 저장되는 매핑 테이블은 상기 외부헤더의 출발지 범용주소를 저장하기 위한 필드와, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하기 위한 필드와, 상기 저장된 매핑 테이블 엔트리가 소정 시간 경과 후 삭제되는 시간 정보를 저장하기 위한 소멸 타이머 필드로 이루어진 다.
특히, 상기 매핑 테이블 엔트리 저장시 상기 소멸 타이머 필드에 저장되는 시간 정보는 NAT 장비에 설정된 타이머 값에 따라 설정된다.
그리고, 상기 저장된 매핑 테이블 엔트리는 상기 소멸 타이머 필드에 저장된 시간 정보 값이 '0'이 되면 자동으로 삭제된다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 1은 IPv6 Transition 망 구조에서의 일반적인 터널링 과정을 개략적으로 도시한 도면이다.
도 1에 도시된 바와 같이, IPv6 망(IPv6 network)(A)에 연결된 IPv6 호스트(Host)(10)가 IPv4 망(IPv4 network)(B)을 통해 연결된 또 다른 IPv6 망(IPv6 network)(C)에 연결된 IPv6 호스트(Host)(20)에게 데이터를 전송하는 경우에 대한 예를 도시하고 있다.
도 1을 참조하면 IPv6 호스트(10)는 IPv6로 캡슐화된 IPv6 패킷(51)을 IPv6 망(A)으로 전송한다. 그러면 IPv6 망(A)과 IPv4 망(B)의 경계에 위치한 IPv6/IPv4 라우터(IPv6 Transit Router)(30)는 IPv6 패킷(51)을 IPv4로 캡슐화하여 IPv4 망(B)과 IPv6 망(C)의 경계에 위치한 IPv4/IPv6 라우터(IPv6 Transit Router)(40)에게 전송한다. 즉 IPv6/IPv4 라우터(30)는 상기 IPv6 패킷(51)에 IPv4 헤더(header)를 붙여서 IPv4 망(B)으로 전송한다.
상기 IPv4로 캡슐화된 패킷(52)을 수신한 IPv4/IPv6 라우터(40)는 그 패킷(52)을 역캡슐화하여 IPv6 망(C)으로 전송한다. 즉 IPv4/IPv6 라우터(40)는 IPv4 망(B)을 통과하기 위해 부가된 IPv4 헤더를 제거한 패킷을 IPv6 망(C)으로 전송하게 된다. 그러면 IPv6 호스트(20)는 IPv4 헤더가 제거된 IPv6 패킷(53)을 수신할 수 있게 된다.
도 2는 6 to 4 IPv6 주소 형식을 나타내는 도면이다.
도 2에 도시된 바와 같이, 6 to 4 IPv6 주소 형식은 사설 및 범용 주소 형식에 모두 적용되는 "2002(16 bit)"로 시작되는 부분과, IPv4 Address부와 SLA(Site Level Aggregator)부를 포함하는 인터페이스 식별자 부분과, 인터페이스 ID(Interface ID) 부분이 포함되어진다.
도 3은 6 to 4 사이트에서 패킷이 송신되어 캡슐화되고 다시 역캡슐화되는 예를 도시화한 도면이다.
도 3에 도시된 바와 같이, IPv6 호스트(10)의 IPv6 주소가 '2002:c001:0101::5'이고, IPv6 호스트(20)의 IPv6 주소가 '2002:c002:0202::5'인 예를 도시하고 있다. 즉, IPv6 주소가 '2002:c001:0101::5'인 IPv6 호스트(10)가 IPv4 망(B)을 거쳐서 IPv6 주소 '2002:c002:0202::5'인 IPv6 호스트(20)에게 IPv6 패킷을 전송하는 경우에 대한 6 to 4 터널링 과정을 설명하고 있다.
도 3을 참조하면 IPv6 호스트(10)는 전송하고자 하는 패킷에 IPv6 헤더를 부가하여 IPv6 캡슐화를 수행하게 된다. 이 때 IPv6 헤더는 해당 데이터가 전송되는 출발지(source, 이하 'Src'라 칭함) 주소와 전송되어질 목적지(destination, 이하 'Dst'라 칭함) 주소를 포함하게 된다. 도 3의 예에서 상기 전송될 데이터의 출발지(Src)는 IPv6 호스트(10)이고, 목적지(Dst)는 IPv6 호스트(20)이므로 IPv6 캡슐레이션 결과 생성된 데이터(51a)의 IPv6 헤더에는 IPv6 호스트(10)의 주소(2002:c001:0101::5)와 IPv6 호스트(20)의 주소(2002:c002:0202::5)가 포함된다. 그리고 IPv6 호스트(10)는 상기 IPv6 캡슐레이션된 데이터(51a)를 IPv6 망(A)을 통해 IPv6/IPv4 라우터(30)로 전송한다.
그러면 IPv6/IPv4 라우터(30)는 그 데이터(51a)에 IPv4 헤더를 부가하여 IPv4 캡슐화를 수행하게 된다. 이 때 IPv4 헤더의 출발지 주소는 IPv6/IPv4 라우터(30)의 IPv4 주소인 '192.1.1.1'을 사용하고, 목적지 주소는 IPv4/IPv6 라우터(40)의 IPv4 주소인 '192.2.2.2'을 사용하게 된다.
즉, IPv4 영역에 들어갈 때 캡슐화에 사용하는 IPv4 패킷의 목적지 주소로 IPv6의 목적지 주소에 포함되어 있는 IPv4 주소를 사용하게 되며, 또한 IPv4 영역에 들어갈 때 캡슐화에 사용하는 IPv4 패킷의 출발지 주소로 IPv6의 출발지 주소에 포함되어 있는 IPv4 주소를 사용한다.
이에 따라, IPv6/IPv4 라우터(30)는 상기 IPv4 헤더의 출발지 주소 및 목적지 주소 정보에 의거하여 IPv4 헤더로 캡슐화된 패킷(52a)을 IPv4 망(B)을 통해 IPv4/IPv6 라우터(40)로 전송하게 된다.
IPv4/IPv6 라우터(40)는 수신된 패킷(52a)을 역캡슐화하여 IPv6 망(C)으로 전송한다. 즉 IPv4/IPv6 라우터(40)는 IPv4 헤더로 캡슐화된 패킷(52a)에서 IPv4 헤더를 제거한 후 IPv6 망(C)을 통해 IPv6 호스트(20)로 전송하게 됨으로써 IPv6 호스트(20)는 IPv4 헤더가 제거된 IPv6 패킷(53a)을 수신할 수 있게 된다.
도 4는 NAT 변환기를 사용하는 망에서 6 to 4 터널을 통한 ICMPv6 메시지 전달의 일예를 나타내는 도면이다.
도 4에 도시된 바와 같이, IPv6 호스트(10)는 전송하고자 하는 데이터에 "Src:2002:0a01:0101::5", "Dst:2002:c902:0202::5" 인 IPv6 헤더를 부가한 ICMPv6 Request 메시지를(51b) IPv6/IPv4 라우터(30)로 전송하게 된다.
이에 따라, IPv6/IPv4 라우터(30)는 상기 IPv6 헤더에 포함된 "Src:2002:0a01:0101::5", "Dst:2002:c902:0202::5"로부터 각각 IPv4 주소를 추출하여 변환한 IPv4 주소 정보를 갖는 IPv4 헤더를 부가하여 캡슐화한 ICMPv6 요청 메시지(52b)를 NAT 변환기(NAT Translator, 60)로 전송하게 된다.
이에 따라, NAT 변환기(NAT Translator, 60)는 내부에 저장된 매핑 테이블 정보를 이용하여 IPv6/IPv4 라우터(30)로부터 전송된 ICMPv6 요청 메시지(52b)의 IPv4 헤더에서 사설주소인 출발지 주소(Src:10.1.1.1)를 범용주소(Src:200.1.1.1)로 변환하여 변환된 IPv4 헤더를 갖는 ICMPv6 요청 메시지(53b)를 IPv4/IPv6 라우터(40)로 전송하게 된다.
이에 따라, IPv4/IPv6 라우터(40)는 NAT 변환기(NAT Translator, 60)로부터 전송되는 캡슐화된 ICMPv6 요청 메시지(53b)를 역캡슐화하여 역캡슐화된 메시지(54b)를 IPv6 호스트(20)로 전송하게 된다.
이에 따라, IPv6 호스트(20)는 상기 IPv4/IPv6 라우터(40)로부터 전송된 역캡슐화된 메시지(54b)를 전송받는 경우, 출발지 주소(Src:2002:c902:0202::5)와 목적지 주소(Dst:2002:0a01:0101::5)만을 바꾼 ICMPv6 응답 메시지(55b)를 IPv4/IPv6 라우터(40)로 전송하게 된다.
이에 따라, IPv6 호스트(20)로부터 ICMPv6 응답 메시지(55b)를 전송받은 IPv4/IPv6 라우터(40)는 ICMPv6 응답 메시지(55b)의 IPv6 헤더에 포함된 "Src:2002:c902:0202::5", "Dst:2002:0a01:0101::5"로부터 각각 IPv4 주소를 추출하여 변환한 IPv4 주소 정보("Src:201.2.2.2", "Dst:10.1.1.1")를 갖는 IPv4 헤더를 부가하여 캡슐화한 ICMPv6 응답 메시지(56b)를 NAT 변환기(NAT Translator, 60)로 전송하게 된다.
그러나, NAT 변환기(NAT Translator, 60)는 IPv4/IPv6 라우터(40)로부터 전송되는 ICMPv6 응답 메시지(56b)를 수신할 수 없게 된다. 왜냐하면 NAT 외부영역에 위치하는 IPv4/IPv6 라우터(40)가 ICMPv6 응답 메시지를 캡슐화할 때 사용하는 IPv4 목적지 주소는 NAT 내부영역에 위치하는 6 to 4 라우터(30)의 사설 주 소(Dst:10.1.1.1)이고 IPv4/IPv6 라우터(40)에는 해당 IPv4 주소에 대한 라우팅 정보가 존재하지 않기 때문이다. 이와 같이 NAT 외부영역과 NAT 내부영역에 위치하는 6 to 4 호스트간에 양방향 통신이 불가능하기 때문에 6 to 4 자동 터널링 방식에서는 NAT를 사용할 수 있게 된다.
도 5는 NAT 변환기를 사용하는 망에서 6 to 4 터널을 통한 ICMPv6 메시지 전달의 다른 예를 나타내는 도면이다.
도 5에 도시된 바와 같이, IPv6 호스트(10)는 전송하고자 하는 데이터에 "Src:2002:0a01:0101::5", "Dst:2002:c902:0202::5" 인 IPv6 헤더를 부가한 ICMPv6 Request 메시지를(51c) IPv6/IPv4 라우터(30)로 전송하게 된다.
이에 따라, IPv6/IPv4 라우터(30)는 상기 IPv6 헤더에 포함된 "Src:2002:0a01:0101::5", "Dst:2002:c902:0202::5"로부터 각각 IPv4 주소를 추출하여 변환한 IPv4 주소 정보를 갖는 IPv4 헤더를 부가하여 캡슐화한 ICMPv6 요청 메시지(52c)를 NAT 변환기(NAT Translator, 60)로 전송하게 된다.
이에 따라, NAT 변환기(NAT Translator, 60)는 내부에 저장된 매핑 테이블 정보를 이용하여 IPv6/IPv4 라우터(30)로부터 전송된 ICMPv6 요청 메시지(52c)의 IPv4 헤더에서 사설주소인 출발지 주소(Src:10.1.1.1)를 범용주소(Src:200.1.1.1)로 변환하고, 이와 함께 IPv6 헤더의 출발지 주소에서의 IPv4 주소 부분(0a01:0101)을 상기 IPv4 헤더의 출발지 주소(Src:200.1.1.1)를 16진수로 변환(c801:0101)하여 변환된 IPv4 헤더를 갖는 ICMPv6 요청 메시지(53c)를 IPv4/IPv6 라우터(40)로 전송하게 된다.
이에 따라, IPv4/IPv6 라우터(40)는 NAT 변환기(NAT Translator, 60)로부터 전송되는 캡슐화된 ICMPv6 요청 메시지(53c)를 역캡슐화하여 역캡슐화된 메시지(54c)를 IPv6 호스트(20)로 전송하게 된다.
이에 따라, IPv6 호스트(20)는 상기 IPv4/IPv6 라우터(40)로부터 전송된 역캡슐화된 메시지(54c)를 전송받는 경우, 출발지 주소(Src:2002:c902:0202::5)와 목적지 주소(Dst:2002:c801:0101::5)만을 바꾼 ICMPv6 응답 메시지(55c)를 IPv4/IPv6 라우터(40)로 전송하게 된다.
이에 따라, IPv6 호스트(20)로부터 ICMPv6 응답 메시지(55c)를 전송받은 IPv4/IPv6 라우터(40)는 ICMPv6 응답 메시지(55c)의 IPv6 헤더에 포함된 "Src:2002:c902:0202::5", "Dst:2002:c801:0101::5"로부터 각각 IPv4 주소를 추출하여 변환한 IPv4 주소 정보("Src:201.2.2.2", "Dst:200.1.1.1")를 갖는 IPv4 헤더를 부가하여 캡슐화한 ICMPv6 응답 메시지(56c)를 NAT 변환기(NAT Translator, 60)로 전송하게 된다.
이에 따라, NAT 변환기(NAT Translator, 60)는 내부에 저장된 매핑 테이블 정보를 이용하여 IPv4/IPv6 라우터(40)로부터 전송된 ICMPv6 응답 메시지(56c)의 IPv4 헤더에서 범용주소인 목적지 주소(Dst:200.1.1.1)를 사설주소(Dst:10.1.1.1)로 변환하고, 이와 함께 IPv6 헤더의 목적지 주소에서의 IPv4 주소 부분(c801:0101)을 상기 변환된 IPv4 헤더의 목적지 주소(10.1.1.1)를 16진수로 변환(0a01:0101)하여 변환된 IPv4/IPv6 헤더를 갖는 ICMPv6 요청 메시지(57c)를 IPv4/IPv6 라우터(30)로 전송하게 된다.
이에 따라, IPv4/IPv6 라우터(30)는 NAT 변환기(NAT Translator, 60)로부터 전송되는 캡슐화된 ICMPv6 요청 메시지(57c)를 역캡슐화하여 역캡슐화된 메시지(58c)를 IPv6 호스트(10)로 전송하게 된다.
도 6은 본 발명에 따른 NAT 변환기를 사용하는 망에서 6 to 4 터널을 통한 ICMPv6 메시지 전달의 일예를 나타내는 도면으로서, 6 to 4 터널을 NAT 영역을 통해서도 양방향 통신이 가능하도록 6 to 4 라우터가 수신한 메시지로부터 NAT를 통과하였는지 분별하는 방법과, 수신한 메시지로부터 NAT 변환정보를 추출하여 저장하는 방법 및 저장된 NAT 변환정보를 이용하여 6 to 4 라우터간에 양방향 통신이 가능하도록 하는 과정을 나타내고 있다.
도 6에 도시된 바와 같이, IPv6 호스트(100)는 전송하고자 하는 데이터에 "Src:2002:0a01:0101::5", "Dst:2002:c902:0202::5" 인 IPv6 헤더를 부가한 ICMPv6 Request 메시지를(51d) 6 to 4 라우터(300)로 전송하게 된다.
이에 따라, 6 to 4 라우터(300)는 상기 IPv6 헤더에 포함된 "Src:2002:0a01:0101::5", "Dst:2002:c902:0202::5"로부터 각각 IPv4 주소를 추출하여 변환한 IPv4 주소 정보(Src:10.1.1.1, Dst:201.2.2.2)를 갖는 IPv4 헤더를 부가하여 캡슐화한 ICMPv6 요청 메시지(52d)를 NAT 변환기(NAT Translator, 600)로 전송하게 된다.
이에 따라, NAT 변환기(NAT Translator, 600)는 내부에 저장된 매핑 테이블 정보를 이용하여 IPv6/IPv4 라우터(300)로부터 전송된 ICMPv6 요청 메시지(52d)의 IPv4 헤더에서 사설주소인 출발지 주소(Src:10.1.1.1)를 범용주소(Src:200.1.1.1)로 변환하여 변환된 IPv4 헤더를 갖는 ICMPv6 요청 메시지(53d)를 6 to 4 라우터(400)로 전송하게 된다.
이에 따라, 6 to 4 라우터(400)는 상기 ICMPv6 요청 메시지(53d)를 수신하는 경우, 먼저 수신된 패킷이 NAT를 통해서 수신된 패킷인지 아닌지를 구별하게 된다. 이때 만약 NAT를 통해서 도착한 패킷이 아니면 수신된 6 to 4 패킷에 대한 응답 메시지 전송시 종래의 방법대로 6 to 4 패킷을 캡슐화하게 된다.
그러나, NAT를 거쳐서 도착한 패킷이면, 6 to 4 라우터(400)는 양방향 통신이 가능하도록 NAT 변환정보를 6 to 4 패킷으로부터 추출하여 내부의 6 to 4 라우팅 테이블에 저장하였다가 수신된 6 to 4 패킷에 대한 응답 메시지 전송시 6 to 4 라우팅 테이블에 저장된 NAT 변환정보를 이용하여 6 to 4 패킷을 캡슐화하게 된다.
여기서, 6 to 4 라우터(400)는 NAT를 통해서 수신된 패킷인지 아닌지는 캡슐화된 메시지의 외부헤더 정보와 내부헤더 정보를 비교하여 알 수 있다.
즉, 6 to 4 라우터(400)는 캡슐화된 6to4 패킷을 수신하면 외부헤더로부터 IPv4 출발지주소와 내부헤더로부터 IPv6 출발지주소를 확인한다. 이때 내부헤더의 IPv6 출발지 주소에 포함된 IPv4 주소와 외부헤더의 IPv4 출발지주소를 비교하여 같으면 NAT를 통하지 않은 패킷으로 인식하고, 서로 다르면 NAT에 의해 외부헤더의 IPv4 출발지 주소가 변경된 것으로 인식하게 된다. 만약 NAT를 통해 수신된 6 to 4 패킷이면 IPv4 헤더변환정보를 다음과 같은 테이블에 저장한다. 변환전의 IPv4 주 소정보는 내부헤더의 IPv6 출발지주소의 IPv4 주소부분을 추출하여 얻어낼 수 있다.
[표 1]
범용 IP 주소 사설 IP 주소 소멸타이머(단위:sec)
200.1.1.1 10.1.1.1 300
상기 표 1에서 소멸타이머는 캡슐화를 위해 저장된 NAT 주소 매핑테이블 엔트리가 일정시간이 지나 삭제될 시간을 의미한다. 이러한 소멸타이머는 새로운 엔트리가 저장될 때는 기본값(예를 들어 "300")으로 저장하였다가 초단위로 1씩 감소하여 소멸타이머가 '0'이 되면 해당 엔트리는 자동으로 삭제되어 일정기간동안 사용하지 않는 엔트리를 삭제하는 역할을 한다.
또한, NAT를 통해 전송된 6 to 4 패킷의 NAT 변환정보가 기존에 저장된 매핑 테이블에 존재하면 기존에 저장된 엔트리를 변경하고 소멸타이머도 기본값으로 갱신한다.
특히, NAT의 종류는 범용주소와 사설주소를 변환하는 방식에 따라 정적 NAT(Static NAT)와 동적 NAT(Dynamic NAT)로 구분되어지는데, 정적 NAT는 범용주소와 사설주소를 1 대 1로 대응시키는 방식이고, 동적 NAT는 범용주소가 호스트의 수에 비해 모자랄 때 사용하는 방법으로 사설주소를 가지는 호스트로부터 NAT 장비를 통해 NAT 영역을 통과할 때 해당 사설주소를 범용주소에 대응시키고 일정시간동안 대응관계를 유지시키는 방식으로서 일정시간이 지나면 대응관계는 삭제되고 NAT 외부로부터 호스트로는 접근이 불가하게 된다.
즉, 정적 NAT를 사용할 때는 1대1 대응관계가 지속적이기 때문에 NAT 매핑테 이블은 변경될 필요가 없다. 그러므로 테이블의 기본 소멸 타이머를 충분히 크게 설정하면 된다.
그러나, 본 발명에서 사용하고 있는 동적 NAT는 일정시간이 지나면 범용주소와 사설주소간의 대응관계가 삭제되기 때문에 대응관계가 변경된다. 이러한 동적 NAT의 대응관계 지속시간은 NAT 장비에서 설정되는데 이 시간이 짧을 수록 대응관계가 더 빨리 변경되므로 이 시간에 따라 NAT 매핑 테이블의 기본 소멸 타이머를 설정해 주는 것이 좋다. 그래야만 6 to 4 라우터에 저장된 테이블 정보를 NAT의 대응관계와 일치하도록 유지할 수 있기 때문이다.
이와 같이, 6 to 4 라우터(400)는 변환된 범용 IPv4 주소(Src:200.1.1.1)와 IPv6 헤더에서의 출발지 주소(Src:2002:0a01:0101::5)에서의 사설 IPv4 주소(0a01:0101) 및 소멸 타이머 시간(예를 들어 '300') 정보를 저장하기 위한 라우팅 테이블을 생성한 후, NAT 변환기(NAT Translator, 600)로부터 전송된 캡슐화된 ICMPv6 요청 메시지(53d)를 역캡슐화하여 역캡슐화된 메시지(54d)를 IPv6 호스트(200)로 전송하게 된다.
이에 따라, IPv6 호스트(200)는 상기 6 to 4 라우터(400)로부터 전송된 역캡슐화된 메시지(54d)를 전송받는 경우, 출발지 주소(Src:2002:c902:0202::5)와 목적지 주소(Dst:2002:0a01:0101::5)만을 바꾼 ICMPv6 응답 메시지(55d)를 6 to 4 라우터(400)로 전송하게 된다.
이에 따라, 6 to 4 라우터(400)는 IPv6 호스트(200)로부터 전송되는 ICMPv6 응답 메시지(55d)를 수신하여 캡슐화하게 되는데, 이때 내부의 라우팅 테이블상에 기저장되어 있는 NAT 변환정보를 이용하여 NAT 내부영역에 위치는 6 to 4 라우터(300)의 사설주소에 대응되는 범용주소를 찾아내어 응답 메시지 외부헤더의 목적지 주소로 사용하게 된다.
즉, 6 to 4 라우터(400)는 IPv6 헤더의 목적지 주소 "Dst:2002:0a01:0101::5" 에서 IPv4 주소에 해당하는 "0a01:0101"에 대한 범용 IPv4 주소를 알기 위하여 상기 생성된 라우팅 테이블로 질의(Query)를 하게 되며, 이러한 질의에 의해 상기 "0a01:0101"에 대한 사설 IPv4 주소 "10.1.1.1"에 매핑되는 범용주소 "200.1.1.1"를 응답(Reply)받게 된다.
이에 따라, 6 to 4 라우터(400)는 IPv6 헤더의 출발지 주소(Src:2002:c902:0202::5)에서 IPv4 주소에 해당하는 "c902:0202"를 추출하여 범용 IPv4 주소로 변환한 "201.2.2.2"를 IPv4 헤더의 출발지 주소(Src:201.2.2.2)로 하고, 상기 라우팅 테이블로부터 응답받은 범용 IPv4 주소인 "200.1.1.1"를 IPv4 헤더의 목적지 주소(Dst:200.1.1.1)로 정하게 된다.
이에 의해, 6 to 4 라우터(400)는 상기 라우팅 테이블 정보에 의한 IPv4 헤더가 부가된 ICMPv6 응답 메시지(56d)를 NAT 변환기(NAT Translator, 600)로 전송할 수 있게 된다.
이에 따라, NAT 변환기(NAT Translator, 600)는 6 to 4 라우터(400)로부터 전송된 ICMPv6 응답 메시지(56d)의 IPv4 헤더내의 범용 IPv4 목적지 주소(Dst:200.1.1.1)를 사설 IPv4 주소(Dst:10.1.1.1)로 변환하여 변환된 ICMPv6 응답 메시지(57d)를6 to 4 라우터(300)로 전송하게 된다.
이에 따라, 6 to 4 라우터(300)는 NAT 변환기(NAT Translator, 600)로부터 전송되는 캡슐화된 ICMPv6 응답 메시지(57d)를 역캡슐화하여 역캡슐화된 메시지(58d)를 IPv6 호스트(100)로 전송하게 된다.
도 7은 도 6의 NAT 외부영역에 위치한 6 to 4 라우터의 구성을 나타내는 도면이다.
도 7에 도시된 바와 같이, 본 발명의 6 to 4 라우터(400)는 패킷 송수신부(410)와, 제어부(420)와, 주소 비교부(430)와, 매핑정보 DB(440)와, 응답 메시지 생성부(450)로 구성되어진다.
패킷 송수신부(410)는 NAT 내부영역과 외부영역에 위치한 호스트와 데이터를 송수신한다.
제어부(420)는 NAT 변환기로부터 전송되는 ICMPv6 요청 메시지를 상기 패킷 송수신부(410)를 통해 수신하게 되면 수신된 ICMPv6 요청 메시지를 상기 주소 비교부(430)로 전달하게 된다.
주소 비교부(430)는 상기 제어부(420)로부터 전달된 ICMPv6 요청 메시지의 내부헤더(IPv6 헤더)의 주소정보와 외부헤더(IPv4 헤더)의 주소정보를 비교하게 된다. 즉, ICMPv6 요청 메시지의 내부헤더(IPv6 헤더)에 포함된 출발지 주소와 외부헤더(IPv4 헤더)의 출발지 주소를 비교하여 그 비교 결과를 상기 제어부(420)로 통보하게 된다.
이에 따라, 상기 제어부(420)는 주소 비교부(430)로부터 전달되는 주소 비교 결과를 확인하여 ICMPv6 요청 메시지의 내부헤더(IPv6 헤더)에 포함된 출발지 주소와 외부헤더(IPv4 헤더)의 출발지 주소가 동일한 경우에는 NAT 변환기를 통해 주소변환이 이루어지지 않은 것으로 판단하고, 만약 동일하지 않으면 NAT 변환기를 통해 외부헤더(IPv4 헤더)의 출발지 주소가 변환된 것으로 판단하게 된다.
특히, 상기 제어부(420)는 ICMPv6 요청 메시지의 내부헤더(IPv6 헤더)에 포함된 출발지 주소와 외부헤더(IPv4 헤더)의 출발지 주소가 동일하지 않은 경우, ICMPv6 요청 메시지의 내부헤더(IPv6 헤더)에 포함된 출발지 주소와 외부헤더(IPv4 헤더)의 출발지 주소를 상기 매핑정보 DB(440)에 저장하게 된다.
매핑정보 DB(440)는 상기 제어부(420)의 제어에 의해 상기 ICMPv6 요청 메시지의 외부헤더(IPv4 헤더)에 포함된 IPv4 출발지 범용주소와, 내부헤더(IPv6 헤더)의 IPv4 출발지 사설주소 및 소멸 타이머 시간 정보를 테이블 형식으로 저장하게 된다. 여기서, 소멸 타이머는 상술한 바와 같이 캡슐화를 위해 저장된 NAT 주소 매핑테이블 엔트리가 일정시간이 지나 삭제될 시간을 의미한다.
응답메시지 생성부(450)는 상기 제어부(420)의 제어에 의해 NAT를 통해 전송된 ICMPv6 요청 메시지에 대한 ICMPv6 응답 메시지를 생성하게 된다.
즉, 상기 제어부(420)는 NAT 외부영역에 위치한 IPv6 호스트로부터 전송되는 ICMPv6 응답 메시지를 수신하게 되면 기존 방식과 같이 해당 데이터의 IPv6 헤더내의 목적지 주소로부터 IPv4 주소를 추출하여 변환하는 것이 아니라, 상기 매핑정보 DB(440)로 NAT 내부영역에 위치하는 6 to 4 라우터의 사설주소에 대응되는 범용주소에 대해 질의(Query)를 하게 된다.
이에 따라, 제어부(420)는 매핑정보 DB(440)로부터 NAT 내부영역에 위치하는 6 to 4 라우터의 사설주소에 대응되는 범용주소를 답변(Reply)받게 되면, 상기 응답메시지 생성부(450)로 외부헤더(IPv4 헤더)가 부가된 ICMPv6 응답 메시지 생성 요청을 하게 된다.
이에 따라, 응답메시지 생성부(450)는 상기 제어부(420)의 요청에 따라 NAT 내부영역에 위치하는 6 to 4 라우터의 사설주소에 대응되는 범용주소를 외부헤더(IPv4 헤더)의 목적지 주소로 지정하여 NAT를 통해 전송된 ICMPv6 요청 메시지에 대한 ICMPv6 응답 메시지를 생성하게 된다.
이와 같이 생성된 ICMPv6 응답 메시지는 상기 패킷 송수신부(410)를 통해 NAT로 송신되어지고, NAT에서 상기 외부헤더(IPv4 헤더)의 목적지 주소가 사설 IPv4 주소로 변환되어 NAT 내부 영역의 6 to 4 라우터에서 역캡슐화되어 NAT 내부영역의 IPv4 호스트로 전송되는 것이다.
이상에서는 본 발명에서 특정의 바람직한 실시예에 대하여 도시하고 또한 설명하였다. 그러나, 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.
본 발명에 따르면, 송신측 6 to 4 호스트가 NAT 영역 내부에 있고 수신측 6 to 4 호스트가 NAT 영역 외부에 존재하는 경우에도 NAT 영역 외부의 6 to 4 라우터에 호스트간 통신이 가능한 매핑 테이블 정보를 저장함으로써, 6 to 4 터널을 통해 양방향 통신이 가능하게 된다.
또한, NAT 영역을 통해 6 to 4 방식을 사용함에 있어서 NAT 장비의 수정이 필요없으며, 추가적인 송신지연을 최소화할 수 있게 된다.

Claims (17)

  1. 서로 다른 주소 형식을 갖는 망들 간의 NAT(Network Address Translation)를 이용한 자동 터널링 방법에 있어서,
    상기 NAT 내부영역의 호스트로부터 수신된 요청 메시지의 외부헤더의 출발지 주소와 내부헤더의 출발지 주소의 동일 여부를 판단하는 과정과,
    상기 외부헤더의 출발지 주소와 내부헤더의 출발지 주소가 동일하지 않은 경우, 기 저장된 NAT 변환정보를 이용하여 상기 외부헤더의 출발지 주소를 범용주소로 변환하는 과정과,
    상기 변환된 외부헤더의 출발지 범용주소와 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소의 매핑 테이블 엔트리를 매핑 테이블에 저장한 후 해당 요청 메시지를 NAT 외부영역의 호스트로 전송하는 과정과,
    상기 NAT 외부영역의 호스트로부터 수신된 상기 요청 메시지에 대한 응답 메시지의 외부헤더의 목적지 주소를 상기 매핑 테이블에 저장된 범용주소로 할당한 후 해당 응답 메시지를 전송하는 과정을 포함하는 것을 특징으로 하는 NAT를 이용한 자동 터널링 방법.
  2. 제 1항에 있어서,
    상기 요청 메시지를 NAT 외부영역의 호스트로 전송하는 과정에서,
    상기 외부헤더의 출발지 범용주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 범용주소이고, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소는 상기 라우터의 IPv4 사설주소인 것을 특징으로 하는 NAT를 이용한 자동 터널링 방법.
  3. 제 2항에 있어서,
    상기 NAT가 응답 메시지를 수신하는 경우, 메시지 외부헤더의 목적지 주소를 사설 주소로 변환하여 상기 NAT 내부영역에 위치한 라우터로 전송하는 과정을 더 포함하는 것을 특징으로 하는 NAT를 이용한 자동 터널링 방법.
  4. 제 1항에 있어서,
    상기 요청 메시지를 NAT 외부영역의 호스트로 전송하는 과정에서,
    상기 매핑 테이블은, 상기 외부헤더의 출발지 범용주소를 저장하기 위한 필드와, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하기 위한 필드와, 상기 저장된 매핑 테이블 엔트리가 소정 시간 경과 후 삭제되는 시간 정보를 저장하기 위한 소멸 타이머 필드로 이루어지는 것을 특징으로 하는 NAT를 이용한 자동 터널링 방법.
  5. 제 4항에 있어서,
    상기 매핑 테이블 엔트리 저장시 상기 소멸 타이머 필드에 저장되는 시간 정보는 NAT 장비에 설정된 타이머 값에 따라 설정되는 것을 특징으로 하는 NAT를 이용한 자동 터널링 방법.
  6. 제 5항에 있어서,
    상기 저장된 매핑 테이블 엔트리는 상기 소멸 타이머 필드에 저장된 시간 정보 값이 '0'이 되면 자동으로 삭제되는 것을 특징으로 하는 NAT를 이용한 자동 터널링 방법.
  7. 서로 다른 주소 형식을 갖는 망들 간의 NAT(Network Address Translation)를 이용한 자동 터널링 시스템에 있어서,
    상기 NAT 내부영역의 호스트로부터 수신된 요청 메시지의 외부헤더의 출발지 주소와 내부헤더의 출발지 주소가 동일하지 않은 경우, 기 저장된 NAT 변환정보를 이용하여 변환된 상기 외부헤더의 출발지 범용주소와 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소의 매핑 테이블 엔트리를 매핑 테이블에 저장한 후, 상기 NAT 외부영역의 호스트로부터 수신된 상기 요청 메시지에 대한 응답 메시지의 외부헤더의 목적지 주소를 상기 매핑 테이블에 저장된 범용주소로 할당한 후 해당 응답 메시지를 전송하는 NAT 외부영역의 라우터를 포함하는 것을 특징으로 하는 NAT를 이용한 자동 터널링 시스템.
  8. 제 7항에 있어서,
    상기 라우터는,
    상기 NAT 내부영역과 외부영역에 위치한 호스트와 메시지를 송수신하기 위한 패킷 송수신부와,
    상기 NAT로부터 전송되는 요청 메시지를 상기 패킷 송수신부를 통해 수신하여 수신된 요청 메시지의 외부헤더에 포함된 출발지 주소와 내부헤더의 출발지 주소를 비교하는 주소 비교부와,
    상기 주소 비교부로부터 비교된 주소 비교 결과에 따라 NAT를 통한 상기 요청 메시지의 주소 변환 여부를 판단하는 제어부와,
    상기 제어부의 판단 결과 상기 NAT를 통한 상기 요청 메시지의 주소 변환이 있는 경우, 상게 제어부의 제어에 따라 상기 요청 메시지의 외부헤더에 포함된 출발지 범용주소와 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하는 매핑 테이블 DB와,
    상기 제어부의 제어에 의해 상기 요청 메시지에 대한 응답 메시지의 외부헤더의 목적지 주소를 상기 매핑 테이블 DB에 저장된 사설주소에 매핑되는 범용주소 로 할당하여 NAT로 전송할 응답 메시지를 생성하는 응답 메시지 생성부를 포함하는 것을 특징으로 하는 NAT를 이용한 자동 터널링 시스템.
  9. 제 8항에 있어서,
    상기 매핑 테이블 DB에 저장되는 외부헤더의 출발지 범용주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 범용주소이고, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 사설주소인 것을 특징으로 하는 NAT를 이용한 자동 터널링 시스템.
  10. 제 7항에 있어서,
    상기 매핑 테이블 DB에 저장되는 매핑 테이블은 상기 외부헤더의 출발지 범용주소를 저장하기 위한 필드와, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하기 위한 필드와, 상기 저장된 매핑 테이블 엔트리가 소정 시간 경과 후 삭제되는 시간 정보를 저장하기 위한 소멸 타이머 필드로 이루어지는 것을 특징으로 하는 NAT를 이용한 자동 터널링 시스템.
  11. 제 10항에 있어서,
    상기 매핑 테이블 엔트리 저장시 상기 소멸 타이머 필드에 저장되는 시간 정보는 NAT 장비에 설정된 타이머 값에 따라 설정되는 것을 특징으로 하는 NAT를 이용한 자동 터널링 시스템.
  12. 제 11항에 있어서,
    상기 저장된 매핑 테이블 엔트리는 상기 소멸 타이머 필드에 저장된 시간 정보 값이 '0'이 되면 자동으로 삭제되는 것을 특징으로 하는 NAT를 이용한 자동 터널링 시스템.
  13. 서로 다른 주소 형식을 갖는 망들 간의 NAT(Network Address Translation)를 이용한 라우팅 장치에 있어서,
    상기 NAT 내부영역과 외부영역에 위치한 호스트와 메시지를 송수신하기 위한 패킷 송수신부와,
    상기 NAT로부터 전송되는 요청 메시지를 상기 패킷 송수신부를 통해 수신하여 수신된 요청 메시지의 외부헤더에 포함된 출발지 주소와 내부헤더의 출발지 주소를 비교하는 주소 비교부와,
    상기 주소 비교부로부터 비교된 주소 비교 결과에 따라 NAT를 통한 상기 요청 메시지의 주소 변환 여부를 판단하는 제어부와,
    상기 제어부의 판단 결과 상기 NAT를 통한 상기 요청 메시지의 주소 변환이 있는 경우, 상게 제어부의 제어에 따라 상기 요청 메시지의 외부헤더에 포함된 출발지 범용주소와 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하는 매핑 테이블 DB와,
    상기 제어부의 제어에 의해 상기 요청 메시지에 대한 응답 메시지의 외부헤더의 목적지 주소를 상기 매핑 테이블 DB에 저장된 사설주소에 매핑되는 범용주소로 할당하여 NAT로 전송할 응답 메시지를 생성하는 응답 메시지 생성부를 포함하는 것을 특징으로 하는 라우팅 장치.
  14. 제 13항에 있어서,
    상기 매핑 테이블 DB에 저장되는 외부헤더의 출발지 범용주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 범용주소이고, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소는 상기 NAT 내부영역에 위치한 라우터의 IPv4 사설주소인 것을 특징으로 하는 라우팅 장치.
  15. 제 13항에 있어서,
    상기 매핑 테이블 DB에 저장되는 매핑 테이블은 상기 외부헤더의 출발지 범용주소를 저장하기 위한 필드와, 상기 내부헤더의 출발지 주소로부터 추출 변환된 사설주소를 저장하기 위한 필드와, 상기 저장된 매핑 테이블 엔트리가 소정 시간 경과 후 삭제되는 시간 정보를 저장하기 위한 소멸 타이머 필드로 이루어지는 것을 특징으로 하는 라우팅 장치.
  16. 제 14항에 있어서,
    상기 매핑 테이블 엔트리 저장시 상기 소멸 타이머 필드에 저장되는 시간 정보는 NAT 장비에 설정된 타이머 값에 따라 설정되는 것을 특징으로 하는 라우팅 장치.
  17. 제 16항에 있어서,
    상기 저장된 매핑 테이블 엔트리는 상기 소멸 타이머 필드에 저장된 시간 정보 값이 '0'이 되면 자동으로 삭제되는 것을 특징으로 하는 라우팅 장치.
KR20060091373A 2006-09-20 2006-09-20 Nat를 이용한 자동 터널링 방법 및 그 시스템 KR100757881B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR20060091373A KR100757881B1 (ko) 2006-09-20 2006-09-20 Nat를 이용한 자동 터널링 방법 및 그 시스템
US11/878,917 US20080071927A1 (en) 2006-09-20 2007-07-27 Method and system for automatic tunneling using network address translation
JP2007219451A JP2008079304A (ja) 2006-09-20 2007-08-27 Natを使用した自動トンネリング方法及びそのシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20060091373A KR100757881B1 (ko) 2006-09-20 2006-09-20 Nat를 이용한 자동 터널링 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR100757881B1 true KR100757881B1 (ko) 2007-09-11

Family

ID=38737466

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20060091373A KR100757881B1 (ko) 2006-09-20 2006-09-20 Nat를 이용한 자동 터널링 방법 및 그 시스템

Country Status (3)

Country Link
US (1) US20080071927A1 (ko)
JP (1) JP2008079304A (ko)
KR (1) KR100757881B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101435931B1 (ko) * 2013-01-17 2014-09-01 주식회사 시큐아이 통신 방법 및 장치

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603474B2 (en) * 2005-10-05 2009-10-13 Microsoft Corporation Efficient endpoint matching using a header-to-bit conversion table
KR100901790B1 (ko) * 2006-12-04 2009-06-11 한국전자통신연구원 IPv4 네트워크 기반 IPv6 서비스 제공시스템에서의 제어 터널 및 다이렉트 터널 설정 방법
US8782746B2 (en) * 2008-10-17 2014-07-15 Comcast Cable Communications, Llc System and method for supporting multiple identities for a secure identity device
KR101129315B1 (ko) * 2008-12-18 2012-03-26 한국전자통신연구원 라우팅 확장성과 이동성을 지원하는 터널 포인트의 동작 방법
US9392080B2 (en) 2009-12-18 2016-07-12 Microsoft Technology Licensing, Llc IPv4/IPv6 bridge
WO2012111222A1 (ja) * 2011-02-17 2012-08-23 日本電気株式会社 ネットワークシステム、及びネットワークフロー追跡方法
CN102075445B (zh) * 2011-02-28 2013-12-25 杭州华三通信技术有限公司 负载均衡方法及装置
JP5817299B2 (ja) * 2011-08-01 2015-11-18 富士通株式会社 アドレス変換装置、通信システム及びアドレス変換方法
US9264295B1 (en) * 2012-03-02 2016-02-16 Big Switch Networks, Inc. Systems and methods for forwarding broadcast network packets with a controller
JP5928087B2 (ja) * 2012-03-29 2016-06-01 富士通株式会社 スイッチ、情報処理装置および通信制御方法
EP3132589A4 (en) * 2014-04-15 2017-11-29 Level 3 Communications, LLC Geolocation via internet protocol
US20160072764A1 (en) * 2014-09-10 2016-03-10 T-Mobile Usa, Inc. Dynamic double network address translator
US10021066B2 (en) * 2015-05-18 2018-07-10 Morgan Stanley Clustered server sharing
US11019182B2 (en) * 2016-02-18 2021-05-25 Renesas Electronics Corporation Message handler
US11570207B2 (en) * 2019-12-31 2023-01-31 Juniper Networks, Inc. Dynamic security actions for network tunnels against spoofing
CN116455863A (zh) * 2022-01-05 2023-07-18 西安西电捷通无线网络通信股份有限公司 一种网络节点间nat探测方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062388A1 (en) * 2000-09-12 2002-05-23 Ogier Richard G. System and method for disseminating topology and link-state information to routing nodes in a mobile ad hoc network
KR20060102076A (ko) * 2005-03-22 2006-09-27 삼성전자주식회사 IPv4망과 IPv6망간의 ISATAP 터널링 시스템 및그 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133400B1 (en) * 1998-08-07 2006-11-07 Intel Corporation System and method for filtering data
CN1140090C (zh) * 1999-09-24 2004-02-25 英国电讯有限公司 分组网络中的接口及其操作方法
US6892245B1 (en) * 2000-09-22 2005-05-10 Nortel Networks Limited Management information base for a multi-domain network address translator
EP1366613B1 (en) * 2001-03-08 2008-09-24 BRITISH TELECOMMUNICATIONS public limited company Address translator and address translation method
US7068655B2 (en) * 2001-06-14 2006-06-27 Nortel Networks Limited Network address and/or port translation
US7231452B2 (en) * 2002-11-29 2007-06-12 National University Of Singapore Method and apparatus for communicating on a communication network
EP1579656A1 (en) * 2002-12-20 2005-09-28 Koninklijke Philips Electronics N.V. System and method for establishing communication between a client and a server in a heterogenous ip network
US7467214B2 (en) * 2003-06-20 2008-12-16 Motorola, Inc. Invoking protocol translation in a multicast network
US20050066035A1 (en) * 2003-09-19 2005-03-24 Williams Aidan Michael Method and apparatus for connecting privately addressed networks
ATE353522T1 (de) * 2003-12-23 2007-02-15 Cit Alcatel Verfahren zur ausführung einer symmetrischen adressenumsetzung

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062388A1 (en) * 2000-09-12 2002-05-23 Ogier Richard G. System and method for disseminating topology and link-state information to routing nodes in a mobile ad hoc network
KR20060102076A (ko) * 2005-03-22 2006-09-27 삼성전자주식회사 IPv4망과 IPv6망간의 ISATAP 터널링 시스템 및그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101435931B1 (ko) * 2013-01-17 2014-09-01 주식회사 시큐아이 통신 방법 및 장치

Also Published As

Publication number Publication date
JP2008079304A (ja) 2008-04-03
US20080071927A1 (en) 2008-03-20

Similar Documents

Publication Publication Date Title
KR100757881B1 (ko) Nat를 이용한 자동 터널링 방법 및 그 시스템
KR100694209B1 (ko) IPv4망과 IPv6망간의 ISATAP 터널링 시스템 및그 방법
US7639686B2 (en) Access network clusterhead for providing local mobility management of a roaming IPv4 node
KR100782266B1 (ko) 패킷 네트워크 인터페이스와 그 동작방법
US7443880B2 (en) Arrangement for reaching IPv4 public network nodes by a node in a IPv4 private network via an IPv6 access network
KR100803273B1 (ko) 패킷 터널링하는 isatap 라우터 및 그 방법
US7411967B2 (en) Private network gateways interconnecting private networks via an access network
US7657642B2 (en) IP network node and middleware for establishing connectivity to both the IPv4 and IPv6 networks
US6038233A (en) Translator for IP networks, network system using the translator, and IP network coupling method therefor
JP4118909B2 (ja) デュアルスタック変換メカニズムを用いたIPv4−IPv6変換システム及びその方法
US20130010614A1 (en) METHOD AND APPARATUS FOR PROCESSING PACKETS IN IPv6 NETWORK
US20060146870A1 (en) Transparent communication with IPv4 private address spaces using IPv6
WO2013139337A2 (en) SYSTEM AND METHOD FOR DATA COMMUNICATION BETWEEN A FIRST INTERNET PROTOCOL VERSION (IPv4) AND A SECOND INTERNET PROTOCOL VERSION (IPv6)
KR100692116B1 (ko) 중계장치, 단말장치, 통신 시스템 및 통신 제어 방법
US20060109807A1 (en) Multicasting using tunneling method
EP3395049B1 (en) Router and method for connecting an ipv4 network and an ipv6 network
JP2008172816A (ja) アドレス変換方法
US7693091B2 (en) Teredo connectivity between clients behind symmetric NATs
KR100672050B1 (ko) 분산구조의 디엔에스 프록시 서버 기능이 내장된아이피브이4/아이피브이6 변환장치 및 이 장치를 이용한변환방법
JP2008527829A (ja) 擬似マルチホーム化されたホストへの効率的なアドレススペース拡張
KR100693050B1 (ko) 네트워크 프로세서를 이용한 헤더 변환 시스템 및 그 방법
KR100705570B1 (ko) IPv4망과 IPv6망간의 자동 설정터널링 시스템 및 그방법
JP2008092607A (ja) トランスレータ

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120830

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140828

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150828

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160830

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170830

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee