오늘은 LTE망에서 UE에 IP 주소를 할당하는 방법에 대해서 설명 드리겠습니다.
FTTH, Ethernet, DSL과 같은 유선 액세스 망과 WiBro, Wi-Fi와 같은 무선 액세스 망은 모두 IETF 표준 RFC 2131 DHCP 프로토콜을 통해 가입자 단말에 IP 주소를 할당(임대) 해 주는 반면, LTE의 경우 DHCP 프로토콜이 아닌 3GPP 방식으로 UE(가입자 단말)에 IP 주소를 할당해 줍니다.
UE는 다음과 같이 2가지 타입의 IP 주소 중 하나를 할당 받게 됩니다.
UE가 유동 IP 주소 할당 받기: Dynamic IP Allocation
아래 그림의 예에는 2개의 도시(서울, 부산)가 있고, 각 도시에 각각 EPC(MME, S-GW, P-GW)가 있습니다. HSS는 서울에만 있구요. 또한 두 도시는 IP Backbone 망을 통해 연결되어 있습니다.
① Power on UE and get IP address 1.1.1.1 in City 1
# | Message Flow | Message/Action | ||||||||
1 | UE1 -> MME1 | Attach Request (PCO=DNS Server IP Request) | ||||||||
2 | MME1 -> HSS | Update Location Request | ||||||||
3 | HSS -> MME1 | Update Location Answer | ||||||||
4 | MME1 | Select P-GW1 for UE1 | ||||||||
5 | MME1 -> S-GW1 | Create Session Request (PDN address=0.0.0.0, PCO, P-GW IP=P-GW1) | ||||||||
6 | S-GW1 -> P-GW1 | Create Session Request (PDN address=0.0.0.0, PCO=DNS Server IP Request) | ||||||||
7 |
P-GW1 |
UE IP address Allocation (1.1.1.1) based on its local IP pool, Deliver UE IP as well as DNS Server IP address |
||||||||
8 | P-GW1 -> S-GW1 | Create Session Response (PDN address=1.1.1.1, DNS IP=10.1.1.1/10.1.1.2) | ||||||||
9 | S-GW1 -> MME1 | Create Session Response (PDN address=1.1.1.1, DNS IP=10.1.1.1/10.1.1.2) | ||||||||
10 | MME1 -> UE1 | Attach Accept (PDN address=1.1.1.1, DNS IP=10.1.1.1/10.1.1.2) |
② Power off UE and move to City 2
③ Power on UE and get IP address 2.2.2.2 in City 2
# | Message Flow | Message/Action | ||||||||
1 | UE1 -> MME2 | Attach Request (PCO=DNS Server IP Request) | ||||||||
2 | MME2 -> HSS | Update Location Request | ||||||||
3 | HSS -> MME2 | Update Location Answer | ||||||||
4 | MME2 | Select P-GW2 for UE1 | ||||||||
5 | MME2 -> S-GW2 | Create Session Request (PDN address=0.0.0.0, PCO, P-GW IP=P-GW2) | ||||||||
6 | S-GW2 -> P-GW2 | Create Session Request (PDN address=0.0.0.0, PCO=DNS Server IP Request) | ||||||||
7 |
P-GW2 |
UE IP address Allocation (2.2.2.2) based on its local IP pool, Deliver UE IP as well as DNS Server IP address |
||||||||
8 | P-GW2 -> S-GW2 | Create Session Response (PDN address=2.2.2.2, DNS IP=10.1.1.1/10.1.1.2) | ||||||||
9 | S-GW2 -> MME2 | Create Session Response (PDN address=2.2.2.2, DNS IP=10.1.1.1/10.1.1.2) | ||||||||
10 | MME2 -> UE1 | Attach Accept (PDN address=2.2.2.2, DNS IP=10.1.1.1/10.1.1.2) |
UE IP 할당 방식 비교
유동 IP 할당 (Dynamic IP Allocation) | 고정 IP 할당 (Static IP Allocation) | ||||||||
누가 UE IP를 할당? |
P-GW가 할당 - P-GW에 local IP pool이 있어, 여기서 아무거나 하나 골라 할당 |
HSS가 할당 - 가입자 Subscriber Profile에 고정 IP 주소가 Provisioning되어 있어 이 주소를 줌 |
|||||||
P-GW 선택은?
|
MME에 의해서 Local P-GW 선택 - MME가 동일 도시에 있는 P-GW 중에 선택 |
HSS에 의해서 Static P-GW 선택 - HSS의 가입자 Subscriber Profile에 P-GW ID가 Provisioning되어 있음 - 따라서 MME는 HSS가 알려준 P-GW를 사용 |
다음 시간에는 LTE 망에서 UE가 고정 IP 주소를 할당 받는 절차에 대해서 설명 드리도록 하겠습니다.
궁금한 점이 있어서 질문 드립니다.
1. UE 전원 OFF 상태에서 이동이 아닌 ON 상태에서 서울->부산 이동일 경우 UE IP 할당은 어떻게 되는지?
2. Multi PDN 으로 IP를 2개 받아서 사용하는 경우가 있는것으로 들었습니다. 이와 관련된 내용 알려주시면 감사하겠습니다.
수고하세요.
Handover의 경우 UE의 IP 주소는 변하지 않습니다. 그래야 끊김없이 인터넷 사용이 가능하니까요 (만약 UE의 IP 주소가 바뀌면 사용하던 응용 프로그램들이 모두 접속이 끊기게 됩니다.)
따라서 위 그림에서 UE의 전원을 끄지 않고 서울 -> 부산으로 이동을 하게 되면,
UE는 서울에 있는 P-GW1에서 할당해 준 IP 주소(1.1.1.1)를 계속 가지고 부산으로 가게 됩니다.
이 경우 인터넷 흐름은 다음과 같이 됩니다.
"UE1(부산) - eNB(부산) - S-GW2(부산) - P-GW1(서울) - Internet"
이론적으로는 APN마다 서로 다른 IP 주소를 UE가 할당 받을 수 있는데요. 예를 들어, 인터넷용 APN 접속을 위한 IP 주소 한개, IMS(요즘 VoLTE 얘기들 많이 하죠. SIP 기반으로 VoLTE를 하기 위한 Service Element) APN 접속을 위한 IP 주소 한개... 이런식으로 2개의 IP 주소를 받아 올 수도 있는데요.
이 경우, 각 APN 별로 EPS Bearer가 생성이 되고, 각 EPS Bearer 마다 UE는 IP 주소를 받아 오게 됩니다.
다음에 시간이 되면 이와 같이 Multi PDN으로 IP 주소를 2개 받는 경우에 대한 글도 한번 써보도록 하겠습니다~*
감사합니다.
좋은 정보 감사합니다.
IP와 DNS는 할당을 받는데 단말에서 gateway와 subnet mask는 어떻게 결정하는건가요?
100% 확신은 없습니다. 혹시 제가 잘못 알고 있는 부분이 있으면 아래 Comment에 의견 부탁드릴께요~*
우리가 사용하는 유선 PC는 L2 layer가 802.3 Ethernet입니다. 즉, IP over Ethernet이죠.
그리고 Ethernet망에서는 항상 Ethernet header에 Source MAC(송신 단말의 MAC)과 Destination MAC(수신 단말 혹은 Default Gateway Router의 MAC)이 붙어야 하구요.
말씀하신 Default Gateway IP 주소와 Subnet Mask는 모두 Ethernet 환경(혹은 802.11 Wi-Fi 환경)에서 필요한 정보입니다.
(1) Subnet Mask의 필요성: Destination IP 주소가 나와 동일 LAN(network)에 있는지 아닌지를 판단하기 위함입니다. 즉, {Destination IP 주소와 Subnet Mask를 AND 연산}을 하여 그 결과가 {Source IP 주소 AND Subnet Mask}와 동일하면 나와 동일 LAN에 있는 것이고, 그 결과가 다르면 다른 LAN에 있는 것입니다.
만약 동일 LAN에 있으면 Destination IP 주소에 대해 ARP request를 하여 해당 Destination IP 주소를 가진 단말의 MAC 주소를 얻어와 Destination MAC 주소에 그 값을 실어 패킷을 보내면 되구요.
다른 LAN에 있다면 Default Gateway(보통 라우터)의 IP 주소에 대해 ARP request를 하여 Default Gateway의 MAC 주소를 얻어와 그 값을 Destination MAC 주소에 실어 패킷을 보내게 됩니다.
(2) Default Gateway의 필요성: 앞서 말씀드린 바와 같이 나와 다른 LAN에 위치한 단말로 패킷을 보내기 위해서는 Default Gateway의 MAC 주소를 알아야 하고 이를 위해서는 먼저 Default Gateway의 IP 주소를 알아야 이 IP 주소로 ARP request를 보내게 됩니다.
위의 설명은 아래 링크를 클릭하시면 좀 더 자세히 보실 수 있구요.
https://www.netmanias.com/bbs/view.php?id=blog&no=277
반면 LTE는 L2 layer가 당연히 Ethernet이 아니죠. 즉, MAC 주소의 개념이 없습니다.
LTE는 UE와 P-GW간에 point-to-point link의 개념으로 생각하시면 됩니다.
즉, UE가 보내는 모든 패킷은 GTP 터널을 통해 P-GW로 가는 것이죠.
따라서 UE는 패킷을 보낼때 Subnet Mask와 비교하여 동일 network에 있는지 판단할 필요도 없고, 또한 Default Gateway의 IP 주소도 알 필요가 없습니다.
그래서 P-GW가 UE로 전달해 주는 정보는 IP 주소와 DNS 주소일 뿐, Default Gateway와 Subnet Mask 주소는 필요 없습니다.
이제 마지막으로 궁금한 점은 UE의 routing table이 어떻게 생겼을까? 인데요...
자료를 찾아봐도 없네요... -.-;;
그러면 서울에서도 부산지역 아이피를 가져다 쓸수있는 방법도 있나요 ?
대박 정보 감사드립니다. 많이 배우고 갑니다!