1. 이동성 지원
- 네트워크가 지원하는 방법은 예전에 공부를 했는데 이번에는 고정 network에서 ip가 인터넷 내부에서 이동성을 지원하는 방법을 알아보자.
- ip는 네트워크주소와 호스트 주소로 구성되어있다. 네트워크 주소를 포함한다는 것은 즉 위치가 정해진다는 것이다. 즉 호스트가 이동하여 다른 네트워크에 접속하면 기존 네트워크 주소로는 패킷 전달이 불가능하다.
- 그럼 새 ip를 할당하는 건 어떤가? 이것은 이동성으로 취급하지 않는다.
- 모바일ip가 목적으로 하는 것은 송신자가 이동하고 있다는 사실을 알지 못하고 기존 통신 소프트웨어 및 라우터의 변경 없이 이동성을 지원하는 것이다.
2. Cellular network
- 모바일 ip의 구현이 언뜻 불가능해 보이지만 이미 비슷한 문제를 해결한 적이 있다.
- 기존의 전화번호를 유지하면서 이동성을 지원하는 휴대폰 이동통신이다.
- 휴대폰을 가입하면 home network가 하나 생기고 번호에 따라 위치를 나타내는 테이블이 하나 생긴다.
- 휴대폰이 이동하면서 어떤 기지국에 접속이 되면 VLR과 HLR 테이블들에 번호, 위치를 기록한다.
- 누군가로부터 전화가 오면 home으로 가서 HLR을 보고 내 번호의 위치를 찾는다.
- 스위치로 가서 VLR에서 내가 접속한 기지국 번호로 indirect하게 연결해준다.
- 이렇게 indirect로 이동성을 지원한다.
3. Mobile IP
- 10.0.0.9 주소를 사용하던 호스트가 12.0.0.6 네트워크로 이동한 상황이다.
- home address를 계속 쓰면서 통신을 이어가고 싶다.
- HLR역할을 home agent가 수행한다. 이동하는 호스트의 home network에 존재하면서 indirection을 담당한다.
- HA는 (home address, COA) 테이블을 관리한다.
- VLR처럼 바깥쪽에서 이동을 지원하는 녀석이 Foreign Agent이다.
- 물론 10.0.0.9를 유지하기는 하지만 새로운 네트워크에 붙어서 통신하기 위해서는 현재 위치를 대변할 주소가 필요하다. 즉 위치를 대변하는 주소이고 이를 COA라고 부른다. (대게 FA)
- 공식적으로 home address를 쓰지만 현재 위치를 대변할 주소가 필요하고 이게 COA이다.
- 즉 sending host에서 10.0.0.3으로 패킷을 보낸다. home agent에는 (10.0.0.9, 12.0.0.6)이 기록되어있다. 그럼 그 해당 패킷을 12.0.0.6으로 보낸다.
- 테이블이 구성되는 방법을 살펴보자. (COA가 등록되는 과정)
- 이동호스트가 홈에 있으면 HA(10.0.0.3)의 소리가 들리기 때문에 HA의 주소를 인식할 수 있다.
- 만약 HA의 신호가 안들리고 다른 애의 신호가 들리면 자기가 이동하고 있음을 알고 FA에게 HA주소(10.0.0.3)를 알려준다.
- 그러면 FA가 HA(10.0.0.3)에게 10.0.0.9가 자기한테 왔음을 알려줄 수 있게 된다.
- 그러면 HA는 (10.0.0.9, 12.0.0.6)을 관리하게 된다.
4. Mobile IP의 패킷 전달과정
- 이동 호스트가 패킷을 송신하는 경우는 쉽다. 송신자의 주소랑 별개로 목적지 주소만 알려주면 알아서 전달된다.
- 요즘은 보안문제 때문에 라우터가 송신자의 주소를 보고 차단할지 말지 결정한다.
- 따라서 최근에는 이동호스트의 송신도 indirect하게 처리하려는 시도들이 이루어지고 있다.
- 이동하는 호스트가 수신하는 경우를 살펴보자.
- 200.0.0.1이 패킷을 10.0.0.9에게 보낸다
-> 무조건 일단 10.0.0.3으로 전달된다.
-> HA는 이동호스트가 자기한테 있다면 아무일도 안하고 그냥 패킷 전달
-> 이동 호스트가 밖으로 나가서 (10.0.0.9, 12.0.0.6)가 ha테이블에 등록되었다면 ha가 indirection으로 보낸다. 그냥 목적지를 10.0.0.9로하면 다시 자기에게 되돌아오니까 터널링을 해서 보낸다. 즉 ip 패킷을 12.0.0.6목적지 주소로 encapsulation해서 보낸다.
-> FA가 이를 받아 decapsulation하고 10.0.0.9에게 전달(forward)한다.
5. Mobile IP의 패킷 전달과정 세부 문제/기술
- HA가 이동호스트로 가는 패킷을 자기가 먼저 가로채서 받아야 한다. 그래야 테이블을 보고 전달해줄 수 있다.
- 이때 사용되는 기술이 Proxy ARP이다.
- HA가 라우터면 상관이 없는데 라우터 밑에 노드라면 라우터가 ARP로 10.0.0.9에게 보내려고 시도할 것이다. 이 패킷을 HA가 가로채야 한다. 그래서 라우터가 10.0.0.9에게 보내려고 ARP로 MAC주소를 찾으려하면 HA가 자기의 맥주소를 대신 보낸다. 라우터 입장에서는 이동호스트의 움직임 여부와 관계없이 잘 전달한걸로 알고 있는다.
- HA는 그 패킷을 받아서 터널링으로 FA에게 보낸다.
- 터널링을 빠져나와 추가한 헤더를 떼어내면 목적지 주소는 10.0.0.9로 되어있을 것이다.
- FA가 이 패킷을 받아서 10.0.0.9에게 전달하려고하면 다시 10.0.0.네트워크로 패킷이 전달될 것이다.
- 따라서 터널을 빠져나오면 바로 Hardware주소로 전달되도록 하는 기술이 필요하다.
- 이렇게 이동성을 지원할 수 있지만 더 바람직한 방법이 있다.
- 이동호스트가 FA가 없는 네트워크로 이동할수도 있으니 아예 이동호스트 안에 FA를 넣어버리는 것이다.
- 이를 Collocated COA라고 한다.
- 대신 기존에 밖에 존재하던(이미 ip를 할당받은) FA를 사용하는 것이 아니기 때문에 자체 FA는 새롭게 ip를 할당받아야 한다.
- 터널링, HA, FA의 동작은 동일하게 적용된다.
- 보안 문제가 하나 있는데 이동호스트가 홈에 있는데 FA를 제 3자가 자처하여 패킷을 intercept할 수 있다.
6. 경로 최적화
- 위치 문제를 해결하기 위해 indirection을 활용했다.
- 하지만 이동성 지원때문에 항상 거리에서 손해를 보게 되는데 (triangle routing problem)
- 이동 호스트가 송신자 근처로 간 상황이라면, 심지어 데이터를 많이 보낸다면 정말 손해이다.
- 이런 손해를 극복하기 위해 송신자에게 너가 직접 터널링을 하라고 알려주는 방법을 사용할 수 있다.
- COA(FA)로 송신자가 직접 터널링. 최적화는 할 수 있지만 이동호스트의 이동성이 투명하게 유지될 수 없다(이동 여부를 송신자가 알게됨)
'ComputerScience > Network' 카테고리의 다른 글
What happen if you access www.google.com? (0) | 2022.03.03 |
---|---|
컴퓨터통신 - 30. Wireshark을 이용한 IP 패킷 전달 과정 확인 (1) | 2022.02.16 |
컴퓨터통신 - 28. 차세대 IP (IPv6) (0) | 2021.12.06 |
컴퓨터통신 - 27. Forward Table 발전 정리 (0) | 2021.12.06 |
컴퓨터통신 - 26. 인터넷 확장성 문제 (Scalability Issues) (0) | 2021.12.06 |