맨위로가기

계층 2 터널링 프로토콜

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

계층 2 터널링 프로토콜(L2TP)은 1999년에 제안된 표준 프로토콜로, 시스코의 L2F와 마이크로소프트의 PPTP에서 파생되었다. L2TP는 사용자 데이터그램 프로토콜(UDP) 데이터그램 내에서 페이로드와 L2TP 헤더를 전송하며, 일반적으로 L2TP 터널 내에서 PPP 세션을 전달한다. L2TP는 기밀성이나 강력한 인증을 제공하지 않기 때문에 IPsec과 함께 사용하여 L2TP 패킷을 보호하는 경우가 많으며, 이를 L2TP/IPsec이라고 한다. L2TP는 임의, 필수(수신 호출, 원격 다이얼), 멀티홉 연결의 네 가지 터널링 모델을 지원하며, L2TP 패킷은 플래그, ID, 시퀀스 번호, 페이로드 데이터 등으로 구성된다. L2TP는 윈도우, 리눅스, macOS 등 다양한 운영 체제에서 구현되며, 인터넷 서비스 제공업체(ISP)가 ADSL 또는 케이블 인터넷 서비스를 재판매할 때 사용되기도 한다.

2. 역사

L2TP는 1999년에 제안된 표준 RFC 2661로 게시되었으며, 시스코의 레이어 2 포워딩 프로토콜(L2F) 및 마이크로소프트점대점 터널링 프로토콜(PPTP)에서 기원했다.[2] 2005년에는 추가 보안 기능, 향상된 캡슐화, 프레임 릴레이, 이더넷, ATM 등 다양한 데이터 링크를 지원하는 L2TPv3(RFC 3931)이 제안되었다.

3. 설명

페이로드 및 L2TP 헤더를 포함한 전체 L2TP 패킷은 사용자 데이터그램 프로토콜(UDP) 데이터그램 내에서 전송된다. UDP(TCP가 아닌)를 통한 전송의 장점은 TCP 멜트다운 문제를 피할 수 있다는 것이다.[11][3][4] L2TP 터널 내에서 PPP 세션을 전달하는 것이 일반적이다. L2TP는 자체적으로 기밀성 또는 강력한 인증을 제공하지 않는다. IPsec은 기밀성, 인증 및 무결성을 제공하여 L2TP 패킷을 보호하는 데 자주 사용된다. 이 두 프로토콜의 조합은 일반적으로 L2TP/IPsec로 알려져 있다.

L2TP 터널의 두 끝점을 L2TP access concentrator(LAC) 및 L2TP 네트워크 서버(LNS)라고 한다. LNS는 새 터널을 기다린다. 터널이 생성되면 피어 간의 네트워크 트래픽은 쌍방향이다. 네트워킹에 유용하기 위해 상위 수준 프로토콜이 L2TP 터널을 통해 실행된다. 이를 용이하게 하기 위해 L2TP ''세션''은 PPP와 같은 각 상위 수준 프로토콜에 대한 터널 내에서 생성된다. LAC 또는 LNS가 세션을 시작할 수 있다. 각 세션의 트래픽은 L2TP에 의해 격리되므로 단일 터널에 여러 가상 네트워크를 설정할 수 있다.

L2TP 터널 내에서 교환되는 패킷은 ''제어 패킷'' 또는 ''데이터 패킷''으로 분류된다. L2TP는 제어 패킷에 대한 신뢰성 기능을 제공하지만 데이터 패킷에 대한 신뢰성은 제공하지 않는다. 신뢰성은 원하는 경우 L2TP 터널의 각 세션 내에서 실행되는 중첩 프로토콜에 의해 제공되어야 한다.

L2TP는 가상 사설망(VPN)을 생성하여 원격 클라이언트를 회사 네트워크에 연결할 수 있도록 한다.[12][5]

4. 터널링 모델

L2TP 터널은 전체 PPP 세션 또는 두 세그먼트 세션 중 한 세그먼트에서만 확장할 수 있다. 이는 다음과 같은 네 가지 터널링 모델로 나타낼 수 있다.[13]


  • 자발적 터널 (voluntary tunnel)
  • 강제 터널 — 수신 호출 (compulsory tunnel — incoming call)
  • 강제 터널 — 원격 다이얼 (compulsory tunnel — remote dial)
  • L2TP 멀티홉 연결 (L2TP multihop connection)

임의 터널 모드에서는 사용자가 터널을 생성하며, 일반적인 L2TP 사용은 LAC (클라이언트)를 활성화한다. 사용자는 L2TP 패킷을 인터넷 서비스 제공업체(ISP)로 보내 LNS (네트워크 서버)로 전달한다. ISP는 L2TP를 지원할 필요가 없으며, 단순히 L2TP 패킷을 LAC와 LNS 사이에서 전달할 수 있으면 된다. LAC 클라이언트는 사실상 원격 클라이언트와 마찬가지로 같은 시스템에 존재하는 L2TP 터널의 이니시에이터 역할을 한다. L2TP 터널은 L2TP 클라이언트에서 LNS까지 PPP 세션 전체에 걸쳐 설정된다.
필수 터널 모델의 수신 호출에서는 터널이 ISP의 LAC와 LNS 홈 게이트웨이 사이에서 생성된다. 기업은 VPN을 사용하는 원격 사용자에게 회사 서버에 접근할 수 있는 계정으로 로그인할 수 있도록 한다. 결과적으로, 사용자는 PPP 패킷을 ISP (LAC)에서 L2TP로 캡슐화하여 터널을 통해 LNS로 보낸다. 필수 터널링의 경우, ISP는 L2TP를 수용할 수 있어야 한다. 이 모델에서는 터널이 ISP와 LNS 사이의 PPP 세션 세그먼트에만 설정된다.
필수 터널 모델의 발신 호출에서는 홈 게이트웨이 (LNS)가 ISP (LAC)로 터널을 시작(호출 발신)하고, PPP가 활성화된 원격 사용자인 클라이언트에 로컬 호출을 하도록 ISP에 지시한다. 이 모델은 원격 PPP 응답 클라이언트가 ISP와 불변의 기본 전화 번호를 갖는 경우를 위해 설계되었다. 이 모델은 인터넷 상에 존재하는 회사에서 다이얼업 연결이 필요한 원격 사무실과의 연결을 설정해야 할 때 사용될 것으로 예상되었다.

이 모델에서 터널은 LNS와 ISP 간의 PPP 세션 세그먼트에만 설정된다.
L2TP 멀티 홉 연결은 클라이언트 대신 LAC나 LNS가 L2TP 트래픽을 리다이렉션하는 방식이다. 멀티 홉 연결은 L2TP 멀티 홉 게이트웨이를 사용하여 설정된다. 터널은 클라이언트인 LAC에서 L2TP 멀티 홉 게이트웨이까지, 그리고 L2TP 멀티 홉 게이트웨이와 상대 LNS 간에 설정된 또 다른 터널에 의해 구축된다. 클라이언트인 LAC와 LNS 사이의 L2TP 트래픽은 게이트웨이를 통과하여 서로 리다이렉션된다.

5. L2TP 패킷 구조

L2TP 패킷은 다음과 같이 구성된다.

비트 0–15비트 16–31
플래그 및 버전 정보길이 (선택 사항)
터널 ID세션 ID
Ns (선택 사항)Nr (선택 사항)
오프셋 크기 (선택 사항)오프셋 패드 (선택 사항)......
페이로드 데이터



각 필드의 의미는 다음과 같다.


  • 플래그 및 버전: 데이터/제어 패킷과 길이, 시퀀스 및 오프셋 필드의 존재 여부를 나타내는 제어 플래그이다.
  • 길이 (선택 사항): 메시지의 총 길이(바이트)이며, 길이 플래그가 설정된 경우에만 존재한다.
  • 터널 ID: 제어 연결의 식별자를 나타낸다.
  • 세션 ID: 터널 내 세션의 식별자를 나타낸다.
  • Ns (선택 사항): 이 데이터 또는 제어 메시지의 시퀀스 번호이며, 0부터 시작하여 각 메시지가 전송될 때마다 1씩 증가한다(모듈로 216). 시퀀스 플래그가 설정된 경우에만 존재한다.
  • Nr (선택 사항): 수신될 것으로 예상되는 메시지의 시퀀스 번호이다. Nr은 마지막으로 수신된 순서대로 된 메시지의 Ns에 1을 더한 값(모듈로 216)으로 설정된다. 데이터 메시지에서 Nr은 예약되어 있으며, 존재하는 경우(S 비트로 표시됨) 수신 시 무시해야 한다.
  • 오프셋 크기 (선택 사항): L2TP 헤더 이후 페이로드 데이터의 위치를 지정한다. 오프셋 필드가 있는 경우 L2TP 헤더는 오프셋 패딩의 마지막 바이트 뒤에서 끝난다. 이 필드는 오프셋 플래그가 설정된 경우 존재한다.
  • 오프셋 패드 (선택 사항): 오프셋 크기에 의해 지정된 가변 길이이다. 이 필드의 내용은 정의되지 않았다.
  • 페이로드 데이터: 가변 길이 (최대 페이로드 크기 = UDP 패킷 최대 크기 - L2TP 헤더 크기)

6. L2TP 패킷 교환

L2TP 연결 설정 시, 서버와 클라이언트 간에는 각 방향에 대한 터널 및 세션을 교환하기 위해 많은 제어 패킷이 교환된다. 한 피어는 이러한 제어 패킷을 통해 다른 피어에게 특정 터널 및 세션 ID를 할당하도록 요청한다. 그런 다음 이 터널과 세션 ID를 사용하여 데이터 패킷을 압축된 PPP 프레임과 페이로드로 교환한다.

자의적 터널링 방식에서 터널 및 세션을 설정하기 전에 핸드셰이킹을 위해 LAC와 LNS 간에 교환되는 L2TP 제어 메시지 목록은 다음과 같다.

7. L2TP/IPsec

L2TP 프로토콜은 자체적으로 기밀성을 제공하지 않기 때문에, IPsec과 함께 구현되는 경우가 많다. 이를 L2TP/IPsec이라고 하며, IETF RFC 3193에 표준화되어 있다. L2TP/IPsec에서는 IPsec이 보안 채널을 제공하고, L2TP는 터널을 제공한다.[11]

L2TP/IPsec VPN을 설정하는 과정은 다음과 같다.

단계설명
1인터넷 키 교환(IKE)을 통해 IPsec 보안 연결(SA)을 협상한다. 이는 UDP 포트 500을 통해 수행되며, 일반적으로 사전 공유 키, 공개 키 또는 X.509 인증서를 양쪽 끝에서 사용한다.
2전송 모드에서 Encapsulating Security Payload(ESP) 통신을 설정한다. ESP의 IP 프로토콜 번호는 50이다. 이 시점에서 보안 채널이 설정되지만, 터널링은 발생하지 않는다.
3SA 끝점 간의 L2TP 터널 협상 및 설정을 한다. 매개변수의 실제 협상은 IPsec 암호화 내에서 SA의 보안 채널을 통해 이루어진다. L2TP는 UDP 포트 1701을 사용한다.[8]



프로세스가 완료되면, 끝점 간의 L2TP 패킷은 IPsec에 의해 캡슐화된다. L2TP 패킷 자체는 IPsec 패킷 내에 래핑되고 숨겨져 있기 때문에, 원래 소스 및 대상 IP 주소는 패킷 내에서 암호화된다. 또한 끝점 사이의 방화벽에서 UDP 포트 1701을 열 필요가 없다. 끝점에서만 발생하는 IPsec 데이터가 해독되고 제거될 때까지 내부 패킷이 작동하지 않기 때문이다.

L2TP/IPsec에서 잠재적인 혼동 지점은 '''터널''' 및 '''보안 채널'''이라는 용어의 사용이다. '''터널 모드'''라는 용어는 한 네트워크의 변경되지 않은 패킷이 다른 네트워크를 통해 전송되도록 하는 채널을 나타낸다. L2TP/PPP의 경우, L2TP/PPP 패킷이 IP를 통해 전송되도록 한다. '''보안 채널'''은 모든 데이터의 기밀성이 보장되는 연결을 의미한다. L2TP/IPsec에서는 먼저 IPsec이 보안 채널을 제공하고, L2TP는 터널을 제공한다.

8. Windows 구현

Windows 2000부터 L2TP에 대한 기본 지원을 제공한다(제어판에서 구성 가능).[1] Windows Vista에는 "고급 보안이 포함된 Windows 방화벽"(WFwAS)이라는 MMC 스냅인과 " netsh advfirewall" 명령줄 도구라는 두 가지 대체 도구가 추가되었다.[1] WFwAS 및 netsh 명령 모두의 한 가지 제한 사항은 서버를 IP 주소로 지정해야 한다는 것이다.[1] Windows 10에는 PowerShell 명령인 [https://docs.microsoft.com/en-us/powershell/module/vpnclient/add-vpnconnection?view=win10-ps Add-VpnConnection] 및 [https://docs.microsoft.com/en-us/powershell/module/vpnclient/set-vpnconnectionipsecconfiguration?view=win10-ps Set-VpnConnectionIPsecConfiguration]이 추가되었다.[1] 서버가 NAT-T 장치 뒤에 있는 경우 클라이언트와 서버에서 레지스트리 키를 만들어야 한다.[1] [https://support.microsoft.com/en-us/help/926179/how-to-configure-an-l2tp-ipsec-server-behind-a-nat-t-device-in-windows]

9. ISP 네트워크의 L2TP

L2TP는 ADSL 또는 케이블을 통한 인터넷 서비스가 '재판매' 될 때 ISP가 자주 사용한다. 최종 사용자로부터 패킷은 도매 네트워크 서비스 공급자의 네트워크를 통해 프로토콜 변환기와 라우터가 결합된 광대역 원격 액세스 서버(BRAS)로 이동한다. 레거시 네트워크에서 최종 사용자 고객 구내 장비에서 BRAS까지의 경로는 ATM 네트워크를 통할 수 있다. 거기서부터 IP 네트워크를 통해 L2TP 터널이 BRAS(LAC 역할)에서 최종 목적지 ISP의 IP 네트워크 경계에 있는 에지 라우터인 LNS까지 실행된다.

L2TP는 ADSL 종단 연결성을 재판매하거나, 케이블 프로바이더(예: 이스라엘의 HOT)가 최종 연결 판매를 위해 사용하는 터널링 기법이다. L2TP 터널은 사용자와 회선을 제공하는 ISP 사이에 존재한다. 따라서, 회선을 제공하고 있는 쪽의 ISP가 전송하고 있는 것처럼 보이지 않는다.

10. RFC 참조

L2TP는 2000년에 RFC 2661로 제안되었으며, 주로 시스코의 L2F(Layer 2 Forwarding Protocol)와 마이크로소프트점대점 터널링 프로토콜(PPTP)에서 기원했다.[2] 2005년에는 L2TPv3이 RFC 3931로 제안되었다. L2TPv3은 추가 보안 기능, 향상된 캡슐화 및 IP 네트워크(예: 프레임 릴레이, 이더넷, ATM 등)를 통해 단순한 점대점 프로토콜(PPP) 이외의 데이터 링크를 전달하는 기능을 제공한다.

11. 구현


  • '''Cisco''': Cisco는 자사의 IOS 12.0T 이상에서 L2TP를 지원한다. 관련 기술 자료는 [https://web.archive.org/web/20090127060833/http://cisco.com/en/US/docs/ios/12_0t/12_0t1/feature/guide/l2tpT.html Cisco L2TP 설명서] 및 [http://www.cisco.com/warp/public/cc/pd/iosw/tech/l2pro_tc.htm Cisco의 기술 요약]에서 확인할 수 있다.
  • '''오픈 소스 및 Linux''':

프로젝트명설명
xl2tpdXelerance에서 개발한 L2TP 데몬
RP-L2TPLinux용 L2TP 클라이언트 및 서버
OpenL2TPLinux 커널 및 사용자 공간에서 실행되는 L2TP 구현
l2tpnsL2TP 네트워크 서버
l2tpd(현재 비활성 상태) L2TP 데몬
ZeroShellLinux 배포판으로, L2TP/IPsec 서버 기능을 제공
mpdFreeBSD용 다중 링크 PPP 데몬
npppdOpenBSD에 포함된 PPP 데몬으로, L2TP 지원
ACCEL-PPPLinux용 PPTP/L2TP 서버


  • '''Microsoft''': Windows 2000 이상 운영 체제에 내장 클라이언트가 포함되어 있다. Windows 98, Windows Me, Windows NT 4.0용으로는 [http://www.microsoft.com/technet/prodtechnol/windows2000serv/support/vpnclientag.mspx Microsoft L2TP/IPsec VPN 클라이언트]를 제공한다.
  • '''Apple''': Mac OS X 10.3 이상 운영 체제에 내장 클라이언트가 포함되어 있다.
  • '''VPDN''': Cisco.com의 [http://www.cisco.com/en/US/tech/tk801/tk703/tsd_technology_support_protocol_home.html VPDN] 관련 자료를 참고할 수 있다.

참조

[1] 간행물 RFC 2661, Layer Two Tunneling Protocol "L2TP" IETF 1999
[2] 웹사이트 Point-to-Point Tunneling Protocol (PPTP) http://www.thenetwor[...] TheNetworkEncyclopedia.com 2014-07-28
[3] 웹사이트 Why TCP Over TCP Is A Bad Idea http://sites.inka.de[...] 2015-10-17
[4] 컨퍼런스 Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency 2005-10
[5] 웹사이트 Cisco Support: Understanding VPDN – Updated Jan 29, 2008 http://www.cisco.com[...]
[6] 웹사이트 IBM Knowledge Center: L2TP multi-hop connection http://publib.boulde[...]
[7] 간행물 2661 IETF 1999
[8] 웹사이트 Service Name and Transport Protocol Port Number Registry http://www.iana.org/[...]
[9] 웹사이트 Protocol Numbers http://www.iana.org/[...]
[10] 간행물 RFC 2661, Layer Two Tunneling Protocol "L2TP" IETF 1999
[11] 웹인용 Why TCP Over TCP Is A Bad Idea http://sites.inka.de[...] 2015-10-17
[12] 웹사이트 Cisco Support: Understanding VPDN – Updated Jan 29, 2008 http://www.cisco.com[...]
[13] 웹사이트 IBM Knowledge Center: L2TP multi-hop connection http://publib.boulde[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com