Mobile IP
모바일 IP
- Stationary Device(정지 장치)를 인터넷에 연결시키는 IP 프로토콜을 Mobile* Device(이동 통신 장치)까지 확장시킨 개념이다.
* Mobile은 Wireless에 포함된 개념이다.
- Wireless : 무선 통신을 의미한다.
- Mobile : 이동중에도(특정 AP의 Coverage를 벗어나도) 호스트의 IP주소가 변하지 않고 계속해서 인터넷에 접속 가능한 통신 형태를 의미한다.
ex) WiFi에 연결되어 인터넷에 접속 가능한 Laptop은 Mobile Device가 아니다. 해당 AP(유무선 공유기)의 Coverage를 벗어나면 통신이 끊기기 때문이다.
ex) LTE 이동 통신망에 연결된 Laptop은 Mobile Device이다.
Home Network(홈 네트워크)
- Mobile Host(MH)의 베이스가 되는 네트워크를 의미한다.
- MH는 홈 네트워크의 Home Agent(홈 에이전트)로부터 Home Address(홈 주소, \(I_{MH}\))를 부여받아 인터넷과 통신하게 된다.
- Home Agent는 Home Router에 위치하는 네트워크 S/W이다.
- 홈 주소는 다른 네트워크로 이동해도 수정/삭제 되지 않는 고유한 주솟값이다.
- Home Agent는 이동하는 MH를 Tracing한다. (즉, MH의 홈 주소와 현재 위치하고 있는 Foreign Network의 의탁 주소를 실시간으로 파악하고 있다.)
※ 홈 네트워크의 Net-ID = MH에 부여된 홈 주소의 Net-ID
Foreign Network(외지 네트워크)
- 홈 네트워크 이외의 모바일 IP를 지원하는 네트워크를 의미한다.
- MH가 외지 네트워크에 들어오게 되면, 해당 외지 네트워크의 Foreign Agent(외지 에이전트)가 제공하는 Care-of Address(의탁 주소, \(I_{CoA}\))를 부여받아 인터넷과 통신하게 된다.
- 의탁 주소를 부여받은 MH는 의탁 주소 정보를 Home Agnet에 저장시켜 Home Router가 지속적으로 MH를 Tracing 가능하게 한다.
- Foreign Agent는 Foreign Route* 혹은 MH**에 위치한 네트워크 S/W이다.
(외지 라우터가 MH에 부여한 의탁 주소와 MH가 자체적으로 부여한 의탁 주소에는 차이가 있으나, 기본적으로 Net-ID에는 외지 네트워크의 네트워크 주소가 부여된다.)
※ 외지 네트워크의 Net-ID = MH에 부여된 의탁 주소의 Net-ID
* Foreign Router에 Foreign Agent가 위치하는 경우
- 이 경우, 의탁 주소를 Foreign Agent Care-of Address라고 한다.
- 모바일 IPv4에서 사용하는 방법이다.
** Mobile Host가 자체적으로 Foreign Agent를 탑재한 경우
- 이 경우, 의탁 주소를 Colocated Care-of Address라고 한다.
Remote Host(주소: \(I_{RH}\))
- 다른 네트워크에 위치한 Mobile Device로, MH와 통신하고자 하는 노드이다.
- Remote Host에서 전송한 L3 패킷의 헤더에는 \(I_{RH}, I_{MH}\)가 저장되어 있다.
- 해당 패킷은 MH의 Home Router로 전송된다.
- Home Router의 Home Agent는 MH를 계속해서 Tracing하고 있으므로, MH가 위치한 네트워크에 패킷을 Relay한다.
- MH가 Foreign Network에 있을 경우, Home Agent는 L3 패킷 헤더에 \(_{CoA}, I_{HR}\) 를 추가한다.(IP in IP, IP Tunneling) 즉, Foreign Network로 향하는 L3 패킷의 헤더에는 4개의 IP주소가 존재하게 된다.
3 Phases of Packet Relaying in Mobile Network as IPv4 (IPv4 모바일 네트워크에서 패킷이 전달되는 세 가지 단계)
- IPv4에서 Foreign Agent는 Foreign Router에 위치한다.
Phase 1. Agent Discovery
- 모바일 IP를 지원하는 Router는 주기적으로 해당 네트워크에 라우터 광고 메시지*를 전송한다.
- MH는 광고 메시지를 통해 해당 네트워크의 네트워크 주소를 알 수 있다.
- 외지 네트워크에서는 의탁 주소를 광고 메시지를 통해 전달받게 된다.
* Router Advertisement Message(라우터 광고 메시지)
- Agent Advertisement Message(에이전트 광고 메시지)가 포함되어있다. 에이전트 광고 메시지속에는 해당 네트워크의 의탁 주소가 포함되어 있다.
- 해당 네트워크의 Net-ID가 포함되어 있다. (이를 통해, 현재 속한 네트워크를 구분할 수 있다.)
- 라우터에 의해 주기적으로 해당 네트워크에 뿌려지는 ICMP 메시지이다.
* Router Solicitation Message(라우터 요청 메시지)
- MH가 라우터에게 보내는 메시지로, 자신이 속한 네트워크를 파악하기 위해 전송하는 ICMP 메시지이다.
- Router가 주기적으로 광고 메시지를 전송하고 있으므로, 오랫동안 광고 메시지를 수신하지 못한 경우에 요청 메시지를 전송하게 된다.
- Agent Solicitation Message(에이전트 요청 메시지)가 포함되어 있다.
Phase 2. Registration
- Foreign 네트워크에서 할당받은 의탁 주소를 Home Agent에 등록하는 절차이다.
- Homa agent address : Home Router에 설치된 Agent의 주소이다.
- Identification : Registration Reply 메시지에 그대로 Copy되어 돌아오게 된다.
※ Registration 요청/응답 메시지는 UDP 프로토콜하에 송수신되며, Well-Known Port 434를 이용한다.
Phase 3. Data Transfer
- 패킷을 실질적으로 전달하는 절차이다.
- Home Agent는 DB에 등록된 정보를 통해 MH가 홈 네트워크에 있는지, 외지 네트워크에 있는지를 판별한다. 홈 네트워크에 있을 경우, 홈 네트워크로 곧장 보내고, 외지 네트워크에 있을 경우, IP Tunneling을 수행한다.
- 패킷이 Home Agent에서 Foreign Agent로 향할 때, IP 헤더가 추가적으로 붙게 된다. (IP in IP, IP Tunneling, 그림의 2번 과정)
- IPv4에서 IP Tunneling은 Home Agent부터 Foreign Router에 있는 Foreign Agent까지 이어진다. Foreign Router는 도착한 패킷을 MH까지 Relaying한다.
- 구조적으로, Remote 호스트는 모바일 호스트에 직접 패킷을 송신할 수 없다. (성능 저하의 주요한 원인이나, 다른 인터넷의 노드들이 가변하는 MH의 주소를 몰라도 된다는 장점이 있다. )
- 모바일 호스트는 Remote 호스트에 직접 패킷을 송신할 수 있다.
※ MH에서 RH로 패킷을 직접 송신할 경우 발생할 수 있는 문제점
1. Packet이 ISP에서 Ingress Filtering 될 우려가 있는 경우
- RH가 속한 ISP 입장에선, Home Network측의 주소인 I_{MH}가 Foreign Network 측에서 전송되었다는 점에서 IP Spoofing을 의심하여 Packet을 폐기할 수 있다.
- 이를 방지하기 위해, \(MH \to RH\) 과정에서도 아래와 같이 IP Tunneling을 수행한다.
- \(I_{CoA}\) 는 Foreign Network에서 유효한 주소이기 때문에 Ingress Filtering되지 않는다.
\(I_{CoA}, I_{RH}\) | \(I_{MH}, I_{RH}\) | Data |
2. Remote Host가 IP Tunneling 방식과 호환되지 않는 경우
- 이럴 경우, 성능 저하를 감수하더라도,
RH -> HR -> (IP Tunneling) -> MH
MH -> (IP Tunneling) -> HR -> RH
경로를 거쳐 패킷을 송수신한다.
- 이렇게 오가는 경로 모두 IP in IP 방식을 택할 경우, 전송 속도측면에서는 불리하지만, 어떠한 경우에도 패킷 전달을 보장할 수 있다. (모바일 IP와 호환되지 않는 Host, Ingress Filtering 문제 등과 같은 모든 문제에서 자유롭다.)
Ex. Remote 호스트에서 Foreign Network에 있는 MH에게 패킷이 전달되는 과정 (Mobile IPv4 방식)
Remote Host \to Home Router
IP Header | Data |
I_{RH}, I_{MH} | Data |
- 우선적으로, MH의 홈 네트워크의 라우터로 향하게 된다.
Home Router \to Foreign Router (Packet Tunneling)
IP Header | IP Header | Data |
I_{HR}, I_{CoA} | I_{RH}, I_{MH} | Data |
- 하나의 IP헤더가 추가적으로 더 붙는다. (IP in IP, IP Tunneling)
Foreign Router \to Mobile Host
IP Header | Data |
I_{RH}, I_{MH} | Data |
- 패킷이 Foreign Router에 도착하면, 부가적으로 붙은 IP헤더가 떼어진다.
Agent Advertisement Format (에이전트 광고 형태)
※ 모바일 IP에서 에이전트 광고 메시지는 반드시 라우터 광고 메시지에 포함된 형태로 전송된다.
3 Phases of Packet Relaying in Mobile Network as IPv6 (IPv6 모바일 네트워크에서 패킷이 전달되는 세 가지 단계)
- IPv6에서 Foreign Agent는 Mobile Host 내부에 위치한다.
- IPv4와 달리, IPv6에서는 Agent Discovery 과정이 따로 진행되지 않는다. Agent가 이미 MH에 있기 때문이다.
- IPv6에서의
Phase 1. MH가 Foreign Network에 있음을 감지하고, Foreign Network로부터 유효한 의탁 주소를 할당받는다.
- 모바일 IP를 지원하는 Foreign Router에서 송신하는 Router Advertisement ICMP Message를 통해 MH는 자신이 Foreign Network에 위치해있음을 감지한다.
- Foreign Network의 DHCP Server를 통해 유효한 의탁 주소를 할당받거나, 의탁 주소를 스스로 생성*할 수 있다.
* 의탁 주소를 스스로 생성하는 절차
1. 라우터 광고 메시지를 통해 전달받는 Net-ID에 무작위로 생성한 Host-ID를 붙인 주소를 생성한다.
2. 무작위로 생성한 주소를 해당 네트워크에서 Broadcast한다.
3. 해당 주소가 사용중이라면, 특정 노드로 부터 답장이 오게되므로, 답장이 오지 않을 때 까지 위 과정을 반복하며 사용되지 않는 의탁 주소를 찾는다.
4. 3번 과정과 같은 중복성 검사가 완료되면(답장이 오지 않으면) 해당 주소를 MH 자신의 의탁 주소로 사용한다.
Phase 2. Registration
- 유효한 의탁 주소를 Home Agent에 등록하는 절차이다. (IPv4와 달라진 점이 없다.)
Phase 3. Data Transfer
- IPv6에서 IP Tunneling은 Home Agent부터 MH에 있는 Foreign Agent까지 이어진다. 즉, 목적지인 MH까지 IP Tunneling이 수행되는 것이다.
Ex. Remote 호스트에서 Foreign Network에 있는 MH에게 패킷이 전달되는 과정 (Mobile IPv6 방식)
Remote Host \to Home Router
IP Header | Data |
I_{RH}, I_{MH} | Data |
- 우 선적으로, MH의 홈 네트워크의 라우터로 향하게 된다.
Home Router \to Mobile Host (Packet Tunneling)
IP Header | IP Header | Data |
I_{HR}, I_{CoA} | I_{RH}, I_{MH} | Data |
- 하나의 IP헤더가 추가적으로 더 붙는다. (IP in IP, IP Tunneling)
- IPv6에서 IP Tunneling은 MH까지 Direct로 연결된다.
Inefficiency in Mobile IP (모바일 IP의 비효율성)
1. Double Crossing (더블 크로싱)
- Mobile Host와 Remote Host가 같은 Foreign Network에 위치하는 경우이다. (Worst Case)
- 같은 네트워크에 위치함에도 불구하고, Home Agent를 거쳐 패킷을 송수신하게 된다.
- 갔던 길을 그대로 되돌아 온다는 점에서 Double Crossing이라는 이름으로 불리게 되었다.
2. Triangle Routing (삼각 라우팅)
- Remote Host와 Mobile Host가 서로 다른 Foreign Network에 위치한 경우이다. (가장 일반적인 경우이다.)
- Remote Host가 그림의 Could-be path와 같이 최단 송신 경로가 있음에도 불구하고 Home Agent를 거쳐서 송신해야 한다.
Solution (위 문제들을 해결하기 위한 표준안)
1. 경로 최적화
- 삼각 라우팅을 최소화하는 방법이다.
- Home Router가 RH에게 MH의 위치를 지속적으로 알리는(Update) 방식이다.
- MH의 위치를 모르는 Remote Host(RH)는 어쩔 수 없이 처음 메시지를 보낼 때에는 Home Agent에게 송신하게 된다. (통신 초반에는 불가피한 Triangle Routing)
- MH에게 메시지를 보내고자 하는 RH의 존재를 알게 된 Home Agent는 MH의 위치를 알리는 Update 메시지를 RH에게 보내어 RH가 MH에게 직접 메시지를 보낼 수 있게 한다.
- MH가 다른 Foreign Network로 이동하게 될 경우, 이동하기 전 네트워크의 Foreign Agent가 Home Agent에게 MH가 이동함을 알리고, Home Agent는 RH에게 이를 알려 다시금 RH가 MH에게 직접 메시지를 보낼 수 있게 Update 메시지를 새로 보낸다.
Reference: TCP/IP Protocol Suite 4th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2010)
Reference: Data Communications and Networking 5th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2012)