본문

Route Optimization : 라우팅 경로 최적화

[그림 1] 삼각 라우팅 문제/경로 최적화


Routing Optimization(라우팅 경로 최적화) : MN은 HA를 통해 받은 소스 주소인 CN에 BU와 BA과정을 통하여 CoA를 바인딩하고, 이로서 HA를 거치지 않고 직접 통신할 수 있다. 라우팅 최적화를 통해 MN은 터널링을 통해 HA를 거쳐 CN과 패킷을 주고받지 과정 대신 직접 통신이 가능해져 효율적인 데이터 전송을 할 수 있다. MIPv4에서는 기본 스펙에서 다루지 않으며, MIPv4에서의 Triangular Routing를 대체하는 MIPv6의 기본 기능이다. IPv6 확장 헤더에 홈 주소 옵션(home address option)을 사용하여 주소가 갱신된 이후에는 HA를 경유하지 않고 직접 통신하는 것이다. 


모든 MN과 경로를 최적화할 필요는 없다. 특히, 단기간 연결은 HA를 경유하여 통신하여도 큰 문제가 되지 않는다. 하지만 MN의 연결이 단기간인지 장기간인지 판단하는것이 어렵기 떄문에, 가장 쉬운 접근 방법은 항상 경로 최적화를 하거나 아니면 절대 경로 최적화를 사용하지 않는것이다. 모든 노드가 IPv6를 지원하지 않을 수도 있다. 이런 노드와는 경로 최적화를 할 수 없다. HA와 CN은 바인딩 캐시(Binding Cache)를 유지하고, 이동 노드는 바인딩 갱신 목록(Binding Update List)를 유지한다. 바인딩 갱신은 수명을 가지며, 이 수명이 경과되기 전에 refresh 되지 않으면 캐시에서 자동 삭제된다.



[그림 2] Home address option의 사용


IPv6 노드는 터널링을 사용하지 않으면서 TCP 연결과 같은 상위 계층 연결을 유지하기 위해서 다음 destination 옵션을 정의한다. Hone address option이 추가된 이후 기존에 처리해야 할 일들이 있으면 처리를 한 후에 더이상 할 일이 없으면 destination option header에 있는 주소와 SRC 주소를 교체한다. CN은 이를 수신한 자신의 바인딩 캐시에 있는 정보와 일치하는지 먼저 확인한다. 이를 통하여 CN은 상태 정보를 유지하지 않아도 된다.


* Home Address Option : MN은 외부 망에서 CN과 통신할 때 데이터그램의 근원지 주소로 자신의 CoA를 사용하며 Home Address Option에 자신의 홈 주소를 넣어서, 이 데이터그램을 수신한 CN측에서 근원지 주소와 Home Address Option내의 주소를 교체함으로써 TCP 연결과 같이 address와 port pair로 connection을 구별하는 상위 계층의 연결을 유지할 수 있을 뿐만 아니라 방화벽과같은 ingress filtering이 구현된 망도 무리 없이 통과할 수 있다. 


* Triangular Routing(삼각 라우팅) : MN과 CN간의 모든 패킷은 항상 HA를 경유한다(Tunneling). CN->MN 뿐만 아니라 MN->CN 패킷도 HA를 거쳐야 한다(reverse tunneling). CN은 MN의 새 주소를 모르기 떄문에 CN은 당연히 HA를 경유해야 한다. 하지만 MN은 CN의 주소를 알고 있기 때문에 HA를 거칠 필요가 없다. HA를 경유해야 하기 때문에 발생하는 통신지연, 네트워크 대역폭 활용의 비효율성 뿐만 아니라 HA는 단일 실패 점(single point of failure)이 된다. 


Mobile IPv6 Route Optimization은 MN의 IP가 도중에 변경되더라도 MN 과 CN이 직접 통신할 수 있도록 하는 것을 의미한다. 이 두 양종단은, 변하지 않는 HoA를 사용하여 IP상위계층에서의 MN과의 통신을 수행하며, 이와 동시에 MN이 현재 위치한 네트워크측의 주소인 CoA를 사용하여 페이로드를 전송한다. Mobile IPv6은 패킷이 IP Layer에서 사용될 때, HoA와 CoA를 교환한다. MN의 HoA와 CoA 사이의 관계는 MN에 대한 바인딩(binding)이라고 명명한다. MN은 자신의 IP가 변경될 경우 "Correspondent/Home Registration" 과정을 통하여 CN/HA에서의 자신의 바인딩 정보를 업데이트 할 필요가 있다. - rfc4866 서문에서 발췌.


"

MN이 다른 노드와 통신할 때, 만약 MN이 HN으로부터 벗어난 경우, 모든 패킷은 HA를 통해 포워드 된다. 이것은 통신상의 지연을 유발시키고, 특히 만약 MN과 CN이 네트워크 구조상으로 가깝고 HA가 이들과 멀리 떨어진 경우 더욱 악화된다. 최악의 상황은 양 두 노드가 동일한 네트워크에 존재하는 경우이다,


MIPv6 스펙은 이러한 문제에 대한 해결책을 제시한다. 만약 CN이 MIPv CN 기능을 지원한다면, MN과 CN사이의 경로는 최적화될 수 있다. 경로를 최적화 하기 위해, MN은 BU메시지를 CN에 보낸다. 이 메시지에는 H와 L 플래그가 설정되면 안되는데, 그것은 메시지는 Home Registration을 요청하는것은 아니기 때문이다. A 플래그는 설정되어도 되는데, 이것은 강제적인 사항은 아니다. 만약 A 플래그가 설정된다면, CN은 BAck메시지로 BU에 답신한다. 주목해야 하는것은 A 플래그가 설정되어있지 않다 하더라도, (인증 오류를 제외한) 오류가 발생하는 상황에서CN은 BAck 메시지를 MN에게 보내야 한다는 것이다.


BU메시지는 Return Routability 과정을 통해 보호되어야 한다. 이 메시지는 Binding Authorization Data option을 포함해야 한다. 이 옵션은 BU 메시지의 해쉬값을 갖는다. 만약 해쉬값이 부정확하다면, 이 메시지는 무시된다. 이와 비슷하게, CN으로부터 전송되는 BAck 메시지 또한 Binding Autorization Data option을 포함하여 메시지의 내용을 보호한다.

BU와 BAck 메시지(A플래그가 설정되었을떄)의 교환이 끝나고 나면, MN은 경로가 최적화된 상태로 CN과 패킷을 주고받는다. 패킷의 발신지 주소값은 MN의 CoA값으로 설정된다. MN은 HoA를 발신지 주소로 명시할 수 없는데, 이것은 경로상의 라우터가 발신지 스푸핑 공격을 방지하기 위해 경로가 예상과 다른 경우 패킷을 무시하기 떄문이다. HoA의 정보는 패킷의 Destination Options header의 Home Address option내에 저장된다.


CN이 Home Address option이 포함된 패킷을 받으면, BCE상에 HoA와 관련된 항목이 있는지 확인한다. 만약 그러한 항목을 찾을 수 없다면, CN은 상태 코드가 0인 Binding Error 메시지로 응답한다. 이 경우 MN은 BU 메시지를 다시 보내서 CN상에 자신에 대한 BCE를 생성하도록 해야한다. 검증 절차는 악의적인 노드가 적밥한 MN대신 위조된 CoA를 사용하는것을 방지한다.


만약 HoA 옵션이 적합하다면, CN은 들어오는 패킷을 받아들이고 패킷의 발신지주소와 옵션상의 HoA값을 서로 바꾼다(swap is done in the IPv6 layer). 이 결과로, 상위계층으로 전달되는 패킷은 발신지 주소로 HoA를 갖게되어 MN의 위치이동에 대해 신경쓸 필요가 없어진다. 


CN이 MN에게 패킷을 보낼 때, Type 2 Routing Header를 사용한다. MN의 HoA는 Routing Header내에 저장되고, 패킷의 목적지 주소는 MN의 CoA로 지정된다. 패킷은 HN으로 가지 않고, 대신 패킷은 MN(CoA)이 현재 위치한 FN으로 가게 된다. Type 2 Routing Header의 처리과정은 몇가지 확인절차를 제외한다면 Type 0 Routing Header와 유사하다. MN은 Routing Header내의 intermediate node 필드에 하나의 주소만이 있는지, 그리고 그 주소가 MN자신에 대한 것인지 확인한다. 만약 Routing Header상에 명시된 주소가 MN의 주소가 아니라면, 이 패킷은 MN에게있어 패킷을 포워드하라 하는 시도일 수 있으므로, MN은 패킷을 무시한다. MN은 잘못된 Type 2 Routing Header를 갖는 패킷은 모두 무시한다.


- 5.5 Route Optimization IPv6 Advanced Protocols Implementation, 2007

"


한마디로, 라우팅 경로 최적화란, 'HA를 거치지 않고 MN과 CN이 직접 통신하도록 하는 것'이다. 마치 어감이 IP 라우팅 프로토콜에서 최적경로를 도출하는것같은 느낌을 줘서 괜시리 헷갈리게 한다.


그림출처 : [14] 한국기술교육대학교 인터넷미디어공학부 2008학년도 2학기 암호프로토콜(INS330), 13. Mobile IPv6, 2008

[그림 1] - 페이지 11

[그림 2] - 페이지 14

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.