Mobile IP는 노드들의 이동이 빈번해 지면서 이를 지원하기 위하여 개발된 프로토콜이다. 이 프로토콜을 이용함으로써, 사용자는 다른 곳으로 이동하여도 원래의 서비스를 받을 수 있다는 장점이 있다. 현재 IETF의 mobileip 워킹 그룹에서 표준화를 진행하고 있으며, IP v4에서는 많은 부분이 정의되어 있는 상태이다.
Mobile IP에서는 먼저 자신이 처음에 쓰고 있던 곳를 Home이라고 얘기하고, Home에서 라우팅과 Mobile IP 관련 작업을 해주는 장비를 HA (Home Agent)라고 부른다. 그리고 이동하였을 경우 그곳에서 라우팅과 Mobile IP 관련 작업을 해주는 장비는 FA (Foreign Agent) 라고 부른다. 처음에 Mobile Node가 Home에서 Foreign지역으로 이동하게 되면 Agent Discovery단계와 Registration단계를 거쳐 Mobile IP가 작동하게 되는데, 먼저 Agent Discovery 절차에 대해 알아보기로 하자
Mobile IP Agent Discovery
Agent Discovery 단계는 말 그대로 Agent을 찾는 단계이다. 여기서는 Mobile Node가 Foreign으로 이동하였기 때문에 Mobile IP의 지원 여부를 확인해야 한다.
라우터가 FA (Foreign Agent)로 동작하게 되면 Agent Advertisement라는 메시지를 주기적으로 뿌려주게 된다. 즉 자신이 Mobile IP 동작이 가능하다는 것을 Mobile Node에게 알려주는 것이다. Mobile Node가 이 메시지를 받게 되면 이 정보를 참조하여 Mobile IP Registration을 위한 RRQ (Registration Request) 메시지를 전송하게 된다. 이 절차에 대한 설명은 다음 절에서 알아보기로 한다. Agent Discovery단계에서 Agent Advertisement 메시지 말고 또 하나의 메시지가 존재하는데, 그것이 Solicitation 메시지이다. 앞서 언급했듯이 Agent Advertisement 메시지는 주기적으로 FA (Foreign Agent)에서 전송되는 메시지이다. 이렇게 주기적인 메시지가 올 때까지 Mobile Node가 기다릴 수 없는 경우 Solicitation 메시지를 FA (Foreign Agent)로 전송하게 된다. 그리고 이를 수신한 FA (Foreign Agent)는 바로 Agent Advertisement메시지를 Mobile Node로 보낸다. 그럼 Mobile Node는 다음 단계인 Mobile IP Registration절차를 수행하게 되는 것이다.
Mobile IP Registration
Mobile IP Registration절차는 자신이 Home에서 Foreign으로 이동했다는 것을 Home Agent에게 알려주는 절차이다. 이렇게 Home Agent에게 자신의 위치를 알려 줌으로서 Mobile Node에게 전송되어야 하는 패킷을 Home Agent 가 Foreign Agent로 전송하여 Mobile Node가 받아 볼 수 있게 한다. 그 절차를 살펴보면 다음과 같다.
1. 이미 Agent Discovery 단계가 끝난 상태에서 Mobile Node는 자신이 쓰고자 하는 IP를 포함하여 RRQ (Registration Request)라는 패킷을 FA로 전송하게 된다. 이 RRQ라는 패킷에는 HA 주소가 들어있기 때문에 이를 수신한 FA는 필요한 정보를 저장하고 이 패킷을 HA로 전송하게 된다.
2. HA에서는 RRQ패킷을 수신함으로써 Home에 있던 Mobile Node가 다른 곳으로 이동했다는 것을 알게 된다. 그리고 이동한 Mobile Node에게 패킷을 전송 할 수 있도록 하기 위하여 Mobile Node가 사용할 IP를 지정하여 RRP (Registration Replay)패킷에 담아 FA로 보내주게 된다. 또한 HA의 Routing Table을 업데이트 함으로써 Mobile Node를 Destination으로 하고 들어오는 패킷을 FA로 전달 할 수 있게 되는 것이다. 참고로 말하자면 FA로 User Traffic을 전달하기 위해서 Tunneling Protocol (GRE, IP in IP) 을 이용한다.
3. RRP 패킷을 수신한 FA는 자신의 Routing Table을 업데이트 하여 HA에서 오는 터널링 된 User Traffic을 De-tunneling시켜 원래의 패킷을 Mobile Node에게 전달 될 수 있도록 설정이 바뀌게 된다. 그리고 설정이 끝나면 이 RRP 패킷을 Mobile Node에게 보내주게 된다.
4. Mobile Node는 RRP패킷에 담겨온 IP로 자신의 IP를 바꾸고 이 IP를 이용하여 서비스를 이용 하게 된다.
Registration 단계에서는 위에 언급한 순서 바와 같이 Mobile Node가 이동했다는 것을 HA에 알려 줌으로서 Mobile Node에게 오는 패킷을 HA가 그 패킷을 이동한 곳으로 전달 해 줄 수 있도록 해준다는 것이 Key point이다.
Mobile IP Traffic
Registration 단계가 끝나면 User Traffic이 흐를 수 있게 된다. User Traffic은 두 가지 방식으로 흐를 수 있는데, 하나는 Forward 터널 방식이고, 다른 하나는 Reverse 터널 방식이다. 이런 터널 방식은 Mobile Node가 RRQ 메시지를 보낼 때 그 안에 있는 RRQ flag에 의해서 결정되게 된다.
1. Forward 터널
Mobile Node가 Application서버와 통신 하고자 할 때 Mobile Node에서 나가는 패킷은 FA를 거쳐 Application 서버로 나가게 된다. 그리고 Application 서버는 거기에 대한 응답을 HA로 보내게 되고 HA는 Mobile Node가 다른 곳으로 이동했다는 것을 알기 때문에 그 곳으로 보내기 위하여 원래의 패킷을 터널링 시켜 FA로 전송하게 된다. FA는 이 패킷을 De-tunneling시키고 Original 패킷을 Mobile Node로 전달하게 된다.
2. Reverse 터널
Mobile Node가 Application서버와 통신 하고자 할 때 Mobile Node에서 나가는 패킷은 FA에서 터널링를 거쳐 HA로 나가게 되고 HA에서 De-Tunneling을 하여 Application 서버로 나가게 된다. 그리고 Application 서버는 거기에 대한 응답을 HA로 보내게 되고 HA는 Mobile Node가 다른 곳으로 이동했다는 것을 알기 때문에 그 곳으로 보내기 위하여 원래의 패킷을 터널링 시켜 FA로 전송하게 된다. FA는 이 패킷을 De-tunneling시키고 Original 패킷을 Mobile Node로 전달하게 된다. Forward 터널과 다른 점은 그림에서도 보듯이 FA에서 패킷이 나갈 때도 터널링 된다는 점이 다르다.
Mobile IP의 최단 경로 문제(Triangular Optimal Routing - IPv4의 한계)
위의 그림처럼 다른 노드가 이동 노드에게 패킷을 전송할 때 이 문제가 발생한다. 매번 HA를 통해 패킷을 전달해야하므로 위처럼 비효율적인 경로로 패킷을 전달하게 된다.
- Node C에서 이동 노드 A로 전송할 때의 경로 : ① -> ②
(Node C -> R2 -> R1 -> HA -> R3 -> FA -> 이동 노드)
- 이동 노드 A에서 Node C로 전송할 때의 경로 : ③
(이동 노드 -> FA -> R3 -> R2 -> Node C)
가장 극단적인 예로는 노드 C가 이동 노드와 같은 네트워크에 존재한다고 해도 HA를 경유하여 패킷을 전송하게 되는 문제가 생긴다. 이를 해결하기 위해선 IPv6가 적용되어야한다.
■
![](http://pds17.egloos.com/pds/201004/08/50/a0027050_4bbd5bb747cac.jpg)
(a) 어떻게 home agent가 이동 노드로 가는 패킷을 가로챌 수 있는가?
- Proxy ARP 기술을 이용하며 ARP Reply 메시지 혹은 Gratuitous ARP 메시지를 구성하여 가능하게 한다. 이동 호스트가 HA를 떠나 다른 FA의 구역으로 가면 HA는 Proxy ARP 기술을 이용하여 자신이 이동 호스트인 것처럼(ARP 메시지의 Sender IP 주소 부분에 이동 호스트의 IP 주소인 10.0.0.9를 넣는다.) 주위에 알린다. 특히 이 과정에서 이 ARP 정보가 네트워크의 다른 노드에 의해 캐시 될 수 있는데 이 정보를 적절한 시기에 무효화되도록 보장하기 위해 이동 호스트가 FA에 등록하고 바로 ARP 메시지를 생성한다.(Gratuitous ARP)
(b) 어떻게 home agent는 이 패킷을 foreign agent로 전송할 수 있는가?
- tunneling 기법을 이용한다. HA가 전송받은(이동 호스트가 목적지이다.) 패킷을 아래 그림처럼 포장하여 인터네트워크로 전달한다. 모든 중간 라우터들은 (tunneling head의)Destination IP 값만을 보고 포워딩해 줄 것이므로 다른 각도에서 보면 HA와 FA 사이에 터널을 구성하여 HA가 이동 호스트로 가야할 패킷을 터널을 통해 전송한다고 할 수 있다.
Destination IP (IP of FA) | Source IP (IP of HA) |
|
(c) 어떻게 foreign agent는 이 패킷을 이동 노드로 패킷을 전송할 수 있는가?
- FA는 위의 포장된 패킷의 tunneling head를 제거한 뒤, (가지고 있던) 이동 호스트의 하드웨어 주소에 기반한 정보로 알맞은 이더넷 프레임을 만들어 해당되는 이동 호스트에게 패킷을 전달한다.
(d) Gratuitous ARP와 IP Tunneling이 필요한 단계는 상기 문제 (a), (b), (c) 중에서 각각 어디에 해당하는가?
- HA가 이동 호스트인 것처럼 속여야하므로(수신자로써 이동 호스트의 역할을 해야 하므로) Gratuitous ARP 메시지를 생성하여 브로드 캐스트해야 하고[(a) 단계], 이렇게 가로챈 패킷을 FA로 보내기 위해 tunneling 기법이 적용된다.[(b) 단계]
(e) Mobile 구조에서 Home agent와 Foreign Agent 중에서 꼭 필요한 agent와 제거될 수 있는 agent는 무엇인지를 기술하고, 그 이유를 기술하시오.
- 만약 foreign agent와 이동 호스트가 같은 기계 내에 존재할 수 있다면, 즉 이동 호스트가 자신이 foreign agent 기능을 수행할 수 있다면 FA가 제거 가능하다. 이것이 가능하려면 이동 호스트는 foreign 네트워크의 주소 공간에 위치한 IP 주소를 동적으로 가질 수 있어야 한다. (그 주소는 care-of-address로 사용될 것이다.) 이러한 기법을 사용하는 경우 Home Agent와 DHCP 기법, 그리고 Mobile Node 내의 foreign agent 기능을 담당하는 소프트웨어만 있으면 Mobility 네트워크 기능을 제공할 수 있다.
'Computer Science' 카테고리의 다른 글
Oracle 10g XE에서 테스트 DB 만들기 (0) | 2010.05.09 |
---|---|
Mobile IP 위키 (0) | 2010.04.24 |
모바일 IP (0) | 2010.04.24 |
OFDM (0) | 2010.04.17 |
UML 4+1 View (0) | 2010.04.11 |