며칠 전 사회에서 알게된 좋은 후배님과 기술 토론 중에 후배님이 아래와 같은 얘기를 한 적이 있습니다.
"무선 통신망에서 가입자가 이동을 하면 IP 라우팅망이 이를 인지하고 자동으로 가입자의 위치로 패킷을 전달하는거 아닌가요?"
이 후배님은 잘못 생각을 하고 있었던 거죠.
그래서 총 3회의 연재에 걸쳐 무선 통신망에서 사용자의 이동성을 위한 터널링에 대해 설명 드리고자 합니다.
1편: 이동 서비스를 위해 터널링이 필요한 이유
2편: LTE, WiBro, Wi-Fi의 Tunneling 기술
3편: IP 라우팅 관점에서의 LTE 핸드오버
오늘은 이 중에 "1편: 이동 서비스를 위해 터널링이 필요한 이유"입니다.
유선 통신망: IP Network
위 그림은 유선망을 통한 인터넷 통신을 보여 주고 있습니다.
Router에는 3개의 Interface(ge1, ge2, ge3)가 있고, 각 Interface는 서로 다른 네트워크(10.1.1.0/24, 20.1.1.0/24, 30.1.1.0/24)에 속해 있습니다. (예: ge1에는 10.1.1.254/24, ge2에는 20.1.1.254/24, ge3에는 30.1.1.254/24가 설정됨)
유선 단말(PC)이 사용하는 IP 주소는 그 단말의 위치에 따라 그 네트워크 대역이 결정 됩니다. 위 그림처럼 PC1의 경우 10.1.1.0/24 대역의 네트워크와 연결이 되면 이 PC는 그 대역의 IP 주소 중에 하나인 10.1.1.5/24를 할당 받아(DHCP) 사용하게 됩니다.
만약 PC1이 그 IP 주소를 그대로 유지한 상태에서 20.1.1.0/24 대역의 네트워크로 위치를 옮긴다면(예를 들어, PC1에 고정 IP 주소 10.1.1.5/24를 설정하고 PC2 자리로 이동) 더 이상 통신은 불가능 합니다. 왜냐면 Router는 Destination IP 주소가 10.1.1.5인 패킷은 무조건 10.1.1.0/24 대역에 속한 Interface인 ge1으로 포워딩하기 때문이죠.
그렇다면 PC의 IP 주소를 20.1.1.0/24 대역 중에 하나로 변경하면 통신이 되지 않겠습니까? 당연히 됩니다.
하지만 단말의 IP 주소가 변경되는 순간, 인터넷과 통신하던 단말내의 모든 응용 프로그램들은 IP 주소 변경으로 인하여 Connection이 끊기게 됩니다.
결론적으로 말씀드리고자 하는 포인트는 "IP 라우팅 망에서 단말의 IP 주소 대역은 곧 단말이 위치하는 곳에 따라 결정되어 지고, IP 라우팅 망은 단말의 이동성은 모른다(관심없다)." 입니다.
무선 통신망: Mobility over IP Network
현재 대표적인 무선 통신망은 LTE, WiBro 그리고 Wi-Fi입니다. 단말의 이동성을 위해 기지국과 코어장비간에 터널링을 해 준다는 개념에서 위 3개의 기술은 모두 동일합니다.
하부에 IP Network이 있고, 그 위에 Mobile Network이 존재하게 됩니다.
그래서 L2 Switch에 가입자 PC가 아닌 기지국(LTE: eNB, WiBro: BS, Wi-Fi: AP)이 연결되고, 각 기지국에는 그 위치에 따라 IP 주소가 설정되게 됩니다. (예: 10.1.1.0/24 네트워크와 연결된 기지국은 10.1.1.5를 설정)
그리고 Router에는 IP Anchor 장비(LTE: P-GW, WiBro: ASN-GW, Wi-Fi: AP Controller)가 연결이 되게 됩니다.
단말(SmartPhone)이 10.1.1.5 기지국에 연결이 되고 IP Anchor 장비로 부터 IP 주소 1.1.1.8을 할당받으면, 10.1.1.5 기지국과 IP Anchor 장비간에는 이 단말을 위한 터널(LTE: GTP tunnel, WiBro: GRE tunnel, Wi-Fi: Vendor specific tunnel(비표준))이 생성되게 됩니다(LTE, WiBro의 경우 단말마다 터널이 생성됨). 위 그림에서는 Tunnel 1이 되겠죠.
이 상황에서 인터넷(YouTube 서버)에서 1.1.1.8 단말로 패킷이 오는 경로는 아래와 같게 되며,
IP Anchor에서 10.1.1.5 기지국까지는 터널이 형성되어 IP Network에서는 가입자의 IP 주소가 아닌 터널의 IP 주소 즉, 기지국의 IP 주소인 10.1.1.5를 보고 패킷 포워딩이 됩니다. (Router는 ge1으로 패킷 포워딩)
그 상황에서 단말이 20.1.1.5 기지국으로 이동을 하게 됩니다. 그러면 단말의 이동되었음을 IP Anchor 장비가 알게 되며 이에 따라 IP Anchor 장비는 10.1.1.5 기지국과의 터널(Tunnel 1)을 해제하고, 20.1.1.5 기지국과 터널(Tunnel 2)을 생성하게 됩니다. 20.1.1.5와 터널을 생성한다는 의미는 앞으로 단말 1.1.1.8로 가는 패킷에 대해 IP Anchor 장비는 20.1.1.5와 연결된 터널로 패킷을 전달한다는 것입니다.
물론 가입자 단말의 IP 주소는 변하지 않습니다.
이렇게 되면 패킷의 흐름은 아래와 같이 되는 것이죠.
결국 단말의 이동에 따라 터널의 IP 주소가 변경되고, IP 라우팅 망은 가입자의 IP 주소가 아닌 터널의 IP 주소 기반으로 패킷을 포워딩하게 되어 단말은 IP 주소의 변경 없이 IP 망 위에서 자유롭게 이동이 가능하게 됩니다.
다음 시간에는 LTE, WiBro, 그리고 Wi-Fi의 터널링 프로토콜에 대해서 알아 보도록 하겠습니다.
완전 열심히 답글 달겠습니다! ^^*
좋은글 감사합니다.
위 내용으로 단말이 IP 변경 없이 이동성을 유지 할 수 있다는 것은 잘 이해되었습니다.
그럼 터널링 만으로 Mobile IP동작을 완전히 보장할 수 있는 것인가요?
초보자라 터널링과 Mobile IP동작에 대해 차이점을 알고 싶습니다.
감사합니다.
Mobile IP는 터널을 생성하기 위한 프로토콜로써, 이를 통해 GRE 혹은 IP in IP 터널을 생성할 수 있습니다.
LTE의 경우 EPC(SAE GW)와 RAN(eNB)간에 GTP-U 터널 생성을 위해 GTP-C 프로토콜을 사용합니다.
그림을 정말 잘그리시네요!! 이해가 잘되네요 감사합니다.
쉽게 설명이 되었네요 참으로 감사합니다.
P GW는 변하지 않는다고 하셨는데 굳이 S GW 에서 P GW를 터널링해주는 이유는 뭔가요. 핸드오버시에만 S GW에서 P GW의 주소를 적어주고 다음부터는 전에 보내주었던 주소로 가라 이런식으로는 안되나요? 굳이 PGW의 주소를 다써가면서 데이터를 낭비해야되는게 의문입니다.
와~! 그래프를 토대로 빠짐 없는 설명!! 정말 멋집니다~! 궁금한 내용을 덕분에 잘 이해하고 갑니다!! 감사합니다!
좋은 정보 감사합니다.
많은 도움 되었습니다.