본문

MIPv6의 핸드오버 절차 (1/3)

MIPv6 규격은 IETF에 발표된 표준으로서, IPv6에서의 호스트 이동성을 제공한다. 프로토콜은 MN이 한 네트워크에서 다른 네트워크로 이동할 때 IPv6의 주소를 변하지 않도록 도와준다. MN은 Home network내에 위치한 IPv6 주소인 HoA에 의해 의해 나타내질(addressable) 수 있다. MN이 Home network에서 멀어지게 되더라도 패킷들은 MN의 HoA로 지속적으로 전송될 수 있다. 이 방식으로, 네트워크간의 노드의 이동은 전송 및 그 상위 계층에서 인지되지 않을 수 있다.


MN이 네트워크간 이동을 수행하게 되면(이를 roaming이라 한다), MIPv6 핸드오버 절차를 밟아야 한다. MIPv6 핸드오버 절차는 다네트워크에 접속시 발생하는 IPv6의 autoconfiguration 절차와 비슷하지만, 이와는 다른 점이 존재한다. MN은 새로운 네트워크로 이동했다는것을 인지해야 하고, 설정(configure)이 되고나서, MN은 HA와 각 CN에게 새로운 경로에 대해 알려주어야 한다. 핸드오버 절차동안, 상위 계층 연결은 끊기지 않고 지속되어, 패킷의 지연이나 유실을 최소화 해야 한다.




1. Movement Detection

MIPv6에서, 대개 MN이 네트워크의 변경을 인지할 책임이 있다. MN의 네트워크가 변경되었는지 판별하는 것은 쉬운 일은 아니다. 하지만 이를 판별하는 일반적인 방법이라면, 현재 AR에 더이상 접속할 수 없고, 다른 AR에 접속할 수 있을 때를 아는것이다.  현재 AR에 접속가능한지 확인하기 위해서 MN은 Neighbor Unreachability Detection(NUD)을 수행한다.


IPv6 호스트에 보낼 패킷이 생기게 되면, 이것은 Neighbor cache를 확인해서 다음 단계 노드(next hop node) 혹은 직접연결된 이웃 혹은 라우터(on-link neighbor or router)의 링크 계층 주소를 알아낸다. Neighbor cache는 또한 각각의 이웃 항목의 상태 또한 가지고 있다. 만약 이웃의 상태가 REACHABLE이라면 이것은 이웃에 도달가능하다는 것을 의미한다.


IPv6에서, 호스트는 이웃으로 보낸 패킷에 대한 확인(confirmation)을 수신했는지에 따라 이웃이 도달가능한지 판별한다. 이것은 두가지 방법으로 알아낼 수 있다 : 1. 호스트의 NS 메시지에 응답하는 이웃의 NA메시지를 수신하였는가? 혹은 2. 상위 계층에서의 정보를 통하는 것. IPv6 스택은 상위 계층에서의 응답을 사용하여 패킷이 해당 목적지에 도달하였는가에 대해 알게 해주며 따라서 도달가능한지에 대해 알 수 있게 해준다,.

 

IPv6 호스트는 패킷을 전송해야 할 때 neighbor cache entry를 확인해서 REACHABLE로 설정되지 않은 경우, NS 메시지를 전송할 수 있다. 참고로 NUD과정은 MN이 패킷을 보내야 할 때에만 발생한다는 것을 기억해야 한다. 따라서, 최악의 경우를 생각해 본다면 MN이 어떠한 패킷을 보내지 않을 경우를 생각해 볼 수있을 것이고, 이 때 새 네트워크에서의 라우터에서 (주기적으로 전송하는)unsolicited router advertisement를 받지 않는 이상, 새로운 네트워크에 접속하였다는 것을 알지 못할 수도 있다.


MN이 실시간 스트림을 받는 도중 핸드오버가 발생한다면 패킷의 손실이나 지연시간의 발생을 피할수는 없을 것이다. 이러한 상황에서, MN은 TCP나 응용계층에서의 응답 메시지를 가끔씩 보내는 상황을 제외한다면, 현재 AR의 도달불가능성에 대해 알려주는것은 없다. 그리고 RFC2461에 나와있듯, unsolicited router advertisement는 양방향 router reachability의 확인을 위한 용도로 사용되어서는 안된다. 이것은 라우터에서 MN방향으로의 도달가능성만을 확인할 수 있기 때문이다.


2. Router Discovery

Router Discovery는 nAR으로부터의 RA 메시지로부터 수행된다. 이것은 멀티캐스트 주소로 모든 노드들에게 주기적으로 전달되는 RA일 수 있고 혹은 MN이 보낸, RS에 대한 응답일 수 있다. 이 상황에서 잠재적인 race condition이 발생할 수 있다. MN은 RS 메시지를, 현재 AR이 도달할 수 없다고 생각될 때 보내게 된다(예를 들어 neighbor cache entry가 REACHABLE이 아닌경우) 그리고 이로서 solicited RA를 nAR로부터 받게 되거나, 주기적인 브로드캐스트로서 nAR로부터 unsolicited RA를 받게 될 것이다. 하지만 이들 중 어떤것이 먼저 일어나는가에 되한것은 확정적이지 않는다. 이것은 핸드오버 시점의 상황에 의존적이다: nAR의 전송 주기와 RA 전송시간, 그리고 그 당시의 다양한 타이머의 값들에 의해.. RA의 주기를 짧게 하는것이, pAR에 접근 불가능하는것을 깨닫기 전에, 새로운 링크로부터 unsolicited RA를 받을 수 있는 가능성을 높여준다고 할 수 있을 것이다.


하지만, 이미 언급했듯, 새로운 unsolicited RA의 수신은 네트워크의 이동을 확정하는것은 아니다. 따라서 MN은 nAR를 사용하기로 하기 전에, 현재 AR이 명백하게 접근가능하지 않는다는 사실을 확인해야 한다. 이것은 NS 메시지를 기존에 지정된 시간 동안, 해당하는 NA메시지를 받기 전에, 전송하는 과정을 포함한다.


3. CoA Configuration

MN은 새로운 네트워크에서 사용할 IPv6 주소(nCoA)를 설정해야 한다. Address Configuration은 stateful/stateless한 방법으로 설정될 수 있다. IPv6 호스트는 이 둘의 관계에 상관없이 동시에 구성할 수 있다. RA메시지에 있는 다양한 플래그를 설정함으로서 정확한 방법이 지정될 수 있다. 


물론, 호스트는 수동적인 방법으로 설정될 수도 있다. 말할것도 없이, 사용자의 입력을 요구하는 address configuration은 편리한 MIPv6 핸드오버에 있어서는 재앙과 가까운 것이다. 하지만, 대부분의 일반적인 네트워크 운영자들은 사용자가 직접 주소를 설정하도록 놔두지 않을 것이다. 그러나, IPv6 주소를 제외한 다른 사항은 사용자가 직접 설정할 수도 있을 것이다.


3.1. Stateless Address Configuration

Stateless Address Configuration은 prefix discovery를 통한 자동 address configuration과, stateless DHCPv6을 사용하는 방법 두가지로 구분된다. prefix discovery를 통한 자동 address configuration의 수행은 IPv6 Stateless Address Autoconfiguration(RFC2562)에 기재되어 있다. 만약 RA에서의 Prefix Information Option의 'autonomous'플래그가 설정되었다면, IPv6 호스트는 자신의 글로벌 IPv6 주소를 RA에 포함된 prefix에 64비트 interface identifier를 결합하여 만들 수 있다. 호스트가 interface identifier를 생성하는 방법에는 여러가지가 있다(MAC 주소에 기반한 방법, 혹은 랜덤하게 혹은 암호표기를 통하여). 하지만 이것은 이 문서의 범위를 넘어서므로 생략한다.


Stateless DHCPv6은 RA상에는 옵션으로서 제공되지 않는다. 하지만, IPv6 워킹 그룹에서 RA 메시지의 'O' 플래그를 통해 DHCPv6의 사용을 명시하는 방안이 논의중이다. 이 글을 작성하는 현재에는, stateless DHCPv6의 사용을 강제하도록 하는 방안은 확실히 결론지어지지 않았다. 하지만 이것은 중요한 문제는 아니다. 만약 DHCPv6(stateless 또는 stateful)이 address configuration을 위해 사용된다면, 핸드오버에 좋지않은 추가적인 오버헤드를 발생시킨다. DHCPv6은 기본적인 router discovery 메커니즘과 더불어, 새로운 네트워크에 있어 추가적인 요청/응답 교환을 요구한다,


3.2 Stateful Address Configuration

핸드오버에 있어 stateful DHCPv6의 사용은, 대부분의 경우 요청/응답 시간에 차이가 없으므로, stateless DHCPv6의 사용과 별반 차이가 없다. 하지만, stateless에 비해 stateful에서, DHCPv6 서버에서의 메모리의 읽기 또는 쓰기에 대한 추가적인 오버헤드가 응답시간의 연장을 초래할 수 있다.


MIPv6 핸드오버의 관점에서 말하자면, prefix discovery를 통한 stateless address configuration가 선호되는 방법이라 할 수 있다. 이것은 DHCPv6 또는 다른 stateful한 메커니즘에 대비하여 적은 응답시간을 갖기 떄문이다. 하지만 기억할만한 점은, 대부분의 네트워크 운영자들은 stateful DHCPv6의 사용을 좋아라 하는데 이것은 주소 배정에 있어 추가적인 제어와 기록이 가능하기 때문이다.



출처 : [24] Mobile IPv6 Handovers: Performance Analysis and Evaluation: 3. The Mobile IPv6 Handover Process, 2004

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.