| 리포트 | 기술문서 | 테크-블로그 | 글로벌 블로그 | 원샷 갤러리 | 통신 방송 통계  | 한국 ICT 기업 총람 |

제품 검색

| 네트워크/통신 뉴스 | 기술자료실 | 자유게시판 |  
 
 
섹션 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/UHD IoT SDN/NFV Wi-Fi Video Streaming KT SK Telecom LG U+ OTT Network Protocol CDN YouTube Data Center
 
스폰서채널 |

 

  스폰서채널 서비스란?
Hot-Lining을 위한 HTTP 302 Redirection 기술 소개
HTTP 302 Redirection for Hot-Lining
July 23, 2012 | By 유창모 (cmyoo@netmanias.com)
banner
코멘트 (3)
11

지난 시간에 무선 통신 사업자망에서의 HTTP 302 Redirection을 이용한 Hot-Lining 사례를 소개해 드렸었는데요.

오늘은 HTTP 302 Redirection 로직에 대해서 좀 더 자세히 알아 보는 시간을 가지도록 하겠습니다.

 

Hot-Lining Rule 설정

 

 

지난 시간 설명과 같이 Hot-Lining은 사용자의 트래픽을 사업자가 의도한 곳 즉, Captive Portal로 그 목적지를 변경하는 행위이며, 이를 위해 Hot-Lining Device(P-GW, DPI, AP, APC 등의 장비)에는 다음과 같은 룰이 설정되어야 합니다.

참고: P-GW나 DPI는 하드웨어 기반으로 Hot-Lining을 수행하고, AP나 APC는 소프트웨어 기반으로 이 기능을 수행합니다.

 

[1] Pass Condition

  • 사용자 단말에서 특정 서버(예. www.naver.com)로 HTTP 패킷이 나가기 전에 2가지 과정이 선행됩니다. 첫째 접속하려는 서버의 IP 주소를 알기 위해 DNS Query를 하고, 둘째 해당 서버와 80 포트로 TCP 연결(TCP SYN, SYN ACK & ACK 패킷)을 맺는 것입니다. 따라서 기본적으로 Hot-Lining Device는 이 두 과정에 대해 단말이 보내는 패킷에 대해 허용(pass)해야 합니다.
  • 그 다음이 해당 서버(www.naver.com)와의 80 포트로 TCP 연결 해제(TCP FIN & ACK)도 가능해야 하므로 역시 이 과정에서 단말이 보내는 패킷에 대해서도 허용해야 합니다. (뒤에서 설명 드리겠지만 HTTP 302 Redirection이 되면 기존에 접속된 서버(www.naver.com)와의 TCP 연결 해제를 위해 단말은 TCP FIN 패킷을 보내므로 이 패킷을 허용하는 것입니다.)
  • 마지막으로 사용자 단말이 보낸 패킷이 HTTP GET(TCP Destination Port # = 80)이고 HTTP 헤더에 Host 필드 값이 미리 설정된 값(예. portal.lguplus.com)과 동일한 경우 이 패킷은 허용합니다. 즉, Hot-Lining 시킬 목적지로 갈 패킷인 경우 허용하는 것이지요.

[2] HTTP 302 Redirection Condition 

  • 사용자 단말이 보낸 패킷이 HTTP GET(TCP Destination Port # = 80)이지만 HTTP 헤더에 Host 필드 값이 미리 설정된 값( portal.lguplus.com)이 아닌 경우(예. www.naver.com) 이 패킷에 대해서는 Hot-Lining Device가 HTTP 헤더 내의 Location 필드에 portal.lguplus.com을 기록하여 HTTP 302 Found 패킷을 단말로 보냅니다. 따라서 단말은 원래 의도한 목적지(www.naver.com)로 가지 않고 Location 필드에 기록된 Host로 가게 됩니다.

[3] Drop Condition 

  • 위 [1][2] 조건에 만족하지 않는 패킷은 다 폐기(drop) 합니다.

 

LTE는 해당 사항이 없지만 만약 Wi-Fi 망에서 External DHCP 서버를 운영하는 경우, 단말이 IP 주소를 받아와야 HTTP 패킷을 보낼 수 있으므로 이 경우 DHCP 패킷(UDP Source Port # = 68, UDP Destination Port # = 67)에 대해서도 Pass Condition에 넣어 주어야 합니다.

 

 

Hot-Lining Call Flow

 

 

전형적인 Hot-Lining 흐름의 예입니다.

 

무선망 접속 후 사용자는 웹브라우저를 통해 www.naver.com에 접속하려 합니다.

[1] 단말은 DNS Query를 통해 www.naver.com의 IP 주소 20.1.1.1을 알게 되고,

[2] 20.1.1.1과 80 포트로 TCP 연결을 합니다. (TCP 3-Way Handshake)

[3] 그런 후 www.naver.com으로 HTTP GET 메시지를 보내는데, 이 패킷을 수신한 Hot-Lining Device는 Location 필드에 portal.lguplus.com을 담아 단말로 HTTP 302 Found 메시지로 응답합니다. 이 응답 메시지의 Source IP 주소는 20.1.1.1입니다. 마치 www.naver.com이 단말로 HTTP 302 Found 메시지를 보낸 것처럼 위장을 하는 것이지요.

[4] 단말은 20.1.1.1과의 80 포트 TCP 연결을 해제합니다.

[5] 그리고 DNS Query를 통해 portal.lguplus.com의 IP 주소 10.1.1.1을 알게 되고,

[6] 10.1.1.1과 80 포트로 TCP 연결을 합니다. (TCP 3-Way Handshake)

[7] 그리고 portal.lguplus.com에 접속되게 됩니다.

 

결국 [3]번 과정에서 Hot-Lining Device는 portal.lguplus.com외의 접속은 허용하지 않게 되므로 결과적으로 사용자는 사업자가 지정한 곳(Captive Portal) 외에는 접속이 불가능하게 됩니다.

 

아래는 위 그림에 [3]번 절차인 HTTP 302 Redirection 메시지 예제 입니다.

 

7. HTTP GET

Internet Protocol Version 4, Src: 1.1.1.1 (1.1.1.1), Dst: 20.1.1.1 (20.1.1.1)
Transmission Control Protocol, Src Port: 57895 (57895), Dst Port: http (80)
Hypertext Transfer Protocol
    GET / HTTP/1.1
        [Expert Info (Chat/Sequence): GET / HTTP/1.1]
        Request Method: GET
        Request URI: /
        Request Version: HTTP/1.1
    Host: www.naver.com 

 

8. HTTP 302 Found

Internet Protocol Version 4, Src: 20.1.1.1 (20.1.1.1), Dst: 1.1.1.1 (1.1.1.1)
Transmission Control Protocol, Src Port: http (80), Dst Port: 57895 (57895)
Hypertext Transfer Protocol
    HTTP/1.1 302 FOUND
        [Expert Info (Chat/Sequence): HTTP/1.1 302 FOUND]
        Request Version: HTTP/1.1
        Status Code: 302
        Response Phrase: FOUND
    Location: http://portal.lguplus.com

 

궁금이 2012-07-24 09:22:41
8번 패킷의 sequence number 와 9번 패킷의 sequence number를 DPI 장비에서 바꾸어 주는 것인가요? 만약 그렇지 않다면 20.1.1.1에서는 8번 패킷의 ack sequence number 가 잘못된 값이라고 판단할 것이고, 마찬가지로 1.1.1.1에서도 9번 패킷의 sequence number 가 잘못된 것이라고 판단할 것 같습니다.
넷매니아즈 2012-07-24 21:06:24
제가 미처 생각지 못한 질문이네요! 훌륭하십니다. 궁금이님.

이론적으로는 궁금이님 말씀이 맞습니다.
6번, 7번 과정에서 TCP sequence #가 증가하였으므로 (근데 이를 20.1.1.1 서버는 모르고 있구요),
따라서 8번 9번 과정에서 Hot-Lining device가 sequence #를 조절해 주어야 합니다.
만약 그렇게 안하면 단말과 서버(20.1.1.1) 양쪽에 TCP session이 끊기지 못하고 일정 시간 동안 garbage state가 남아 있을 것으로 생각이 듭니다.

이제 현실의 구현을 살펴 보면요.
AP 벤더(국내 벤더) 한곳, DPI 벤더(외산 벤더) 한곳에 확인 결과 sequence #를 변경하지 않는다고 하네요.
그 이유는 이를 위해서 TCP session을 일일히 관리 해야 하는데 이 구현이 복잡하다고 합니다.
궁끔 2013-04-13 16:37:03
안녕하세요
내용이 너무 좋네요
궁금한게 있는데 AP 단에서는 hotlining을 하기 위해서
소프트웨어로 구현하신다고 하셨는데, 만약 hotlining을 구현하려면
직접 AP를 이용해서 소프트웨어적으로 구현을 해야하나요???
아니면 hotlining을 지원하는 AP가 따로 있는 건가요???
Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.
View All (969)
5G (67) AI (5) ALTO (1) AR (2) ARP (6) AT&T (1) Akamai (5) Authentication (5) BT (1) Backhaul (2) Big Data (2) Bridging (5) C-RAN/Fronthaul (17) CDN (20) CIoT (2) CPRI (6) Carrier Aggregation (5) Charging (2) China Mobile (2) Cisco (6) CoMP (3) Comcast (1) DHCP (6) DNS (15) Data Center (15) EDGE (10) EMM (1) EPS Bearer (7) Ethernet (3) FTTH (8) GSLB (5) Gigabit Internet (17) Google (17) Google Global Cache (8) Google TV (1) HLS (5) HTTP (5) HTTP Adaptive Streaming (7) HTTP Progressive Download (2) Handover (5) Huawei (1) IGMP (3) IP (6) IP Allocation (8) IP Routing (20) IPSec (4) IPTV (25) IoST (2) IoT (44) KT (45) Korea (8) Korea ICT Vendor (1) L3 Switch (5) LG U+ (24) LTE (99) LTE-A (10) LTE-A Pro (1) LTE-M (1) LTE-U (3) LoRa (5) MEC (10) MPLS (3) MWC 2013 (1) MWC 2015 (3) MWC 2016 (2) MWC 2017 (1) Mobile IPTV (1) Multi-Screen (1) Multicast (2) NAT (9) NB-IoT (6) NTT Docomo (1) Netflix (5) Network Protocol (49) Network Slicing (3) OSPF (3) OTT (20) Operator CDN (1) P2P (3) PS-LTE (3) Pooq (2) QoS (5) RCS (1) RRH (1) Request Routing (3) SD-WAN (8) SDN/NFV (34) SK Broadband (1) SK Telecom (38) Samsung (2) Security (8) Self-Driving (3) Shortest Path Tree (2) Small Cell (3) Spectrum Sharing (1) TAU (2) Transparent Caching (9) UHD (7) VLAN (2) VPN (3) VR (3) Video Streaming (22) VoLTE (1) VoWiFi (1) WAN Optimization (1) Wi-Fi (30) WiBro(WiMAX) (2) YouTube (16) eICIC (1) eMBMS (1) ePDG (6) u+ tv G (4) 로컬 5G (1)

 

 

     
         
     

 

     
     

넷매니아즈 회원 가입 하기

2019년 1월 현재 넷매니아즈 회원은 49,000+분입니다.

 

넷매니아즈 회원 가입을 하시면,

► 넷매니아즈 신규 컨텐츠 발행 소식 등의 정보를

   이메일 뉴스레터로 발송해드립니다.

► 넷매니아즈의 모든 컨텐츠를 pdf 파일로 다운로드

   받으실 수 있습니다. 

     
     

 

     
         
     

 

 

비밀번호 확인
코멘트 작성시 등록하신 비밀번호를 입력하여주세요.
비밀번호