2014년 2월 19일 수요일

인터넷 프로토콜 이동성 지원(모바일 IP)

모바일 IP 개요, 역사와 개발 동기
  • TCP/IP에서 이동 장비 문제
    • 네트워크 ID와 호스트의 IP 주소가 서로 결합되어 있기 때문에 지금과 같은 IP에서 이동 장비가 선택할 수 있는 방은 두가지 뿐
      • IP 주소 변경
        • 이동한 네트워크의 네트워크 ID를 가지도록 호스트의 IP 주소를 변경한다.
      • IP 라우팅과 주소 간의 연결 끊기
        • 네트워크 ID에 따라 데이터그램을 전달하는 것이 아니라 전체 주소를 보고 데이터그램을 전송하도록 장비에 대한 라우팅 방식을 바꾼다.
    • 문제점
      • IP 네트워크는 IP 주소 기반으로 라우팅하기 때문에 이동 장비를 지원할 때 문제가 생긴다
      • 장비의 IP 주소가 장비가 있는 네트워크와 결합해있기 때문에 이동 장비를 지원하는 것이 어렵다
      • 장비가 네트워크를 이동했을 때 이제까지의 라우팅 방법으로는 이동 장비의 옛날 주소로 이동 장비에게데이터를 보내 전달 할 수 없다
      • IP 주소 전체로 라우팅 한다던가, 매번 IP 주소를 바꾸는 것은 문제를 더 키울 뿐이다.
  • 해결책: 모바일 IP
    • 기존 장비 주소를 사용하는 중단 없는 장비 이동성 지원
      • 이동 장비가 물리 네트워크를 바꾸거나 다른곳으로 가더라도 원래 IP를 계속 사용할 수 있다.
    • 새로운 주소 지정 방식이나 라우팅 수정 불필요
      • IP의 주소 지정 방식이나 라우팅을 그대로 유지한다
      • 예전과 같은 방식으로 장비에게 IP 주소를 할당한다
      • IP 주소 전체를 사용하는 라우팅 방식 등으로의 라우팅 방식 변경도 없다
    • 상호 작용
      • 모바일 IP 장비는 모바일 IP가 어떻게 동작하는지 모르는 기존 IP 장비와 통신할 수 있다
    • 계층 투명성
      • 모바일 IP에서 일어난 변경 사항은 네트워크 계층에만 국한된다
      • 전송 계층 등의 상위 계층과 애플리케이션은 일반적인 IPv4를 사용한다
      • 노드가 이동해도 사용 중이던 연결은 유지된다.
    • 하드웨어 변경 최소화
      • 이동 장비의 소프트웨어와 이동 장비가 사용할 라우터는 모바일 IP에 맞추어 바뀌어야 한다
      • 홈(home)과 외부(foreign) 네트워크 사이에 놓인 라우터와 같은 그 이외의 장비들은 바뀔 필요가 없다
    • 확장성
      • 장비가 어떤 네트워크로 이동해도 모바일 IP로 지원할 수 있고 이동 장비가 많아져도 괜찮다
      • 모바일 IP에서 허용하는 장비의 이동 반경은 매우 크기 때문에 런던에서 노트북을 사용하다가 호주나 브라질로 옮긴다 하더라도 여전히 잘 동작한다
    • 보안
      • 모바일 IP는 메시지를 리다이렉트(redirect)하며, 불법 노드가 문제를 일으키지 못하도록 인증 과정을 거치도록 한다
  • 모바일 IP의 한계
    • 모바일 IP는 1초에 1번 이상 네트워크를 바꾸지 않을 것이라는 가정하에 설계됨
    • 고정 IP를 갖는 장비를 대상으로 함
      • 장비는 자신의 홈 네트워크와 원래 IP 주소를 알아야 하기 때문에 DHCP 를 통해 IP를 동적으로 얻는 장비는 모바일 IP를 사용하기 힘들다

모바일 IP 개념과 일반적인 동작 방식

  • 모바일 IP 장비 역할
    • 이동장비
      • 네트워크 간을 이동하는 장비
    • 홈 에이전트(Home Agent)
      • 홈 네트워크의 라우터로 이동 장비가 받아야 할 데이터그램을 대신 받아 이동 장비에게 전달한다. 그 이외에도 필요한 여러 기능을 구현해야 한다.
    • 외부 에이전트(Foreign Agent)
      • 이동 장비가 현재 사용하고 있는 네트워크 라우터이다.
      • 이동 장비를 위해 새로운 홈 네트워크의 역할을 수행한다
      • 기존 라우터와 거의 동일하지만 모바일 IP 기능을 가진다
      • 동작 방식에 따라 홈 에이전트가 전달한 데이터그램을 받아서 이동 장비에게 전달하기도 한다
      • 모바일 IP 동작을 위해 이동 정보를 공유할 수도 있다
      • 어떤 모바일 IP 구현에서는 외부 에이전트가 필요 없지만 대부분의 경우 프로토콜에 필수적이다
  • 모바일 IP는 TCP/IP에 편지 전달 시스템과 유사한 시스템을 만드는 방법으로 동작한다.
    • 이동 장비의 홈 네트워크에 있는 라우터는 이동 장비의 홈 에이전트이고 이동 장비의 현재 네트워크에 있는 라우터는 외부 에이전트이다.
    • 홈 에이전트는 이동 장비의 원래 IP 주소로 도착한 데이터그램을 이동 장비의 현재 위치로 전달한다.
    • 이동 장비에게 직접 전달하거나 혹은 외부 에이전트로 전달하는 간접 방식을 택할 수 있다.
    • 홈 에이전트와 외부 에이전트는 모바일 IP가 동작하기 위해 필요한 설치 과정과 다양한 통신 방식에 대한 책임을 진다.
  • 모바일 IP 기능
    • 모바일 IP는 설치과정에서 필요한 특별한 기능과 데이터그램 전달을 관리하는 기능을 정의하고 있다
      1. 에이전트 통신
        • 이동 장비는 에이전트 발견 과정을 통해 로컬 네트워크의 에이전트를 발견한다
        • 장비는 에이전트가 보내는 에이전트 광고 메시지를 듣고 자신이 어디에 있는지 알아낸다
        • 만약 에이전트 광고를 못 들었다면 에이전트 요청 메시지를 전송한다.
      2. 네트워크 위치 결정
        • 이동 장비는 에이전트 발견 메시지 내용을 기반으로 자신이 홈 네트워크에 있는지 외부 네트워크에 있는지 판단한다.
    • 장비가 외부 네트워크에 있다고 가정하면 다음 과정으로 진행
      1. CoA(Care-of-Address) 획득
        • 이동 장비는 CoA라고 부르는 임시 주소를 얻는다
        • CoA는 에이전트 광고 메시지나 다른 방법을 통해 얻을 수 있다
        • 이 주소는 목적지로 데이터그램을 전달할 때 이외에는 사용하지 않음
      2. 에이전트 등록
        • 이동장비는 홈 에이전트에게 자신이 외부 네트워크에 있다고 알리고 홈 에이전트에 등록하여 자신에게 오는 데이터그램을 홈 에이전트가 전달해 달라고 요청
        • 이 장비와 홈 에이전트가 등록 과정을 직접 처리할 수도 있고 외부 에이전트가 중개자로 개입할 수도 있음
      3. 데이터그램 전달
        • 홈 에이전트는 이동 장비에게 온 데이터그램을 받아 실제 이동 장비의 위치로 전달
        • CoA의 종류에 따라 노드에게 직접 전달할 수도 있고 외부 에이전트에게 전송을 부탁할 수도 있다.

모바일 IP 주소: 홈 주소와 CoA

  • 모바일 IP 기능을 갖춘 노트북은 두 개의 주소를 가진다
    • 홈 주소
      • 이동 장비에게 할당된 정상적인 고정 IP 주소이다
      • 홈 네트워크에서 장비가 사용하는 주소이고 데이터그램을 이동 장비에게 보낼 때 사용
    • CoA(Care-Of Address)
      • 임시 주소로 이동 장비가 홈 네트워크 외부로 움직였을 때 사용
      • 일반적인 32비트 IP 주소와 동일하지만 모바일 IP에서만 사용하며 IP 데이터그램을 전달하거나 관리 기능을 실행할 때만 사용
      • 더 높은 계층에서는 CoA를 사용하지 않고 일반 IP 장비도 데이터그램을 생성할 때 CoA를 사용하지 않음
  • CoA는 홈 에이전트가 데이터그램을 전달하는 방법에 따라 두 가지 유형으로 나뉜다.
    • 외부 에이전트 CoA
    • 공존 CoA
    • 모바일 IP에서 각 이동 장비는 외부 네트워크에서 사용할 임시 CoA를 사용한다.
    • 공존 CoA는 이동 장비에 직접 할당된 주소이기 때문에 전달되는 데이터그램은 노드에게 직접 전송된다
    • 이와 달리 외부 에이전트 CoA를 사용하면 이동 장비는 사실 외부 에이전트의 IP 주소를 사용하게 된다
    • 따라서 데이터그램은 외부 에이전트에게 전달되며 외부 에이전트가 마지막으로 이동 장비에게 데이터그램을 전달한다.
  • CoA 유형에 따른 장점과 단점
    • 모바일 IP에서 공존 CoA는 유연하다는 장점이 있지만 각 장비가 외부 네트워크에서도 유일한 IP 주소를 가져야 하는 단점을 가진다
    • 외부 에이전트 CoA는 외부 네트워크에 있는 많은 이동 장비가 각자 다른 IP 주소를 가질 필요가 없다는 장점이 있다

모바일 IP 에이전트 발견

  • 에이전트 발견 과정
    • 에이전트/노드 통신
    • 현재 위치 발견
    • CoA 할당
  • 에이전트 광고와 에이전트 요청 메시지
    • 에이전트 광고
      • 모바일 IP 에이전트오 활동할 수 있는 라우터가 정기적으로 전송한다
      • 이 메시지는 모바일 IP 관련 정보를 담은 하나 이상의 확장을 포함하는 일반적인 라우터 광고 메시지로 구성된다
    • 에이전트 요청
      • 모바일 IP 장비가 로컬 에이전트에게 에이전트 광고 메시지를 보내달라고 요청한다.
  • 에이전트 요청 메시지 포맷
    • 라우터 요청 메시지와 같다
  • 에이전트 광고 메시지 포맷
      • ICMP 라우터 광고 메시지로 시작
    • 이동 에이전트 광고(Mobility Agent Advertisement) 확장
      • 에이전트가 모바일 IP 기능을 갖추었다는 것을 알리는 기본 확장이다
    • 접두사 길이(Prefix-Length) 확장
      • 에이전트 광고 메시지의 앞 부분에 있는 라우터 주소(Router Address 필드)의 접두사 길이를 알리는 옵션 확장이다
      • 접두사 길이란 주소 내 네트워크 ID의 비트 수이므로 이 확장은 라우터 주소의 네트워크 ID를 알린다
    • 1바이트 패딩(One-Byte Padding) 확장
      • ICMP 메시지 구현을 쉽게 하기 위해 메시지의 길이는 짝수여야 하므로 1 바이트 패딩이 필요하다. 이 필드는 모두 0으로 된 1바이트 이다.
모바일 IP 에이전트 발견은 이동 장비가 자신의 위치를 판단하고 홈이나 외부 에이전트와의 관계를 유지하기 위한 과정이다. 에이전트의 기능을 알리기 위해 에이전트 기능이 있는 라우터는 라우터 광고 메시지를 수정한 에이전트 광고 메시지를 정기적으로 전송한다. 광고를 전송해달라고 요청하기 위해 이동 장비가 라우터 요청 메시지와 동일한 에이전트 요청 메시지를 전송할 수 있다.

모바일 IP 이동 에이전트 광고 확장 포맷

모바일 IP 홈 에이전트 등록과 등록 메시지

  • 홈 에이전트 등록(Home agent registration, 또는 등록(registration)
    • 이동장비가 에이전트 발견을 끝내면 자신이 홈 네트워크에 있는지 외부 네트워크에 있는지 알 수 있다
    • 외부 네트워크에 있다면 모바일 IP를 동작시켜야 한다
    • 홈 에이전트와 통신을 하면서 필요한 정보와 지시를 주고받는다
  • 이동 장비 등록 이벤트
    • 등록 이동
      • 장비가 외부 네트워크에 도착하면 등록을 시작한다
    • 등록 해제
      • 다시 홈 네트워크로 돌아오면 전달을 취소한다
    • 재등록
      • 외부 네트워크에서 다른 외부 네트워크로 이동하거나 CoA가 바뀌면 이동 장비는 홈 에이전트에게 알려 등록을 수정한다.
  • 등록 요청과 등록 응답 메시지
    • 등록하는 과정에서 메시지 두 가지가 새로 정의됐다
    • 두 메시지는 ICMP 메시지가 아니며 UDP를 사용한다
    • 등록은 다른 모바일 IP 통신과 달리 더 높은 계층에서 일어난다
    • 에이전트는 잘 알려진 UDP 434 포트에서 등록 요청을 기다리고, 모바일 노드가 사용한 임시 포트로 응답을 돌려 보낸다
  • 등록 과정 (CoA의 종류에 따라 두가지로 나뉨)
    • 직접 등록 방식
      1. 이동 장비가 등록 요청을 홈 에이전트에게 보냄
      2. 홈 에이전트는 이동 장비에게 등록 응답을 보냄
    • 외부 에이전트가 홈 에이전트와 이동장비 사이에서 메시지를 실어 나르는 좀 더 복잡한 과정
      1. 이동 장비가 등록 요청을 외부 에이전트에게 보냄
      2. 외부 에이전트가 등록 요청을 처리하여 홈 에이전트에게 보냄
      3. 홈 에이전트는 외부 에이전트에게 등록 응답을 보냄
      4. 외부 에이전트가 등록 응답을 받아 처리하고 이동 장비에게 전송
  • 등록 요청 메시지 포맷
필드명 크기(바이트) 설명
유형 1 등록 메시지 유형을 식별한다. 요청일 경우 1이다
플래그 1 이동 장비가 홈 에이전트에게 요청하는 것을 여러 가지 정보 플래그로 나타낸다.
수명 2 이동 장비가 이번 등록에 대해 요청하는 등록 수명을 초 단위로 나타낸다
홈 주소 4 이동 장비가 홈 네트워크에서 사용했던 홈(정상) IP 주소. 요청이 홈 에이전트로 전달되는 방식에 관계없이 이동 장비를 유일하게 식별할 수 있도록 한다
홈 에이전트 4 이동 장비의 홈 에이전트로 동작할 장비의 IP 주소
CoA 4 이동 장비의 홈 에이전트로 동작할 장비의 IP 주소
식별 8 등록 요청을 고유하게 식별하는 64비트 번호로 응답과 요청을 한 쌍으로 묶기 위해 사용한다. 재생 공격에 대응하기 위해서 필요하다
확장 가변 요청을 인증하기 위해 필요한 확장 필드
  • 등록 응답 메시지 포맷
필드명 크기(바이트) 설명
유형 1 등록 메시지 유형을 식별한다
코드 1 등록 요청에 대한 결과를 알린다. 0이라면 등록이 허용됐다는 것을, 1이라면 동시 바인딩을 요청했지만 지원하지 않는다는 것을 나타낸다. 등록을 거부하려면 거절의 이유를 알리기 위해 다양한 이유 코드를 사용한다. 홈 에이전트와 외부 에이전트 모두 요청을 거절할 수 있다
수명 2 등록을 허용했다면 등록이 만료되기 전까지의 수명을 초단위로 나타낸다. 이동 장비가 요청한 것과 다른 값일 수 있다.
홈주소 4 이동 장비가 홈 네트워크에서 사용했던 홈(정상) IP 주소. 외부 에이전트가 다양한 이동 장비를 지원하고 있을 때라도 요청을 보낸 이동 장비를 식별할 수 있도록 한다.
홈에이전트 4 이동 장비의 홈 에이전트로 동작할 장비의 IP 주소
식별 8 등록 요청을 고유하게 식별하는 64비트 번호로 요청의 식별 필드와 일치하는 값을 가진다
확장 가변 응답을 인증하기 위해 필요한 확장 필드.


모바일 IP 데이터 캡슐화와 터널링

  • 일반적인 모바일 IP 터널링
    • 외부 에이전트 CoA
      • 외부 에이전트에서 터널리 끝난다
      • 캡슐화된 메시지를 홈 에이전트에서 받아 외부 IP 헤더를 벗겨내고 원래 데이터그램을 이동 장비에게 전달한다
      • 외부 에이전트와 이동 장비는 같은 로컬 네트워크에 있고, 이동 장비는 그 네트워크에서 사용할 수 있는 IP 주소가 없기 때문에 외부 에이전트는 데이터 링크 계층을 통해 데이터를 이동 장비로 직접 전송한다
    • 공존 CoA 주소
      • 이동 장비에서 터널이 끝나고 이동 장비가 캡슐화 헤더를 벗겨낸다
  • 모바일 IP 역터널링
    • 역터널링이라는 홉션 기능은 네트워크가 외부 IP 주소를 사용하는 데이터그램을 인터넷으로 전달하지 않는 등의 특별한 경우에 사용된다
    • 역터널링을 사용하면 이동 장비는 데이터그램을 직접 전송하지 않으며 모든 전송은 홈 에이전트와의 터널을 통해 이루어진다

모바일 IP와 TCP/IP 주소 결정 프로토콜


모바일 IP 효율


모바일 IP 보안 문제