일단 위의 두가지는 기본 동작은 비슷합니다. 이 비슷한 부분을 설명 드리자면,
일단 Mobile Node(MN)가 홈네트워크에 존재하다가 외부 네트워크로 이동을 하게되면,
새로운 해당 네트워크에서 새로운 주소를 배정받아야 합니다. 이렇게 새로 배정
받는 주소를 COA(Care of address)라고 합니다(기존의 홈 네트워크에서의 주소는 Home
Address라고 합니다.). 이렇게 COA를 획득하게 되면, MN은 새로 이동한 네트워크에서
다른 호스트들과의 통신이 가능해지긴 하지만, 기존에 설정되어 있던 연결은 지속될 수 없습니다.
첫번째 원인은 MN이 통신하고 있던 대응 호스트가 MN과 통신을 이용할 때 이용하는
주소는 MN이 처음 가지고 있던 Home Address이기 때문에, 대응 노드에서 발신된 데
이터는 MN에게 전달이 되지 않습니다(MN의 네트워크에서의 위치가 COA이기때문)
두번째는 MN이 COA를 이용하여 통신을 하게 되면, IP계층 상위의 프로토콜은 이 연
결을 새로운 연결설정으로 생각하고 동작하게 됩니다. MN이나 대응 노드에서 연결을
지속적으로 이루어지기 위해서라면, IP계층에서 인식되어지는 주소가 MN의 Home Ad
dress여야합니다. 이 2가지문제가 노드의 이동후 연결성 유지에 장애요인입니다. 이 두
가지를 해결하여야 기본적인 이동성(Mobile)을 확보할 수 있습니다.
우선 첫번째 문제를 해결하기 위해서 필요한 것이 HomeAgent Node(HA)입니다. 쉽게 말
해서 중계자입니다. 이 HA가 하는 일은 MN에게 보내진 데이터를 중간에 받아서 MN의
현재 COA 주소로 재전송 해 주는 것입니다. 쉽게 말해서 아파트에 살고 있는데 님 앞으
로 택배가 보내졌다고 합시다. 그런데 님이 앞동에 사는 친구의 집에 놀러 갔습니다.
그러나 님은 택배를 오자 마자 바로 받아야만 하기때문에 경비 아저씨에게 자신의 현재
친구집 xxx동xxx호에 있다고 말하고 택배오면 전달해 달라고 부탁하면, 경비아저씨가
택배를 인터셉트?하여 친구네 집에 있는 님에게 전달해 줄 것입니다. 이 때 경비아저씨가
하는 일이 HA가 하는 일과 같습니다. MN이 이동하면 자신이 처음 있던 홈네트워크에
존재하는 HA에게 자신의 현재 위치정보인 COA를 전달하여 데이터를 중계하게 됩니다.
두번째 문제를 해결하기 위한 방법은 HA가 MN사이에 터널을 뚫는 것입니다.(터널링)
MN의 Home Address가 목적지주소나 출발지 주소로 이용되어야 하는데, 출발지 주소로
쓰일 경우, 다른 네트워크를 통과할 수 없도록 현재의 라우터는 작동되도록 되어 있습
니다. 그래서 MN은 다른 네트워크에서 출발 주소는 어쩔수 없이 COA를 이용해야만
합니다. 몬가 좀 이상하다고 느끼셨나요? 위의 언급대로라면 연결성을 확보하기 위해선
MN의 Home Address를 이용해야 된다고 하였는데, COA를 이용해서 통신해야 한다는
말을 하다니 좀 이상한가요? ^^; 설명을 마무리 하겠습니다. MN에서 전송될 데이터가
발생하게 되면, 최초의 IP패킷의 출발 주소는 MN의 HomeAddress가 되고 목적주소는
상대방의 주소값이 됨니다. 허나 이것으로 부족하죠, 네트워크를 통과할 수 없게 되니
그래서 MN의 이 IP패킷위에 하나의 IP패킷을 더 추가하게 됩니다. 대신 주소는 출발
주소로 MN의 COA가 되고, 중요한 것으로 목적지는 HA의 주소값이 되겠습니다. 이것을
패킷 캡슐레이션으라는 것으로 이 패킷은 당연히 목적 주소인 HA에 보내지게 됩니다.
그럼 HA는 이것을 받아 겉에 패킷을 까서 MN이 통신하고자 하는 녀석에게 재전송하게
됩니다. 반대로 상대방이 MN과 통신을 원하게 되면 HA가 이를 받고 마찬가지로 캡슐레
이션을 하게 됩니다. 당연히 출발 주소는 HA의 주소이고 목적주소는 MN의 COA주소 ip헤
더가 추가되는 것입니다. 그리고 MN에서의 거의 모든 통신은 기본적으로 이 터널을 이용
하게 됩니다. COA라는 것은 단지 현재의 위치정보를 상대에게 알려주기 위한 것이기 때
문에, MN이 먼저 어느 노드와의 호스트와 통신을 원할때도 터널링을 이용하게 됩니다.
현재 다른 네트워크에서 획득한 COA정보는 MN이 다시 이동하게 되면, 사라지게 되기
때문에 그렇습니다. (ingress filtering & Reverse tunneling)
MIPv4나 MIPv6이나 이동성 확보를 위해서 기본적으로 필요한 것이 새로운 네트워크
위치를 알게 해주는 COA를 획득하는 것과 이 정보를 MN의 Home Address와 맵핑시켜
서 MN으로 데이터를 중계해 줄 수 있는 Home Agent가 필요하고, 이 과정에 터널링을
이용한다는 것이 2가지의 유사한 점이 되겠습니다.
1. MN이 이동을 감지한다.
2. MN이 COA를 획득하게 된다.
3. MN이 COA를 자신의 Home Agent에 등록한다. <-- Binding Update라고 합니다.
4. HA가 MN에 대한 정보 엔트리를 저장하고 응답한다 <-- Binding Acknowledgement
5. HA과 MN사이에 터널이 설정되고 이를 이용하여 MN이 통신가능하게 됨.
그리고 MIPv4와 MIPv6의 차이점을 설명하라고 했는데 전 MIPv4를 제대로 안보고 바로
MIPv6을 공부해서 정확하다고는 말할 수 없지만 아는데까지 써봅니다.
일단 이 두가지가 가장 차이가 나는 점은 IPv4와 IPv6의 차이에서 발생되는데요, IPv4가
설계된지 상당히 오래전이라 이러한 Mobility를 대한 고려를 하지 않았습니다. 당연히
IPv6은 설계될 때 이러한 고려를 반영하였습니다. 프로토콜 자체가 간단해지고 확장헤
더를 이용하는 방식이러서 좀 더 유연?하다고 할 수 있습니다. 그리고 IPv6의 확정헤더 목
록에 MIPv6 mobility header가 기본적으로 추가되는 것을 고려하고 있습니다.
그리고 아시겠지만 IPv6은 주소공간이 넓기 매우 넓습니다. 128비트를 10진수를 환산하면
무한대로 보면 되겠구요. 반대로 IPv4는 40억개 정도 되는데, 거의 바닥이 난 상황이라고
합니다. 그리고 주소의 계층화(A,B,C클래스)가 주소관리를 더욱 불편하게 만들었구요. 그
래서 MIPv4에서는 COA관리에 더 신경써 주어야 합니다(IP주소 부족으로 인하여..) MIPv4
에서는 FA COA와 co-located COA 2가지가 있습니다. 허나 MIPv6에서는 IPv6의 주소자동
생성 기능을 이용하여 COA를 스스로 생성하여 등록할 수 있게 되어 있습니다. 이 주소
는 co-located COA입니다. 자동생성된 주소가 이미 다른 노드에 의해 생성된 경유만 아니
면 되죠(겹칠 확률이 낮아요). 그리고 경로 최적화 문제에 있어서도 MIPv6이 더욱 유리합
니다. 방금 전에 언급한 COA에 관련 된 부분이기도 한데, 경로 최적화를 위한 기본 전제는
상대방도 Mobility를 받아들일 능력이 있어야 된다입니다. IPv6은 이제 확대되어 나가고
있고,IPv4는 이미 퍼져있는 것입니다. 그렇기 때문에 IPv6에 Mobility를 확장하는 것은 쉽
지만,이미 퍼져있는 IPv4에 Mobility를 추가하는 것은 번거롭고 힘들일이 되지요.
이것이 제가 정리한 Mobile 동작의 기본 정리입니다. 쓰고 보니 좀 허접느껴지는데요, 다
른 정보도 참고하여서 이해하세요.
퍼온곳 : 네이버 지식 검색

Comments List