Mobile IPv6 Development Trend Jun-Hyun, Moon Computer Communications LAB., Kwangwoon University imp@kw.ac.kr
Content 서론 MIPv6 개요 MIPv6 구현 요구사항 MIPv6 구현 사례 상호 운용성 및 적응성 테스트 및 기타 도구
서론 무선통신기술의 발전으로 이동 단말의 및 User 증가 Mobile Node가 Identifier로 IP Address를 사용 Data-Link Layer(801.11, air, etc.)에 독립적으로 자신이 사용하던 Service를 계속 사용 가능 To solve global roaming problem IPv4는 늘어나는 Mobile Node의 주소요구량을 충족시킬 수 없음 새로운 Internet 주소 체계인 IPv6 도입이 시급함 MIPv6 Feature IPv6 + Mobility Neighbor Discovery Address auto-configuration Destination option – IPv4에서 필요한 signal message가 불필요 Routing optimization
MIPv6 개요 MIPv6 구성 요소 및 용어 정의 Mobile Node (MN) Correspondent Node (CN) 자신의 Network Access Point를 바꾸는 Host and Router Correspondent Node (CN) MN과 통신하고 있는 Host and Router Home Network (HN) MN이 이동하기 전에 Home-Link의 Prefix를 따르는 Home Address를 가지고 통신하고 있던 Network Home Agent (HA) MN의 Home Network에 있는 Router 중 MN의 등록 정보를 가지고 있어 MN이 Home Network를 떠나 있을 경우 MN의 현재 위치로 Datagram을 보내주는 Router
MIPv6 개요 (cont.) MIPv6 구성 요소 및 용어 정의 (cont.) COA (Care of Address) MN이 외부 Network로 이동하였을 경우 IPv6의 Address auto-configuration으로 획득한 주소로 MN이 현재 위치한 Network의 Prefix Information을 갖으며, MN에서 전송하는 모든 Packet은 이 Address를 IPv6 Header의 근원지를 Address로 설정 Binding MN이 외부 Network을 이동하였을 경우 Home Agent에 등록하는 COA와 해당 Node의 Home Address를 매치시켜 놓는 것으로 일정 Lifetime 내에 갱신되지 않으면 무효화됨
MIPv6 개요 (cont.) MIPv6에서 새롭게 정의된 Option and Message IPv6 Node들이 MN과 통신하면서 MN의 Binding Information (BI)을 동적으로 알아내고 저장하기 위해서 사용되는 New Destination Option – Piggybacking or Stand-alone Binding Update (BU) MN이 Home Agent와 CN에게 자신의 COA를 알리기 위해 사용 Binding Acknowledgement (BA) HA는 MN에게 BU에 대한 응답으로 BA를 전송 Binding Request (BR) CN이 MN에게 BU를 요구할 때 전송 MN은 Binding Information의 Lifetime이 종료되기 전에 새로운 BU를 전송해야 하는데, 활발히 Data를 주고 받는 CN이 Timer가 거의 종료하려 할 때까지 MN으로부터 BU를 받지 못한 경우에 MN에게 BR을 보내 BU를 요구
MIPv6 개요 (cont.) MIPv6에서 새롭게 정의된 Option and Message (cont.) IPv6 Node가 Tunneling을 사용하지 않고 TCP 연결과 같은 상위 계층 연결을 유지하기 위해 사용하는 Destination Option Home Address Option MN이 외부 Network에서 CN과 통신할 때 Datagram의 근원지 주소로 자신의 COA를 사용 Home Address Option에 자신의 Home Address를 넣어서 Datagram을 수신한 CN측에서 근원지 주소와 Home Address Option내의 Address를 교체함으로써 TCP 연결과 같이 Address와 Port Pair로 Connection을 구별하는 상위 계층의 연결을 유지할 수 있을 뿐만 아니라 Firewall과 같은 Ingress Filtering이 구현된 망도 무리 없이 통과 가능
MIPv6 개요 (cont.) MIPv6에서 새롭게 정의된 Option and Message (cont.) ICMPv6 message IPv6에서 MN이 외부 Network으로 이동해 있는 동안 HN이 재구성되어 HA가 바뀌는 경우 MN이 동적으로 HA 주소를 알아내기 위해 사용 HN에 BI를 등록하고자 하는 MN이 현재 HN에서 HA의 역할을 수행하는 Router를 찾기 위해 사용 Home Agent Address Discovery Request MN이 Mobile IPv6 Home-Agents Anycast 주소를 목적지 주소로 설정하여 ICMP 메시지를 전송하면 HN에서 HA기능을 수행하는 Router 중 하나가 수신 Home Agents Address Discovery Reply Home Agent Address Discovery Request를 받은 HA는 Home Agent Address Discovery Reply 메시지에 HN에서 HA 역할을 수행하는 모든 Router의 Information 담아 응답 HN에 있는 모든 HA들은 각 HA들이 주기적으로 전송하는 Router Advertisement message를 통해 HA List를 만들어 유지할 수 있음
MIPv6 개요 (cont.) Protocol 개요 IP 계층 Routing Destination Subnet Prefix에 따라 이루어짐 Node가 다른 Subnet으로 이동한 경우 Packet 수신 불가 다른 Subnet에서도 통신을 계속하고 싶은 겨우 Network을 옮길 때마다 IP Address 그 Network의 Prefix를 갖도록 수정해야 함 기존의 Address를 이용해서 통신을 가능하기 위해서 Mobility를 지원하는 Mobile IP라는 Protocol이 필요함 MIPv6의 경우 Address auto-configuration이나 Neighbor Discovery 등을 이용하여 IPv4 보다 손쉽게 Mobility를 지원
MIPv6 개요 (cont.) Protocol 개요(cont.) Mobile IPv6 기본 동작
MIPv6 개요 (cont.) Protocol 개요(cont.) Movement Detection MN이 이동한 후에 RA (Router Advertisement) message의 Prefix Information과 NUD (Neighbor Unreachable Detection) Mechanism을 사용하여 MN이 이동하였음을 감지 MN은 필요에 따라 Router Solicitation message를 사용하여 Router Advertisement message를 유도 COA Acquisition & Binding Update 이동이 감지된 후에 Address auto-configuration 방법으로 COA를 획득하고 그 Address를 HA 및 자신이 통신하고 있던 모든 CN에게 BU message를 이용하여 알림 HA는 그 BU message에 대한 Reply로 BA message를 전송하고 BI를 유지
MIPv6 개요 (cont.) Protocol 개요(cont.) Datagram Transport MN이 외부 Network에 있을 때 MN과 처음으로 통신을 원하는 CN은 MN이 이동하였음을 알지 못하기 때문에 Destination Address를 MN의 Home Address로 설정하여 일반적인 방법으로 Packet을 전송 MN이 이동하였음을 알게 된 HA는 Proxy Neighbor Discovery 기능을 사용하여 MN의 새로운 MAC Address를 HN의 모든 CN에게 알리고 MN으로 가는 모든 Packet을 가로채어 현재 MN위치로 Tunneling 함 Tunneling된 Packet을 받은 MN은 Packet을 전송한 CN이 BI를 갖고 있지 않다고 판단하고 CN으로 BU를 전송하여 자신의 COA를 알림
MIPv6 개요 (cont.) Protocol 개요(cont.) Router Optimization CN은 BI을 저장하고 다음부터는 그 BI 사용하여 HA를 거치지 않고 직접 통신 가능 HA를 거치지 않고 통신할 수 있는 기능은 MIPv4에서는 기본 Spec에서 다루지 않고 경로최적화를 위한 별도의 Protocol을 제시 MIPv6에서는 기본 Spec에 포함 MN을 Destination으로 하는 모든 Packet들이 HA를 지나야만 했던 상황에서 발생활 수 있었던 여러 가지 Problem 해결 HN Congestion HA Down -> Network Disable Triangle Routing Problem
MIPv6 개요 (cont.) Protocol 개요(cont.) Mobile IPv6 기본 동작
MIPv6 개요 (cont.) Protocol 개요(cont.) Home Subnet Renumbering IPv6 Neighbor Discovery Mechanism Network Prefix가 바뀌는 경우 그 Subnet의 모든 Node들이 새로운 Address를 자동으로 생성 MN이 외부 Network으로 이동한 경우, HA는 자신이 관리하고 있는 모든 MN들로 Router Advertisement Multicast Packet을 Tunneling하여 새로운 Prefix Information을 알림 이 Information을 받은 MN은 새로운 Home Address를 설정하고 BU를 보내 BI를 갱신
MIPv6 개요 (cont.) Smooth Handoff MN이 A망에서 B망으로 이동하여 Service를 받던 중에 다시 임의의 다른 망으로 이동하였을 경우에 이동을 감지한 후 새로운 COA를 획득하여 BU가 일어나서 정상적으로 Service를 받게 되기까지 기간, 즉 Handoff 동안에 MN으로 Packet을 보내는 CN은 MN이 아직 B에 있는 것으로 인식하기 때문에 B 망으로 전송한다. 이때 B망의 한 Agent가 이 Packet을 버리지 않고 MN까지 전송해 주어 Packet Loss를 줄여주는 방식 MN은 망 B의 Router로 BU를 전송하여 그 Router가 MN의 이전 COA에 대한 임시 Agent 역할을 수행하도록 함 따라서 이전 COA로 오는 모든 Packet을 이 Router가 가로채어 새로운 COA로 IPv6 Encapsulation을 사용하여 Tunneling함 이 Tunneling된 Packet을 받은 MN은 CN으로 BU를 BI를 갱신
MIPv6 개요 (cont.) Smooth Handoff (cont.) Smooth Handoff의 Signaling Packet 흐름
MIPv6 구현 요구사항 MN과 통신하는 CN이 지녀야 할 기능 Binding Update 처리 능력 MN의 새로운 COA를 위한 BU가 도착할 때마다 자신의 Destination cache를 생성하거나 변경할 수 있어야 함 Home Address Option 능력 Home Address Destination Option을 가진 Datagram을 받으면 IPv6 Header의 Source Address Field에 있는 Address와 이 Option의 주소를 교체해서 상위 계층으로 전송해야 함
MIPv6 구현 요구사항 (cont.) HA가 지녀야 할 기능 Proxy Neighbor Discovery 기능 MN으로부터 BU를 받은 HA는 Proxy Neighbor Discovery 기능을 사용하여 MN 대신 MN의 새로운 MAC Address를 Home Network의 모든 CN으로 전송함 IPv6 Encapsulation 수행 능력 Proxy Neighbor Discovery 기능을 사용함으로써 MN을 Destination으로 하는 모든 Packet은 HA에서 Intercept 가능 HA는 Intercept된 Packet을 Destination을 MN의 COA로 설정하고 Source를 HA의 IP Address로 설정된 IPv6 Header로 Encapsulation하여 전송 Home Agent Address Request/Reply MN이 HN에서 HA의 Address를 알고자 할 때, 모든 HA들의 List 정보를 담아 Reply해 주어야 함
MIPv6 구현 요구사항 (cont.) MN이 지녀야 할 기능 IPv6 De-capsulation 수행 능력 MN의 BI를 모르는 CN이 MN을 Destination으로 하여 보낸 Packet을 HA가 Intercept하여 Tunneling으로 전송하였을 경우, 그 Packet을 De-capsulation하여 상위 계층으로 올려 보내야 함 Binding Update/Request/Acknowledgement Option 처리 능력 MN은 언제 새로운 COA가 필요한 지를 탐지하는 기능과 언제 HA와 CN으로 BU를 전송할 지를 결정하는 기능을 가져야 함 HA로 전송하는 BU에는 A 플래그를 1로 세팅하여 BA를 요청 이런 BU를 받은 HA는 BA로 응답 MN과 통신하는 CN이 저장하고 있는 MN의 BI의 Lifetime이 종료하려 할 때까지 새로운 BU가 오지 않으면 MN으로 BR을 전송하여 BU를 보내줄 것을 요청 BR을 받은 MN은 BU로 응답
MIPv6 구현 요구사항 (cont.) MN이 지녀야 할 기능 (cont.) Home Agent Address Request/Reply message 처리 능력 MN이 HN에서 HA역할을 하는 Router의 Address를 알아내기 위하여 Dynamic Home Agent Address Discovery Mechanism을 사용 Smooth Handoff를 지원하기 위해서는 MN이 이전에 통신하던 Network에서 HA 역할을 수행하는 Router를 알아내야 하므로, Dynamic Home Agent Address Discovery Mechanism을 수행하는데 필요한 두 개의 ICMP message를 처리 가능해야 함
MIPv6 구현 사례 MIPL (Mobile IPv6 for Linux) HUT (Helsinki University of Technology) S/W Development Project의 일환 Linux Based Mobile IPv6 System Mobility Support In IPv6 (draft-ietf-mobile-ipv6-14) IPsec Protocol IPv6를 사용하는 응용들이 상위계층에 대한 투명한 이동성 제공 MIPL Code Package Version 0.9 (mipv6-0.9-v2.4.7) Red-Hat 6.1, 6.2, 7.0 System에서 Test Kernel Version 2.4.4.~2.4.7 에서 동작 확인 Kernel Module, Kernel Patch, Userspace Program for Kernel Install and Lineup 수정된 Router Advertisement Daemon (radvd) 포함
MIPv6 구현 사례 (cont.) MIPL (Mobile IPv6 for Linux) (cont.) MIPL 구현 기능 HA/MN/CN의 기본 기능 구현 문제점과 제한점 MN과 CN사의의 Dynamic Key 생성 불가 Signaling Option의 Piggybacking이 Packet 내에 100 bytes 가량의 여유공간을 예약하여 사용됨 BU Packet의 Lifetime 및 이동 감지 Mechanism이 불완전하고 단지 ‘moderated’ eager cell switching 만이 구현됨 Router Solicitation message의 간격 조절이 불완전 MN에서 CN으로 Packet을 Tunneling을 위한 Reverse Tunneling 구현이 필요 HA가 Home Link에 있는 MN에게 여러 개의 유효주소 배분 불가 Mobile Prefix Advertisement 의 전송 및 MN의 Home Address의 충돌을 막기 위한 필요한 Proxy DAD Mechanism의 구현이 필요
MIPv6 구현 사례 (cont.) MSR Mobile IPv6 MicroSoft 사에서 LandMARC2000 Project의 일환 Lancaster 대학의 연구진들과 함께 개발한 Windows2000기반의 Mobile IPv6 MSR IPv6 Stack, Version 1.4를 기반으로 개발 특징 IETF에서 정의한 MN, CN, HA의 기능을 그대로 구현 MN이 여러 개의 Home Address를 가질 수 있음 MIPv6 Configuration을 위해 Power가 꺼진 동안에도 지워지지 않는 Memory를 지원하여 Power-Off후에도 COA를 기억 가능 MN은 RA (Router Advertisement) Message와 Neighbor Discovery Mechanism으로 이동하였음을 감지 Hand-off 시간은 Network Adapter와 Driver에 의존적 Home Agent Discovery Message, Smooth Hand-off 미지원
MIPv6 구현 사례 (cont.) KAME 일본의 7개의 기업체가 연합하여 FreeBSD 기반의 IPv6/IPsec Stack을 개발하여 제공하려는 의도로 진행 ATM, Mobility, Queuing 등의 Protocol들도 함께 개발 Ericsson의 Mobile-IPv6 Code를 통합하여 IPv6 Mobility 제공 draft-ietf-mobileip-ipv6-13 Spec에 따라 CN/MN/HA를 구현 Mobile IPv6의 CN은 Destination Option Header에 Home Address Option을 지원 다른 Sub-option들은 지원하지 않음 Dynamic Home Agent Address Discovery와 Home Subnet Renumbering 등의 지원이 필요 IPsec과의 연동 등 앞으로 해결해야 할 과제
MIPv6 구현 사례 (cont.) NEC ‘NEC MobileIPv6 Implementation’ KAME 위에서 완전한 Mobile IPv6 기능을 제공하는 것을 목표로 함 KAME를 기반으로 구현, KAME에 Patch하는 형태로 설치 NEC의 CN은 BI를 유지하는 캐쉬를 가지고 있으며 Binding Message를 처리 가능 MN으로 Packet을 전송하고자 할 때 Routing Header를 사용하고 IPsec Packet을 처리 가능 HA는 Proxy Neighbor Discovery Mechanism을 사용하여 외부 망으로 옮긴 MN을 Destination Address로 갖는 Packet들을 Intercept하고 MN으로 Tunneling하여 전송 Multi Home Address, Smooth Handoff의 구현이 필요 HN의 Prefix Address가 변경되었을 경우 HA는 이 정보를 MN으로 보내고 MN은 그 Prefix에 맞는 Home Address를 다시 설정함
MIPv6 구현 사례 (cont.) National University of Singapore IETF의 draft-ietf-mobleip-ipv6-04 Spec을 기반으로 구현 Route Optimization과 Security 기능 등 미구현 Linux Kernel Patch File과 HA Daemon Program, MN의 Daemon Program 등으로 구성 Linux Kernel Version 2.1.59 기반으로 구현됨 CMU Monarch Project Carnegie Mellon 대학에서 수행하고 있는 Monarch Project IETF의 draft-ietf-mobleip-ipv6-03 Spec을 기반으로 구현 Package는 FreeBSD 환경에서 구현된 INRIA의 IPv6 Stack에 대한 Kernel Patch File과 Mobile IPv6 Daemon으로 구성됨
MIPv6 구현 사례 (cont.) Nokia Ericsson MN이 Wireless Access Point 사이를 이동하는 동안에도 지속적으로 연결을 유지할 수 있어 IP Multimedia Service가 가능한 Mobile IPv6를 최초로 개발 Madrid에서 열린 Global IPv6 Forum에서의 시연을 통해 MIPv6가 IP Telephony에서 Real-time Audio Traffic의 질을 개선하면서 Smooth Handover를 가능하게 하는지를 보여줌 Ericsson Ericsson Radio에서 개발한 Mobile IPv6 HA/CN/MN은 KAME IPv6에 포함되어 공개, Ericsson Telebit에서 Mobile IPv6 (HA) Router 개발 IETF의 draft-ietf-mobleip-ipv6-13 Spec을 기반으로 구현 Ericsson Telebit의 AXI462 Router에 “Add on Home Agent Demo Version”으로 구현될 예정
MIPv6 구현 사례 (cont.) MIPL/MSR Mobile IPv6/KAME/NEC 비교 MIPL MISR Mobile IPv6 KAME NEC draft-ietf-mobileip-ipv6- 14.txt 12.txt 13.txt Platform Linux, Kernel Version 2.4.4 ~ 2.4.7 Windows 2000, MSR IPv6 Stack Version 1.4 FreeBSD (KAME) Proxy Neighbor Discovery Yes IPv6 Encapsulation & Decapsulation Dynamic Home Agent Address Discovery No Binding Management Home Address Option Movement Detection Moderated eager cell switching Depend upon Router Advertisement and NDIS media connect notification Changing Default Router Address Smooth Handoff IPsec Partially
상호 운용성 및 적응성 테스트 및 기타 도구 TAHI (Test and Verification for IPv6) Project IPv6 Interoperability and Conformance Test Tool HA과 CN은 Test가능, MN은 Test 불가능함 Connectathon S/W와 H/W의 Interoperability를 Test하는 Forum Vendor들이 자신들이 개발한 제품들에 대한 Interoperability를 Test하기 위한 기회의 장 제공 MobiWan : ns-2 extensions to study mobility in Wide-Area IPv5 Networks IPv6에서 Mobility를 제공하기 위해 제안 되는 다양한 Protocol들의 동작과 성능을 검증하기 위해 ns-2 Simulator를 확장한 결과물 중에 하나임
MIPv6 도입 활성화를 위한 관련 프로젝트 Moby Dick 목적 많은 IP 기반 응용들을 Seamless하게 Access 할 수 있도록 하는 것 Handover가 발생하는 동안 또는 그 이후에 AAA같은 인증문제나 QoS 지원문제, 요금부과 문제에 대한 Seamless Handover를 가능하게 하기 위한 무선 인터넷 접근 구조를 제안하는 것 망 운영자나 제조업자, ISP 그리고 무선 Access 망과 Backbone망 기술 및 Service들에 대한 Content 제공자들에게 새로운 산업적 기회를 제공하는 것이며, IETF와 IRTF와 같은 표준화 단체에 기고하는 것 종단간 QoS 구조와 Mobile-IPv6, AAA Framework이 지원되는 IPv6 기반의 이동성을 정의, 구현, 검증하는 역할을 함
MIPv6 도입 활성화를 위한 관련 프로젝트 (cont.) WINE GLASS 목적 Mobile, Satellite, Personal Communication Domain에서 그 장점들을 이끌어내어 널리 사용되도록 하는 것 글로벌 연결성 보장, 언제 어디서나 무선 멀티미디어 통신과 서비스에 접근 가능하게 하는 것 UMTS 기반의 무선 인터넷 구조에서 Mobility와 QoS를 지원하기 위한 새로운 진보된 IP 기반의 기술들을 개발할 때까지 그런 혁신적인 기술들과 응용들을 검사하고 평가하고 Test하는 수단으로 사용됨 이 프로젝트의 결과로 얻어진 진보된 기술과 적용될 아이디어 및 QoS 보장 응용 서비스들은 3GPP, SMG, IETF 등의 표준화 단체에 기고됨