이 글을 보시는 대부분은 집에서 KT나 SKT, LG U+의 유선 인터넷 서비스를 사용하고 계실 것입니다. 통신사업자에 가입하여 인터넷을 사용한다는 것은 곧 "가입자는 통신사업자에 월정액을 지불하고 통신사업자가 제공하는 인터넷 서비스를 사용한다"는 것인데요. 그렇다면 통신사업자는 가입자를 식별하여 내 가입자인지 아닌지, 혹은 월정액을 잘 내고 있는 가입자인지 아닌지를 판단하고 그에 따라 인터넷 서비스를 제공하는 것이 일반적인 룰일 것입니다.
그렇다면 유선통신사업자는 어떻게 가입자를 식별하여 인터넷 서비스를 제공할지 아니면 차단할지 결정할 수 있을까요?
혹시 기억하실 지 모르겠지만, 예전에는 PPP라는 걸 사용해서 "가입자 식별/인증"과 "IP 주소 할당"을 했었는데요.
근데 PPP를 사용하려면 PC에 PPP 프로그램이 설치되야 하고 매번 PC를 킬 때마다 ID/PW 입력을 해야 하고... 이게 영 불편하잖아요. 또한 PPP 프로그램 인스톨/설정이 잘 안되어 통신사업자에 AS 신청하는 고객이 자꾸 늘어나 통신사업자 입장에서는 AS 비용이 늘어나는 문제(OPEX 증가)도 있었구요.
그래서 지금은 대부분 PPP를 사용하지 않고 DHCP를 사용해서 가입자 단말에 "IP 주소"을 할당합니다.
근데 DHCP 프로토콜은 "가입자 인증" 방법을 제공하지 않습니다. (ID/PW 기반의 인증이 없다는 거죠)
그래서 Option82가 나오게 된 것이구요. 이 DHCP Option 82를 "회선 인증"이라고도 부릅니다.
집안에 PC와 연결된 첫번째 네트웍 장비(DSLAM, OLT 혹은 L2 switch - 우리 집은 L2 switch에 연결됨)에서 Option 82를 지원하게 되면, PC에서 보낸 DHCP 패킷에 이 네트웍 장비가 Option 82 필드를 붙여서 DHCP 서버에 전달합니다.
그리고 DHCP 서버는 Option 82 필드가 유효한 경우에만 가입자에게 IP 주소를 할당해 주고요. 이와 같이 Option82를 통해 가입자를 식별 및 인증을 하게 되는 것입니다.
예를 들어 설명드리겠습니다.
우리집 PC는 KT L2 switch 1번 포트에 연결되어 있습니다. (매달 2만5천원씩 내고 인터넷 사용하는 아주 정상적인 가입자죠)
근데 옆집은 KT 가입자가 아닌데, 관리사무소장이랑 친해서 아파트내 KT L2 switch 있는 곳으로 잠입하여 자기집과 연결된 포트를 KT L2 switch 2번 포트에 연결한 것입니다.(당근 KT 모르게...)
이 경우, 우리집은 정상적으로 KT에 가입한 것이므로 KT가 L2 switch 1번 포트에서 들어오는 DHCP 메시지에는 Option 82 필드를 설정(Provisioning)해 놓았을 것이지만, L2 switch 2번 포트에는 설정을 해 놓지 않았겠죠 (왜냐면 KT 가입자가 연결되어 있지 않은 Port 이므로...)
이 경우 우리 옆집은 PC를 켜도 KT DHCP 서버에서 IP 주소를 할당 받지 못할 것입니다. 왜냐면 DHCP 패킷에 Option 82 필드가 없을테니까요...
(제가 예를 KT로 들었지만, 현재 국내통신사업자는 Option 82를 사용하고 있지 않는 것으로 알고 있습니다. KT의 경우 "신인증"이란 개념으로 가입자를 식별/인증하고 (MAC 기반 인증), SKT, LG U+는 현재 인증을 하고 있지 않는 것으로 알고 있습니다.)
아래 그림은 앞에 설명드린 개념을 도식화한 것입니다. (그림상에 Option 60, 61이 함께 표시되어 있는데 이는 일단 무시하세요~) 가입자와 연결되어 있는 첫번째 네트웍 장비(L2 SW or DSLAM)에서 가입자가 보낸 DHCP 패킷에 Option 82를 붙여 주기 위해서는 다음 기능들이 준비되어 있어야 합니다.
-
먼저 L2 SW/DSLAM/OLT는 DHCP Snoop 기능을 지원해야 합니다. DHCP Snoop이란 쉽게 말해서 "나를 목적지를 오는 패킷(DHCP)이 아닌데 중간에서 이 패킷을 까보고, 필요하면 이 패킷의 필드를 수정 혹은 새로운 필드(Option 82)를 추가하는 기능" 입니다.
-
L2 SW/DSLAM/OLT의 각 가입자 포트마다 서로 다른 Option 82 필드를 붙여 주어야 하는데, 이를 위해 L2 SW/DSLAM/OLT의 각 가입자 포트별로 서로 다른 Option 82 필드가 Provisioning 되어 있어야 합니다.
-
DHCP 서버 역시 Option 82 필드를 미리 DB에 가지고 있어, 유효한 Option 82 필드를 달고 DHCP 패킷(DHCP Discover/DHCP Request)이 들어온 경우에만 이에 대한 응답(DHCP Offer/DHCP Ack)을 주어야 합니다.
설명해주신 DHCP Option 82가 "DSL Line Identification" Traceability와 같은 같은 말인가요?
Access 장비가 DSLAM인 경우, DSLAM에서 DHCP Snooping을 통해 DSL line(DSL port + VPI/VCI) 마다 서로 다른 Option82 string을 붙여 DHCP 서버쪽으로 전달하게 되면, DHCP server는 DSL Line을 구분할 수 있게 되는 것입니다.
아주 쉽게 잘 설명 해 주셨네요.
좋은 글 감사합니다.