Acho que não entendi como uma VPN L2 realmente funciona.
Sempre que pergunto a alguém sobre isso, eles sempre respondem que uma VPN L2 funciona na camada 2 (frame) do modelo OSI enquanto uma VPN L3 na camada de rede (3).
OK. Não sei muito mais agora do que antes.
Quer dizer, eu entendo o L3, os pacotes precisam ser roteados pela Internet normalmente, mas e o L2?
Como seu provedor ou qualquer outro roteador na Internet pode rotear um quadro até seu destino sem a camada de rede?
Em primeiro lugar, as VPNs não se destinam necessariamente a ser roteadas pela Internet (nem usadas para acessar a Internet, aliás). Um dos principais casos de uso de VPNs é apenas unir duas redes locais (VPN site-to-site) – um substituto para uma linha alugada – e para tais conexões tudo poderia permanecer dentro de um único provedor.
Além disso, existem dois significados gerais para "VPN L2", dependendo do contexto:
Às vezes é usado para se referir a VPNs que transportam quadros Ethernet sobre IP (ou seja, o 'L2' refere-se apenas à carga útil), sendo VXLAN ou ZeroTier alguns exemplos. Eles funcionam exatamente como o típico “VPN L3”; eles ainda têm um cabeçalho IP externo (geralmente UDP/IP) para roteamento, tanto internamente ao provedor quanto externamente pela Internet.
Às vezes é usado para se referir a VPNs que transportam quadros Ethernet "diretamente" através de outra rede local, por exemplo, dentro de outro quadro Ethernet (ou seja, o 'L2' refere-se principalmente à operadora). Eles não são roteados pela Internet – seu objetivo é unir perfeitamente dois locais conectados ao mesmo provedor, mas sem a necessidade de um link físico dedicado.
(Embora quando você solicita um circuito VPN L2 de alguma operadora, você não consegue realmente dizer a diferença – pode ser uma VLAN Ethernet, ou pode ser baseado em MPLS, ou pode muito bem ser transportado como um túnel VXLAN sobre IP.)
Neste último caso, existem várias maneiras de implementá-lo. Por exemplo:
Ele poderia usar "MAC-in-MAC" simples (por exemplo, 802.1ah), ou seja, os quadros Ethernet encapsulados em um segundo cabeçalho L2 com um novo endereço MAC de destino e os switches Ethernet da operadora encaminhando da maneira regular - neste caso você poderia pense na própria Ethernet como sendo a camada externa da rede.
A VPN poderia ser implementada como uma rede MPLS, com os quadros Ethernet encapsulados em MPLS e encaminhados entre roteadores de acordo com rótulos MPLS que definem um caminho específico.
Em geral, eu diria para não pensarmos no modelo OSI como algo mais do que diretrizes para o que seus projetistas consideraram uma rede “ideal”. A Internet não foi construída de acordo com o modelo OSI; na verdade, era um concorrente das redes baseadas em OSI. Da mesma forma, a Ethernet não foi construída como uma “camada de enlace de dados” para IP; foi originalmente construído como uma rede local por si só e só mais tarde adotado para transportar outras redes no topo.
Uma VPN L2 simula a camada 2, assim como uma VPN L3 simula a camada 3. Em ambos os casos, os pacotes nessa camada são reembalados em pacotes para qualquer sistema em que a VPN esteja sendo executada. Algumas das camadas serão duplicadas.
Por exemplo, quando executo um OpenVPN L2 pela Internet, o OpenVPN cria uma porta Ethernet virtual no sistema operacional. Quando o sistema operacional envia quadros Ethernet L2 através dessa porta, o software OpenVPN os coloca dentro de pacotes de Internet L3 e os envia através da minha porta de rede real. O software OpenVPN no outro computador recebe o pacote da Internet, retira o quadro Ethernet original e o passa para o sistema operacional, que simula o recebimento em sua porta Ethernet virtual. Assim, uma conexão Ethernet é simulada. Do ponto de vista do sistema operacional, os pacotes Ethernet saem de uma porta e chegam a outro computador. Assim como havia um cabo Ethernet real entre duas portas Ethernet reais.
Quando você olha para o pacote que passa pela Internet (digamos, no meio da rede do seu ISP), ele terá cabeçalhos L2-L4 que o direcionam para o processo OpenVPN no computador receptor. Dentro do cabeçalho L4 UDP, ele terá outro conjunto de cabeçalhos L2-L7, que são criptografados (nem todas as VPNs os criptografam, mas o OpenVPN o faz). Existem dois conjuntos de cabeçalhos L2-L4 que não devem ser confundidos. A Internet analisa apenas o conjunto externo, mesmo quando o conjunto interno não está criptografado.
As VPNs L2 são um pouco menos eficientes que as L3 porque a Ethernet utiliza tráfego de broadcast para descobrir outros hosts e roteadores, o que utiliza largura de banda extra, que é efetivamente gratuita em redes locais rápidas, mas não em redes mais lentas como a Internet. Há também o cabeçalho Ethernet extra incluído em cada pacote que ocupa espaço. Portanto, as VPNs L3 são geralmente preferidas sempre que possível.
A VPN de camada 2 funciona como um cabo de rede. A camada 3 e superiores ainda estão lá e disponíveis para roteamento e outros enfeites.
Um túnel IP de camada 3 não pode conectar redes Ethernet, porque informações vitais são perdidas no trânsito: todo o tráfego não-IP e também os endereços MAC de origem e destino. A ponte pode ser emulada, até certo ponto, mas não sem perdas. Um túnel de Camada 2 transporta tudo, agindo essencialmente exatamente como um cabo de rede Ethernet entre switches.
Você deve considerar esta categorização ou designação como um “ponto de corte inferior”.
Sua rede Ethernet local funciona mesmo em vários switches e talvez roteadores, certo? Um túnel da Camada 2 é exatamente assim.