레이어 2 터널링 프로토콜
Layer 2 Tunneling Protocol컴퓨터 네트워킹에서 L2TP(Layer 2 Tunneling Protocol)는 Virtual Private Network(VPN; 가상개인 네트워크)를 지원하기 위해 또는 ISP에 의한 서비스 제공의 일부로 사용되는 터널링 프로토콜입니다.자체 제어 메시지(옵션 사전 공유 비밀 사용)에만 암호화('숨김')를 사용하고 콘텐츠 자체 암호화 또는 기밀성을 제공하지 않습니다.오히려 레이어 2(암호화할 수 있음)에 대한 터널을 제공하고 터널 자체는 [1]IPsec 등의 레이어3 암호화 프로토콜을 통해 전달될 수 있습니다.
인터넷 프로토콜 스위트 |
---|
응용 프로그램레이어 |
트랜스포트 레이어 |
인터넷 레이어 |
링크 레이어 |
역사
2000년에 제안된 표준 RFC 2661로 발행된 L2TP는 주로 포인트 투 포인트 통신을 위한 2개의 오래된 터널링 프로토콜에서 유래했습니다.시스코의 Layer 2 Forwarding Protocol(L2F)과 Microsoft의[2] Point-to-Point Tunneling Protocol(PPTP)입니다.이 프로토콜의 새로운 버전인 L2TPv3는 2005년에 제안된 표준 RFC 3931로 제시되었습니다.L2TPv3는 추가 보안 기능, 개선된 캡슐화 및 IP 네트워크(예를 들어 프레임 릴레이, 이더넷, ATM 등)를 통한 단순한 Point-to-Point Protocol(PPP) 이외의 데이터 링크 전송 기능을 제공합니다.
묘사
페이로드 및 L2TP 헤더를 포함한 L2TP 패킷 전체가 UDP 데이터그램 내에서 전송됩니다.TCP가 아닌 UDP를 통한 전송의 장점은 "TCP 멜트다운 문제"[3][4]를 피할 수 있다는 것입니다.L2TP 터널 내에서 PPP 세션을 전송하는 것은 일반적입니다.L2TP는 그 자체로는 기밀성이나 강력한 인증을 제공하지 않습니다.IPsec은 기밀성, 인증 및 무결성을 제공함으로써 L2TP 패킷을 보호하기 위해 자주 사용됩니다.이러한 두 프로토콜의 조합은 일반적으로 L2TP/IPSec으로 알려져 있습니다(아래에서 설명합니다).
L2TP 터널의 2개의 엔드포인트는 L2TP Access Concentrator(LAC; L2TP 액세스콘센트레이터)와 L2TP Network Server(LNS; L2TP 네트워크 서버)라고 불립니다.LNS는 새로운 터널을 기다립니다.터널이 확립되면 피어간의 네트워크트래픽은 쌍방향으로 됩니다.네트워킹에 유용한 고급 프로토콜은 L2TP 터널을 통해 실행됩니다.이를 용이하게 하기 위해 터널 내에서 PPP와 같은 상위 레벨의 각 프로토콜에 대해 L2TP 세션이 확립됩니다.LAC 또는 LNS 중 하나가 세션을 시작할 수 있습니다.각 세션의 트래픽은 L2TP에 의해 분리되기 때문에 단일 터널을 통해 여러 가상 네트워크를 설정할 수 있습니다.
L2TP 터널 내에서 교환되는 패킷은 제어 패킷 또는 데이터 패킷 중 하나로 분류됩니다.L2TP는 제어 패킷에는 신뢰성 기능을 제공하지만 데이터 패킷에는 신뢰성이 없습니다.필요한 경우 L2TP 터널의 각 세션 내에서 실행되는 중첩된 프로토콜에 의해 신뢰성이 제공되어야 합니다.
L2TP 를 사용하면, 인터넷이나 서비스 프로바이더의 네트워크등의 공유 인프라스트럭처를 사용해 리모트클라이언트를 사내 네트워크에 접속하는 Virtual Private Dialup Network(VPDN;[5] 가상 프라이빗 다이얼 업 네트워크)를 작성할 수 있습니다.
터널링 모델
L2TP 터널은 PPP 세션 전체 또는2 세그먼트세션의 1 세그먼트만으로 확장할 수 있습니다.이는 다음 4가지 터널링모델로 나타낼 수 있습니다.
L2TP 패킷 구조
L2TP 패킷은 다음과 같이 구성됩니다.
비트 0 ~ 15 | 비트 16 ~ 31 |
---|---|
플래그 및 버전 정보 | 길이(옵션) |
터널 ID | 세션 ID |
Ns(옵션) | Nr(옵션) |
오프셋 크기(옵션) | 오프셋 패드(옵션)...... |
페이로드 데이터 |
필드의 의미:
- 플래그 및 버전
- 데이터/제어 패킷 및 길이, 시퀀스 및 오프셋필드의 존재를 나타내는 제어 플래그.
- 길이(옵션)
- 메시지의 총 길이(바이트 단위). 길이 플래그가 설정된 경우에만 표시됩니다.
- 터널 ID
- 제어 접속 식별자를 나타냅니다.
- 세션 ID
- 터널 내 세션 ID를 나타냅니다.
- Ns(옵션)
- 이 데이터 또는 제어 메시지의 시퀀스 번호(전송되는 메시지마다 0으로 시작하여 1(modulo16 2)씩 증가)합니다.시퀀스 플래그가 설정된 경우에만 표시됩니다.
- Nr(옵션)
- 수신될 것으로 예상되는 메시지의 시퀀스 번호.Nr은 마지막으로 수신한 메시지와1 개의 메시지(modulo16 2)의 Ns 로 설정됩니다.데이터 메시지에서 Nr은 예약되어 있으며(S 비트로 표시된 경우) 수신 시 무시해야 합니다.
- 오프셋 크기(옵션)
- L2TP 헤더를 지나 페이로드 데이터의 위치를 지정합니다.오프셋 필드가 있는 경우 L2TP 헤더는 오프셋 패딩의 마지막 바이트 후에 종료됩니다.이 필드는 오프셋플래그가 설정되어 있는 경우에 존재합니다.
- 오프셋 패드(옵션)
- 오프셋 크기로 지정된 가변 길이입니다.이 필드의 내용은 정의되어 있지 않습니다.
- 페이로드 데이터
- 가변 길이(최대 페이로드 크기 = UDP 패킷의 최대 크기 - L2TP 헤더 크기)
L2TP 패킷 교환
L2TP 접속 셋업 시에는 서버와 클라이언트 간에 많은 제어 패킷이 교환되어 각 방향의 터널과 세션을 확립합니다.한쪽 피어가 이들 제어 패킷을 통해 다른 한쪽 피어에 특정 터널과 세션 ID를 할당하도록 요구합니다.다음으로 이 터널과 세션 ID를 사용하여 데이터 패킷이 압축된PPP 프레임과 payload로 교환됩니다.
터널 및 세션을 확립하기 전에 LAC와 LNS 간에 주고받는 L2TP 제어 메시지 목록은 다음과 같습니다.
L2TP/IPSec
L2TP 프로토콜 고유의 기밀성이 없기 때문에 IPsec과 함께 구현되는 경우가 많습니다.이것은 L2TP/IPSec이라고 불리며 IETF RFC 3193에서 표준화되어 있습니다.L2TP/IPSec VPN을 설정하는 프로세스는 다음과 같습니다.
- IPsec Security Association(SA; 보안 어소시에이션)의 네고시에이션. 통상은 Internet Key Exchange(IKE; 인터넷키 익스체인지)를 사용합니다.이것은 UDP 포트 500을 통해 실행되며, 일반적으로 공유 패스워드(이른바 '사전 공유 키'), 공용 키 또는 X.509 증명서 중 하나를 양 끝에 사용합니다.단, 다른 키 입력 방식이 존재합니다.
- 트랜스포트 모드에서의 Encapsulating Security Payload(ESP; 보안 페이로드 캡슐화) 통신 확립.ESP의 IP 프로토콜 번호는 50입니다(TCP의 6과 UDP의 17과 비교).이 시점에서 시큐어 채널은 확립되어 있습니다만, 터널링은 행해지지 않습니다.
- SA 엔드포인트 간의 L2TP 터널 네고시에이션 및 확립파라미터의 실제 네고시에이션은 SA의 시큐어 채널을 통해 IPsec 암호화 내에서 이루어집니다.L2TP는 UDP 포트 1701을 사용합니다.
프로세스가 완료되면 엔드포인트 간의 L2TP 패킷이 IPsec에 의해 캡슐화됩니다.L2TP 패킷 자체는, IPsec 패킷내에 랩 되어 숨겨지기 때문에, 원래의 송신원IP 주소와 행선지IP 주소는 패킷내에서 암호화됩니다.또한 내부 패킷은 IPsec 데이터가 복호화되어 제거될 때까지 동작하지 않기 때문에 엔드포인트 간의 방화벽에서 UDP 포트 1701을 열 필요가 없습니다.이것은 엔드포인트에서만 발생합니다.
L2TP/IPSec에서 혼동의 가능성이 있는 포인트는 tunnel과 secure channel이라는 용어의 사용입니다.tunnel-mode라는 용어는 어떤 네트워크의 변경되지 않은 패킷을 다른 네트워크를 통해 전송할 수 있는 채널을 의미합니다.L2TP/PPP 의 경우는, IP 를 개입시켜 L2TP/PPP 패킷을 전송할 수 있습니다.시큐어 채널이란, 모든 데이터의 기밀성이 보증되는 접속을 말합니다.L2TP/IPSec에서는 처음에 IPsec이 안전한 채널을 제공하고 다음으로 L2TP가 터널을 제공합니다.IPsec에서는 터널 프로토콜도 지정합니다.L2TP 터널이 사용되는 경우 이 프로토콜은 사용되지 않습니다.
Windows 의 실장
Windows는 Windows 2000 이후 L2TP에 대한 네이티브 지원(컨트롤 패널로 구성 가능)을 제공하고 있습니다.Windows Vista 에는, 「고도의 시큐러티를 갖춘 Windows 방화벽」(WFWAS)이라고 불리는 MMC 스냅인과 「netsh advfirewall」커맨드 라인 툴의 2개가 추가되었습니다.WFWAS 명령어와 netsh 명령어의 양쪽 모두에 관한 제약사항 중 하나는 서버를 IP 주소로 지정해야 한다는 것입니다.Windows 10 에서는, 「Add-Vpn Connection」및 「Set-Vpn Connection」이 추가되고 있습니다.IPsec Configuration" PowerShell 명령어.서버가 NAT-T 디바이스의 배후에 있는 경우는, 클라이언트와 서버에 레지스트리 키를 작성할 필요가 있습니다.[1]
ISP 네트워크의 L2TP
L2TP 는, ADSL 나 케이블등의 인터넷 서비스가 재판매되는 경우에 ISP 에 의해서 자주 사용됩니다.최종 사용자로부터 패킷은 도매 네트워크 서비스 공급자의 네트워크를 통해 Broadband Remote Access Server(BRAS; 광대역 원격 액세스 서버), 프로토콜 변환기 및 라우터를 결합한 서버로 전송됩니다.레거시 네트워크에서는 최종 사용자의 구내 기기에서 BRAS로 가는 경로가 ATM 네트워크를 경유하는 경우가 있습니다.이후 IP 네트워크를 통해 L2TP 터널은 BRAS(LAC로 동작)에서 최종 수신처 ISP의 IP 네트워크 경계에 있는 엣지 라우터인 LNS로 흐릅니다.L2TP 를 사용하는 리셀러 ISP 의 예를 참조해 주세요.
RFC 레퍼런스
- RFC 2341 시스코 레이어2 포워딩(프로토콜) 'L2F'(L2TP의 전신)
- RFC 2637 Point-to-Point Tunneling Protocol(PPTP)
- RFC 2661 레이어 2 터널링 프로토콜 "L2TP"
- RFC 2809 RADIUS 경유 L2TP 강제 터널링 구현
- RFC 2888 L2TP에 의한 안전한 리모트액세스
- RFC 3070 프레임 릴레이 상의 Layer Two Tunneling Protocol(L2TP)
- RFC 3145 L2TP 절단 원인 정보
- RFC 3193 IPsec을 사용한L2TP의 보안 보호
- RFC 3301 Layer Two Tunneling Protocol(L2TP): ATM 액세스네트워크
- RFC 3308 Layer Two Tunneling Protocol(L2TP) 차별화 서비스
- RFC 3355 ATM Adaptation Layer 5(AAL5)를 통한 Layer Two Tunneling Protocol(L2TP)
- RFC 3371 레이어 2 터널링 프로토콜 "L2TP" 관리 정보 기반
- RFC 3437 PPP 링크 제어 프로토콜 네고시에이션을 위한 레이어2 터널링 프로토콜 확장
- RFC 3438 Layer Two Tunneling Protocol(L2TP) 인터넷 할당 번호: Internet Assigned Numbers Authority(IANA) 고려사항 업데이트
- RFC 3573 Layer 2 Tunneling Protocol(L2TP)에서의 Modem-On-Hold 상태 시그널링
- RFC 3817 PPP over Ethernet(PPPoE)용 Layer 2 Tunneling Protocol(L2TP) 액티브디스커버리 릴레이
- RFC 3931 레이어 2 터널링 프로토콜 - 버전 3(L2TPv3)
- RFC 4045 Layer-2 Tunneling Protocol(L2TP)에서의 멀티캐스트트래픽의 효율적인 전송을 지원하기 위한 확장
- RFC 4951 Layer 2 Tunneling Protocol(L2TP)의 Fail Over Extensions(페일오버)
「 」를 참조해 주세요.
레퍼런스
- ^ IETF(1999), RFC 2661, 레이어 2 터널링 프로토콜 "L2TP"
- ^ "Point-to-Point Tunneling Protocol (PPTP)". TheNetworkEncyclopedia.com. 2013. Retrieved 2014-07-28.
Point-to-Point Tunneling Protocol (PPTP) [:] A data-link layer protocol for wide area networks (WANs) based on the Point-to-Point Protocol (PPP) and developed by Microsoft that enables network traffic to be encapsulated and routed over an unsecured public network such as the Internet.
[영구 데드링크] - ^ Titz, Olaf (2001-04-23). "Why TCP Over TCP Is A Bad Idea". Retrieved 2015-10-17.
- ^ Honda, Osamu; Ohsaki, Hiroyuki; Imase, Makoto; Ishizuka, Mika; Murayama, Junichi (October 2005). "Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency". In Atiquzzaman, Mohammed; Balandin, Sergey I (eds.). Performance, Quality of Service, and Control of Next-Generation Communication and Sensor Networks III. Vol. 6011. Bibcode:2005SPIE.6011..138H. CiteSeerX 10.1.1.78.5815. doi:10.1117/12.630496. S2CID 8945952.
- ^ 시스코 지원:VPDN의 개요– 2008년1월 29일 갱신
- ^ IBM Knowledge Center: L2TP 멀티홉 연결
외부 링크
실장
- Cisco L2TP 매뉴얼, Cisco 기술 개요도 참조해 주세요.
- 오픈 소스 및 Linux: xl2tpd, Linux RP-L2TP, OpenL2TP, l2tpns, l2tpd(비액티브), Linux L2TP/IPSec 서버, FreeBSD 멀티링크 PPP 데몬, OpenBSD npppd(8), ACCEL-PPP - Linux용 PPTP/L2TP/PPPoE 서버
- Microsoft: Windows 2000 이후에 내장된 클라이언트, Windows 98/Windows Me/Windows NT 4.0용 Microsoft L2TP/IPSec VPN Client
- Apple: Mac OS X 10.3 이상에 포함된 내장 클라이언트.
- Cisco.com의 VPDN