전술한, 그리고 추가적인 본 발명의 양상들은 후술하는 실시예를 통해 더욱 명확해질 것이다. 이하에서는 이 같은 본 발명의 양상들을 첨부된 도면을 참조하여 기술되는 바람직한 실시예들을 통하여 당업자가 용이하게 이해하고 재현할 수 있을 정도로 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 정적 경로 설정 방법의 일 실시예를 도시한 흐름도이다. 도시된 바와 같이 일 실시예에 따른 정적 경로 설정 방법은 넥스트-홉(next hop) 주소 그룹을 표현하는 가상 명칭(alias name)이 포함된 정적 경로 설정 명령을 수신하는 단계(160)와, 가상명칭 매핑 테이블로부터 상기 가상 명칭에 대응하는 주소 그룹 정보를 획득하는 단계(170)와, 지정된 패킷 그룹을 상기 획득된 주소 그룹으로 분배하도록 라우팅 테이블을 갱신하는 단계(180)와, 갱신된 라우팅 테이블에 따라 수신되는 패킷을 분배하는 단계(190)를 포함한다.
관리자는 컴퓨터 단말기를 통해 라우터 장비를 제어한다. 컴퓨터에서 전송된 제어 명령어는 해당 라우터 장비에서 인식되고 해석되며 실행된다. 정적 경로 설정 명령은 예를 들면 아래와 같은 형식이 될 수 있다.
ip route a.x.x.x/24 Alias_1 (x는 1~256 중 임의의 자연수를 의미)
이 명령은 a.x.x.x 그룹의 IP 패킷 그룹들을 Alias_1 이라는 가상명칭을 가진 넥스트-홉 주소 그룹으로 라우팅하도록 설정하라는 명령어이다. 본 발명에 따른 라우터는 관리자 단말로부터 이 같은 정적 경로 설정 명령을 수신한다(160). 이후에 라우터는 가상명칭 매핑 테이블에서 해당 가상명칭에 대응하는 넥스트-홉(next hop) 주소 그룹 정보를 획득한다.
도 3은 각각 10.1.1.1, 11.1.1.1, 12.1.1.1 의 주소를 가진 3개의 라우터(210,220,230)의 가상명칭 매핑 테이블들로부터 새로운 라우터(240)의 가상명칭 매핑 테이블이 작성되는 과정을 설명하는 도면이다. 도면에서 라우터(210)의 가상명칭 매핑 테이블(215)에는 다음과 같이 매핑이 설정되어 있다.
Alias_1 : 10.1.1.1, 11.1.1.1
Alias_2 : 10.1.1.1, 12.1.1.1
Alias_3 : 10.1.1.1
한편, 라우터(230)의 가상명칭 매핑 테이블(235)에는 다음과 같이 매핑이 설정되어 있다.
Alias_1 : 12.1.1.1
Alias_4 : 11.1.1.1, 12.1.1.1
이 상태에서 라우터들(210, 220, 230)에게 아래와 같은 정적 경로 설정 명령이 전달된다고 가정한다.
ip route 125.128.x.x/24 Alias_1
위 명령은 125.128.x.x 의 목적지 주소를 가진 패킷들을 Alias_1 이라는 가상명칭을 가진 넥스트-홉 주소 그룹으로 라우팅하도록 라우팅 테이블을 설정하라는 명령어이다. 이에 따라 라우터(210)에서 125.128.x.x 의 목적지 주소를 가진 패킷들은 가상명칭 매핑 테이블(215)에서 정의된 바에 따라 10.1.1.1의 주소를 가진 라우터, 즉 그 자신(내부 포트)이나 11.1.1.1의 주소를 가진 라우터, 즉 라우터(220)로 분배된다. 또 라우터(230)에서 125.128.x.x 의 목적지 주소를 가진 패킷들은 가상명칭 매핑 테이블(235)에서 정의된 바에 따라 12.1.1.1의 주소를 가진 라우터, 즉 그 자신(내부 포트)에게로 분배된다.
이상과 같은 본 실시예에서 알 수 있는 바와 같이, 본 발명의 또다른 특징적인 양상에 따라 본 발명에 따른 각 분배장치의 라우팅 테이블마다 동일한 가상 명칭에 매핑되는 넥스트-홉 그룹이 전체 망에서 설정되는 패킷 분배 경로에 따라서 제각각 정의되는 것을 특징으로 한다. 즉, 라우터(210)에 있어서 가상명칭 Alias_1 은 10.1.1.1, 11.1.1.1 의 넥스트-홉 주소 그룹을 의미하지만, 라우터(230)에 있어서 가상명칭 Alias_1 은 12.1.1.1의 넥스트-홉 주소를 의미한다. 이는 다음과 같이 해석될 수 있다. 즉, 망을 구성하는 모든 라우터가 특정한 목적지 주소를 가진 패킷들에 대해 Alias_1 이라는 가상명칭을 가진 넥스트-홉 주소 그룹으로 분배하도록 명령을 내릴 경우, 이들 목적지 주소를 가진 패킷들은 라우터(210)에서 일부는 내부 포트로 분배가 되고 일부는 라우터(220)로 분배가 되며, 라우터(230)로 분배가 된 패킷들은 모두 내부 포트로 분배가 된다. 즉, 가상명칭에 의해 어떤 목적지 주소를 가진 패킷들의 망에서의 전체적인 분배를 설계할 수 있다.
이해를 돕기 위해 또 하나의 예를 든다면, 라우터들(210, 220, 230)에게 아래와 같은 정적 경로 설정 명령이 전달된다고 가정한다.
ip route 123.123.x.x/24 Alias_2
위 명령은 123.123.x.x 의 목적지 주소를 가진 패킷들을 Alias_2 라는 가상명칭을 가진 넥스트-홉 주소 그룹으로 라우팅하도록 설정하라는 명령어이다. 이에 따라 라우터(210)에서 123.123.x.x 의 목적지 주소를 가진 패킷들은 가상명칭 매핑 테이블(215)에서 정의된 바에 따라 10.1.1.1의 주소를 가진 라우터, 즉 그 자신(내부 포트)이나 12.1.1.1의 주소를 가진 라우터, 즉 라우터(230)로 분배된다.
쉽게 이해할 수 있는 바와 같이 가상 명칭의 매핑을 각각의 라우터에 대해 적절히 설정함으로써 임의의 목적지를 가진 패킷들의 분배를 효과적으로 간단하게 설정할 수 있다. 망에서의 패킷의 흐름은 대개 상황에 따라 몇 가지의 분배구조, 즉 토폴로지를 가지므로, 본 발명에서 제시하는 특징적인 양상에 따라 몇 가지 구조의 분배방식에 대해 가상명칭을 설정하면, 상황의 변화에 대처하여 간편하고 즉각적으로 분배방식을 변경하는 것이 가능하다.
도 1에 도시된 바와 같이, 본 발명의 추가적인 양상에 따라 본 발명에 따른 정적 경로 설정 방법은 넥스트-홉(next hop) 주소 그룹에 대한 가상 명칭(alias name)의 매핑 정의 요구 명령을 수신하는 단계(110)와, 획득된 매핑 정보에의해 넥스트-홉(next hop) 주소 그룹 별로 가상 명칭(alias name)을 정의한 가상명칭 매핑 테이블을 갱신하는 단계(130, 140)를 더 포함할 수 있다.
즉, 가상명칭에 대한 매핑 정의는 매핑 정의 요구 명령에 의해 개시된다. 라우터는 매핑 정의 요구 명령을 수신하면(110), 명령의 종류를 판단한다(120). 본 발명의 특징적인 양상 중 하나에 따라, 매핑 정의 요구 명령에는 특정한 라우터의 매핑 테이블을 직접적으로 정의하는 타입 1의 명령이 있을 수 있다. 본 발명의 특징적인 양상 중 또다른 하나에 따라, 또다른 매핑 정의 요구 명령으로, 특정한 라우터로 하여금 다른 특정한 라우터들의 가상명칭 매핑 테이블들로부터 자신의 가상명칭 매핑 테이블을 생성하도록 하는 타입 2의 명령이 있을 수 있다.
즉, 본 발명의 특징적인 양상 중의 하나에 의하여, 가상명칭 매핑 테이블은 매핑 정의 요구 명령에 포함된 가상 명칭 및 넥스트-홉(next hop) 주소 그룹 정보에 의해 갱신될 수 있다(단계 130). 예를 들면,
alias_def star (10.1.1.1), (10.1.1.1, 11.1.1.1)
과 같은 명령이라면, 이 명령은 star 라는 가상명칭에 대해 10.1.1.1 주소를 가진 라우터의 가상명칭 매핑 테이블에서는 넥스트-홉(next hop) 주소 그룹 10.1.1.1, 11.1.1.1 로 정의하라는 타입 1의 명령으로 이해될 수 있다. 이 명령을 수신하면, 10.1.1.1을 가진 라우터는 자신의 가상명칭 매핑 테이블에 'star' 라는 가상명칭을 (10.1.1.1, 11.1.1.1)의 넥스트-홉(next hop) 주소 그룹을 의미하는 것으로 새롭게 정의한다(단계 130).
본 발명의 또다른 특징적인 양상에 따라, 가상명칭 매핑 테이블은 타 라우터들로부터 수신한 해당 가상 명칭에 대한 넥스트-홉(next hop) 주소 그룹 정보에 의해 갱신될 수 있다(단계 140).
도 2는 본 발명의 일 실시예에 따라 타 라우터의 정보들로부터 특정한 라우터의 가상명칭을 정의하는 방법을 개략적으로 도시한 흐름도이다. 도 2와 도 3을 참조하여 본 발명의 특징적인 양상 중 또다른 하나에 따른 정적 정보 설정 방법을 설명한다.
도시된 바와 같이 정적 정보 설정 방법은 해당 가상명칭에 대해 외부갱신가능상태로 설정하는 단계(141)와, 해당 가상명칭에 대한 매핑 정보 요구를 방송(broadcast)하는 단계(142)와, 적어도 하나의 응답하는 라우터로부터 해당 가상명칭에 대한 넥스트-홉 주소 그룹 정보를 수신하여 그에 의해 매핑될 넥스트-홉 주소 그룹을 정의하는 단계(143,144)와, 가상명칭 매핑 테이블의 해당 가상명칭을 정의된 넥스트-홉 주소 그룹 정보에 의해 갱신하는 단계(145)를 포함한다.
다시 도 3을 참조하여 구체적으로 설명하면, 도면에서,
import = 13.1.1.1, Alias_1|Alias_2|Alias_3|Alias_4
과 같은 명령은 13.1.1.1의 주소를 가진 라우터(245)로 하여금, 타 라우터들로부터 Alias_1, Alias_2, Alias_3, Alias_4의 가상명칭을 갱신하라는 명령이다. 라우 터(245)는 이 명령을 수신하면, 자신의 가상명칭 매핑 테이블에서 해당 가상명칭에 대한 상태 플래그들을 외부 갱신 가능상태, 즉 'import' 상태로 설정한다(단계 141).
또 다른 예로, 도 3에서
export=12.1.1.1, Alias_1|Alias_4
의 명령은 12.1.1.1의 주소를 가진 라우터(230)로 하여금, 타 라우터로 자신의 Alias_1, Alias_4에 관한 정보를 전송해주라는 명령이다. 라우터(230)는 이 명령을 수신하면, 자신의 가상명칭 매핑 테이블에서 해당 가상명칭에 대한 상태 플래그들을 외부전송 가능상태, 즉 'export' 상태로 설정한다(단계 151).
예를 들면 이 특정한 상태 플래그는 가상명칭마다 정의되는 아래의 2 비트 값을 가진 플래그이다.
값 상태 의미
00 import 외부로부터 갱신 가능
01 export 외부로 전송 가능
10 nop 동작 없음
유사하게, 라우터(210)에는
export=10.1.1.1, Alias_1|Alias_2|Alias_3
의 명령이 수신되며, 이에 따라 라우터(210)는 가상명칭 매핑 테이블에서 해당 가상명칭에 대한 상태 플래그들을 'export' 상태, 즉 '01' 값으로 설정한다.
import 상태로 설정된 라우터(240)는 'import' 상태로 설정된 가상명칭들에 대해 가상명칭 해결요구(name resolution request)를 망 전체에 발한다. 이 요구 패킷은 방송 방식(broadcast)으로 망 전체에 전파된다. 패킷이 작은 싸이즈의 제어 패킷이며, 빈발하는 상황이 아니기 때문에 이는 망의 성능에 별다른 영향을 미치지 않는다(단계 142).
본 발명의 특징적인 양상에 따라, 외부로부터의 정보 요구, 즉 가상명칭 해결요구(name resolution request)에 응답하여, 자신의 데이터를 전송하는 방법은 특정한 가상명칭에 대해 외부 라우터로부터 정보 요구를 수신하는 단계(단계 152)와, 지정된 가상명칭에 대해 외부전송가능 상태로 설정되어 있는지 여부를 체크하는 단계(단계 153)와, 외부전송가능 상태인 경우 해당 정보를 요청한 라우터에게 유니캐스트(unicast)에 의해 전송하는 단계(155)를 포함한다.
보다 구체적으로, 라우터(210)는 이 가상명칭 해결요구를 수신하면(단계 152), 자신의 매핑 테이블에서 요구된 가상명칭에 대해 설정된 상태 플래그를 체크한다(단계 153). Alias_1 변수의 경우 'export' 상태이므로, 자신의 넥스트-홉 주소 그룹 정보, 즉 10.1.1.1, 11.1.1.1을 요구한 라우터(240)로 유니캐스트(unicast) 방식에 의해 전송한다(155). 요구된 모든 가상명칭에 대해 이 과정이 반복된다. 즉, Alias_2 변수의 경우 'export' 상태이므로, 자신의 넥스트-홉 주소 그룹 정보, 즉 10.1.1.1, 12.1.1.1을 요구한 라우터(240)로 유니캐스트(unicast) 방식에 의해 전송한다. 또 Alias_3 변수의 경우 'export' 상태이므로, 자신의 넥스트-홉 주소 그룹 정보, 즉 10.1.1.1 을 요구한 라우터(240)로 유니캐스트(unicast) 방식에 의해 전송한다. 또 Alias_4 변수의 경우 'nop' 상태이므로(단계 153), 자신의 넥스트-홉 주소 그룹 정보 대신에 단순히 명령을 수신하였다는 ACK 만을 요구한 라우터(240)로 유니캐스트(unicast) 방식에 의해 전송한다(단계 156).
유사한 방식으로, 라우터(230)의 경우 Alias_1, Alias_4 의 넥스트-홉 주소 그룹 정보들이 라우터(240)로 전송된다. 라우터(220)의 경우 export 명령이나 import 명령이 처리되지 않아 상태 플래그는 'nop' 상태로 남아 있어 가상명칭 해결 요구를 수신하여도 아무 동작도 하지 않는다.
바람직한 일 실시예에 있어서, 가상명칭에 대해 매핑될 넥스트-홉 주소 그룹은 응답하는 복수의 라우터 각각이 회신한 해당 가상명칭에 매핑된 넥스트-홉 주소 그룹들을 취합하여 정의된다(단계 144). 즉, 응답을 수신한 라우터(240)는(단계 143), 수신한 정보를 취합한다(단계 144). 보다 구체적으로, Alias_1 의 경우 라우터(210)에서 10.1.1.1, 11.1.1.1의 정보가, 라우터(230)에서 12.1.1.1 정보가 수신되므로, 라우터(240)의 매핑 테이블의 Alias_1 가상명칭에 대한 넥스트-홉 주소 그룹은 도 3에 도시된 바와 같이 10.1.1.1, 11.1.1.1, 12.1.1.1 의 데이터 값을 가진다. 유사하게, 도 3을 통해 Alias_2, Alias_3, Alias_4의 가상명칭들이 어떻게 타 라우터들로부터 정보를 취합하여 새롭게 정의될 수 있는가를 이해할 수 있다.
예를 들어 도 3에서 도면부호 (250)에 도시된 바와 같은 정적 경로 설정 명령이 전파되었다고 한다. a.x.x.x 패킷 그룹들에 대해 Alias_1의 가상명칭에 의해 경로가 설정되었으므로, 라우터(240)가 타 라우터들로부터 자신의 매핑 테이블을 갱신하기 전에는 a.x.x.x 패킷 그룹들은 라우터(210)에서 그 자신의 내부 포트 혹은 라우터(220)으로, 라우터(230)에서는 그 자신의 내부 포트로 전송되었다. 그런데, 라우터(240)가 타 라우터들로부터 자신의 매핑 테이블을 갱신한 후에는 라우터(240)로 수신된 a.x.x.x 패킷 그룹들은 라우터(210, 220, 230)로 분배된다.
본 발명의 또다른 특징적인 양상 중의 하나에 의해, 가상명칭 매핑 테이블에는 각각의 가상명칭마다 갱신 정보를 포함한다. 라우터는 자신의 가상명칭에 대한 해결 요구에 응답하는 라우터의 해당 가상명칭에 대한 갱신 정보를 체크하여 그 결과에 따라 현재 응답한 라우터의 가상명칭에 대한 넥스트-홉 주소 그룹의 정의 정보를 활용할 것인지 여부를 판단한다(단계 154). 활용할 것으로 판단된 경우 상기 응답한 라우터로부터 해당 가상명칭에 대한 넥스트-홉 주소 그룹 정보를 수신하여 그에 의해 매핑될 넥스트-홉 주소 그룹을 정의하게 된다(단계 155)
이 같은 갱신 정보는 예를 들면, 매핑 테이블의 각각의 가상명칭마다, 그 넥스트- 홉 주소 그룹 데이터에 대해 해싱 함수를 적용하여 산출한 값이 될 수 있다. 간단한 예로는 그 데이터의 CRC 코드 값이 될 수도 있다. 만약, 응답한 라우터의 해당 가상명칭의 넥스트-홉 주소 그룹 데이터에 대한 해싱 값과, 자신의 해당 가상명칭의 넥스트-홉 주소 그룹 데이터에 대한 해싱 값이 일치한다면 서로 동일한 정보를 갖고 있는 것이므로 상호간에 데이터를 전송할 필요가 없다. 이 같은 해싱값은 가상명칭 해결요구에 포함되어 전송될 수 있고, 해싱 값이 다른 라우터들만이 그 요구에 응답하여 자신의 데이터를 전송하도록 처리할 수도 있다. 본 발명은 이 같은 예를 포괄한다.
도 4는 본 발명의 일 실시예에 따른 패킷 분배 장치, 예를 들면 라우터의 전체적인 구성 중 본 발명과 관련된 부분을 개략적으로 도시한 블럭도이다. 도시된 바와 같이, 정적 경로 설정에 의해 패킷을 라우팅하는 패킷 분배 장치는 목적지 주소의 그룹에 따라 라우팅될 경로를 정의한 라우팅 테이블(350)과, 넥스트-홉(next hop) 주소 그룹들과 그 각각에 대응되는 가상 명칭(alias name)들이 저장된 가상명칭 매핑 테이블(330)이 저장되는 메모리(300)와, 정적 경로 설정 명령을 수신하여, 상기 가상명칭 매핑 테이블로부터 명령에 포함된 가상 명칭에 대응하는 주소 그룹 정보를 획득하여 상기 라우팅 테이블을 갱신하는 테이블 갱신부(310)와, 수신되는 패킷들의 목적지 주소에 따라 상기 라우팅 테이블을 참조하여 분배하는 라우팅처리부(370)를 포함한다.
라우팅 처리부(370)는 공지된 구성으로, 라우팅 테이블(350)에 저장된 정적 인 라우팅 정보에 따라 수신되는 패킷들을 분배한다. 라우팅 테이블(350)도 공지된 구성이다. 본 발명의 특징적인 구성으로, 가상명칭 매핑 테이블(330)이 정의된다. 도 3에 매핑 테이블들(215,235,245)이 예시되어 있다. 전술한 바와 같이 매핑 테이블에는 각각의 가상명칭에 대해 그 가상명칭의 갱신 상태를 나타내는 갱신 정보를 포함한다. 추가적으로, 각각의 가상명칭의 갱신 상태, 즉 'import', 'export', 'nop' 등의 예시된 상태를 나타내는 플래그도 추가적으로 포함하고 있다. 이의 동작에 대해서는 앞서 상세히 설명한 바 있다.
전술한 바와 같이, 상기 가상명칭 매핑 테이블의 가상명칭과 매핑되는 넥스트-홉 주소 그룹들은 패킷 분배 경로에 따라 각 분배 장치별로 다르게 설정된다.
본 발명의 또다른 특징적인 양상에 따라, 패킷 분배 장치는 넥스트-홉(next hop) 주소 그룹에 대한 가상 명칭(alias name)의 매핑 정의 요구 명령을 수신하여, 획득된 매핑 정보에의해 상기 가상명칭 매핑 테이블을 갱신하는 매핑 갱신부(320)를 더 포함한다. 매핑 갱신부의 동작에 대해서는 도 1,2,3을 통해 상세히 설명한 바 있다.