Protocolo de encapsulamento de camada 2 - Layer 2 Tunneling Protocol
Em redes de computadores , o protocolo de encapsulamento de camada 2 ( L2TP ) é um protocolo de encapsulamento usado para oferecer suporte a redes privadas virtuais (VPNs) ou como parte da entrega de serviços por ISPs. Ele usa criptografia ('ocultar') apenas para suas próprias mensagens de controle (usando um segredo pré-compartilhado opcional) e não fornece criptografia ou confidencialidade de conteúdo por si só. Em vez disso, ele fornece um túnel para a Camada 2 (que pode ser criptografado) e o próprio túnel pode ser passado por um protocolo de criptografia da Camada 3 , como o IPsec .
Suíte de protocolo de Internet |
---|
Camada de aplicação |
Camada de transporte |
Camada de Internet |
Camada de link |
História
Publicado em 2000 como o padrão proposto RFC 2661, o L2TP tem suas origens principalmente em dois protocolos de encapsulamento mais antigos para comunicação ponto a ponto: Cisco 's Layer 2 Forwarding Protocol (L2F) e Microsoft 's Point-to-Point Tunneling Protocol (PPTP ) Uma nova versão desse protocolo, L2TPv3 , apareceu como padrão proposto RFC 3931 em 2005. L2TPv3 fornece recursos de segurança adicionais, encapsulamento aprimorado e a capacidade de transportar links de dados diferentes do simplesmente protocolo ponto a ponto (PPP) em uma rede IP (por exemplo: Frame Relay , Ethernet , ATM , etc.).
Descrição
Todo o pacote L2TP, incluindo carga útil e cabeçalho L2TP, é enviado em um datagrama UDP ( User Datagram Protocol ). Uma virtude da transmissão por UDP (em vez de TCP) é evitar o "problema de fusão do TCP". É comum transportar sessões PPP dentro de um túnel L2TP. O L2TP não fornece confidencialidade ou autenticação forte por si só. O IPsec é freqüentemente usado para proteger pacotes L2TP, fornecendo confidencialidade, autenticação e integridade. A combinação desses dois protocolos é geralmente conhecida como L2TP / IPsec (discutido abaixo).
Os dois pontos finais de um túnel L2TP são chamados de concentrador de acesso L2TP (LAC) e servidor de rede L2TP (LNS). O LNS espera por novos túneis. Depois que um túnel é estabelecido, o tráfego de rede entre os pares é bidirecional. Para serem úteis na rede, os protocolos de nível superior são executados por meio do túnel L2TP. Para facilitar isso, uma sessão L2TP é estabelecida dentro do túnel para cada protocolo de nível superior, como PPP. Tanto o LAC quanto o LNS podem iniciar sessões. O tráfego para cada sessão é isolado por L2TP, portanto, é possível configurar várias redes virtuais em um único túnel.
Os pacotes trocados dentro de um túnel L2TP são categorizados como pacotes de controle ou pacotes de dados . O L2TP fornece recursos de confiabilidade para os pacotes de controle, mas nenhuma confiabilidade para os pacotes de dados. A confiabilidade, se desejado, deve ser fornecida pelos protocolos aninhados em execução em cada sessão do túnel L2TP.
O L2TP permite a criação de uma rede dial-up privada virtual (VPDN) para conectar um cliente remoto à sua rede corporativa usando uma infraestrutura compartilhada, que pode ser a Internet ou a rede de um provedor de serviços.
Modelos de tunelamento
Um túnel L2TP pode se estender por uma sessão PPP inteira ou apenas por um segmento de uma sessão de dois segmentos. Isso pode ser representado por quatro modelos de tunelamento diferentes, a saber:
- túnel voluntário
- túnel obrigatório - chamada recebida
- túnel obrigatório - discagem remota
- Conexão L2TP multihop
Estrutura do pacote L2TP
Um pacote L2TP consiste em:
Bits 0-15 | Bits 16-31 |
---|---|
Sinalizadores e informações da versão | Comprimento (opt) |
ID do túnel | Identificação de sessão |
Ns (opt) | Nr (opt) |
Tamanho de deslocamento (opt) | Offset Pad (opt) ...... |
Dados de carga útil |
Significados dos campos:
- Bandeiras e versão
- sinalizadores de controle indicando pacote de dados / controle e presença de campos de comprimento, sequência e deslocamento.
- Comprimento (opcional)
- Comprimento total da mensagem em bytes, presente apenas quando o sinalizador de comprimento é definido.
- ID do túnel
- Indica o identificador da conexão de controle.
- Identificação de sessão
- Indica o identificador de uma sessão em um túnel.
- Ns (opcional)
- número de sequência para este dado ou mensagem de controle, começando em zero e incrementando em um (módulo 2 16 ) para cada mensagem enviada. Presente apenas quando o sinalizador de sequência é definido.
- Nr (opcional)
- número de sequência para a mensagem esperada a ser recebida. Nr é definido como o Ns da última mensagem em ordem recebida mais uma (módulo 2 16 ). Nas mensagens de dados, o Nr é reservado e, se presente (conforme indicado pelo bit S), DEVE ser ignorado no recebimento.
- Tamanho de deslocamento (opcional)
- Especifica onde os dados de carga útil estão localizados após o cabeçalho L2TP. Se o campo de deslocamento estiver presente, o cabeçalho L2TP termina após o último byte do preenchimento de deslocamento. Este campo existe se o sinalizador de deslocamento for definido.
- Offset Pad (opcional)
- Comprimento variável, conforme especificado pelo tamanho do deslocamento. O conteúdo deste campo é indefinido.
- Dados de carga útil
- Comprimento variável (tamanho máximo da carga útil = tamanho máximo do pacote UDP - tamanho do cabeçalho L2TP)
Troca de pacotes L2TP
No momento da configuração da conexão L2TP, muitos pacotes de controle são trocados entre o servidor e o cliente para estabelecer o túnel e a sessão para cada direção. Um par solicita ao outro par para atribuir um túnel específico e id de sessão por meio desses pacotes de controle. Em seguida, usando esse túnel e id de sessão, os pacotes de dados são trocados com os quadros PPP compactados como carga útil.
A lista de mensagens de controle L2TP trocadas entre LAC e LNS, para handshaking antes de estabelecer um túnel e sessão no método de tunelamento voluntário são
L2TP / IPsec
Devido à falta de confidencialidade inerente ao protocolo L2TP, ele geralmente é implementado junto com o IPsec . Isso é conhecido como L2TP / IPsec e é padronizado no IETF RFC 3193. O processo de configuração de uma VPN L2TP / IPsec é o seguinte:
- Negociação de associação de segurança (SA) IPsec , normalmente por meio de troca de chave da Internet (IKE). Isso é realizado pela porta UDP 500 e normalmente usa uma senha compartilhada (as chamadas " chaves pré-compartilhadas "), chaves públicas ou certificados X.509 em ambas as extremidades, embora existam outros métodos de codificação.
- Estabelecimento de comunicação Encapsulating Security Payload (ESP) no modo de transporte. O número do protocolo IP para ESP é 50 (compare o TCP 6 e o UDP 17). Neste ponto, um canal seguro foi estabelecido, mas nenhum tunelamento está ocorrendo.
- Negociação e estabelecimento de túnel L2TP entre os terminais SA. A negociação real dos parâmetros ocorre no canal seguro do SA, dentro da criptografia IPsec. O L2TP usa a porta UDP 1701.
Quando o processo é concluído, os pacotes L2TP entre os pontos de extremidade são encapsulados pelo IPsec. Como o próprio pacote L2TP é empacotado e oculto no pacote IPsec, o endereço IP de origem e destino original é criptografado no pacote. Além disso, não é necessário abrir a porta UDP 1701 em firewalls entre os terminais, uma vez que os pacotes internos não são acionados até que os dados IPsec tenham sido descriptografados e removidos, o que ocorre apenas nos terminais.
Um ponto potencial de confusão no L2TP / IPsec é o uso dos termos túnel e canal seguro . O termo modo de túnel se refere a um canal que permite que pacotes intocados de uma rede sejam transportados por outra rede. No caso de L2TP / PPP, permite que pacotes L2TP / PPP sejam transportados por IP. Um canal seguro refere-se a uma conexão na qual a confidencialidade de todos os dados é garantida. No L2TP / IPsec, primeiro o IPsec fornece um canal seguro, depois o L2TP fornece um túnel. O IPsec também especifica um protocolo de túnel: ele não é usado quando um túnel L2TP é usado.
Implementação do Windows
O Windows tem suporte nativo (configurável no painel de controle) para L2TP desde o Windows 2000 . O Windows Vista adicionou 2 ferramentas alternativas, um snap-in do MMC chamado "Firewall do Windows com Segurança Avançada" (WFwAS) e a ferramenta de linha de comando " netsh advfirewall". Uma limitação dos comandos WFwAS e netsh é que os servidores devem ser especificados pelo endereço IP. O Windows 10 adicionou os comandos do PowerShell " Add-VpnConnection " e " Set-VpnConnectionIPsecConfiguration " . Uma chave de registro deve ser criada no cliente e no servidor se o servidor estiver atrás de um dispositivo NAT-T. [1]
L2TP em redes de ISPs
O L2TP é freqüentemente usado pelos ISPs quando o serviço de Internet, por exemplo, ADSL ou cabo, está sendo revendido . Do usuário final, os pacotes viajam pela rede de um provedor de serviços de rede de atacado para um servidor chamado Servidor de Acesso Remoto de Banda Larga ( BRAS ), um conversor de protocolo e roteador combinados. Em redes legadas, o caminho do equipamento das instalações do cliente usuário final para o BRAS pode ser por meio de uma rede de caixas eletrônicos . A partir daí, em uma rede IP, um túnel L2TP vai do BRAS (atuando como LAC) para um LNS que é um roteador de borda no limite da rede IP do ISP de destino final. Veja o exemplo de ISPs de revendedores usando L2TP .
Referências RFC
- RFC 2341 Cisco Layer Two Forwarding (protocolo) "L2F" (um predecessor do L2TP)
- RFC 2637 Point-to-Point Tunneling Protocol (PPTP)
- RFC 2661 Layer Two Tunneling Protocol "L2TP"
- RFC 2809 Implementação de L2TP Compulsory Tunneling via RADIUS
- RFC 2888 Acesso remoto seguro com L2TP
- Protocolo RFC 3070 Layer Two Tunneling (L2TP) sobre Frame Relay
- Informações sobre a causa da desconexão L2TP RFC 3145
- RFC 3193 Protegendo L2TP usando IPsec
- RFC 3301 Layer Two Tunneling Protocol (L2TP): Rede de acesso ATM
- RFC 3308 Layer Two Tunneling Protocol (L2TP) Serviços diferenciados
- RFC 3355 Layer Two Tunneling Protocol (L2TP) Over ATM Adaptation Layer 5 (AAL5)
- RFC 3371 Layer Two Tunneling Protocol "L2TP" Management Information Base
- RFC 3437 Layer Two Tunneling Protocol Extensions for PPP Link Control Protocol Negotiation
- RFC 3438 Layer Two Tunneling Protocol (L2TP) Internet Assigned Numbers: Atualização de Considerações da Autoridade para Atribuição de Números da Internet (IANA)
- RFC 3573 Sinalização de status de modem em espera no protocolo de encapsulamento de camada 2 (L2TP)
- RFC 3817 Layer 2 Tunneling Protocol (L2TP) Active Discovery Relay para PPP sobre Ethernet (PPPoE)
- Protocolo RFC 3931 Layer Two Tunneling - Versão 3 (L2TPv3)
- Extensões RFC 4045 para suportar o transporte eficiente de tráfego multicast no protocolo de encapsulamento de camada 2 (L2TP)
- RFC 4951 Fail Over Extensions para Layer 2 Tunneling Protocol (L2TP) "failover"
Veja também
- IPsec
- Protocolo de Encaminhamento de Camada 2
- Protocolo de túnel ponto a ponto
- Protocolo Ponto a Ponto
- LAN Extensível Virtual
Referências
links externos
Implementações
- Cisco: documentação Cisco L2TP , leia também o resumo de tecnologia da Cisco
- Código aberto e Linux: xl2tpd , Linux RP-L2TP , OpenL2TP , l2tpns , l2tpd (inativo), servidor Linux L2TP / IPsec , FreeBSD multi-link PPP daemon , OpenBSD npppd (8) , ACCEL-PPP - servidor PPTP / L2TP / PPPoE para Linux
- Microsoft: cliente integrado incluído no Windows 2000 e superior; Cliente VPN Microsoft L2TP / IPsec para Windows 98 / Windows Me / Windows NT 4.0
- Apple: cliente integrado incluído no Mac OS X 10.3 e superior.
- VPDN em Cisco.com
Outro
- Números atribuídos pela IANA para L2TP
- Grupo de Trabalho de Extensões L2TP (l2tpext) - (onde o trabalho de padronização futuro está sendo coordenado)
- Usando Linux como um cliente VPN L2TP / IPsec
- L2TP / IPSec com OpenBSD e npppd
- Comparação de L2TP, PPTP e OpenVPN