상기한 목적을 달성하기 위한 본 발명에 따른 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 호스트로 전송되는 것이다.
이상에서는 본 발명에서 특정의 바람직한 실시예에 대하여 도시하고 또한 설명하였다. 그러나, 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.