De acordo com a Wikipédia :
O protocolo de tunelamento funciona usando a parte de dados de um pacote (a carga útil) para transportar os pacotes que realmente fornecem o serviço.
O tunelamento usa um modelo de protocolo em camadas, como os do conjunto de protocolos OSI ou TCP/IP, mas geralmente viola a estratificação ao usar a carga útil para transportar um serviço normalmente não fornecido pela rede.
O que significa prestar um serviço que normalmente não é fornecido pela rede ?
"Tunelamento" envolve encapsular uma camada específica dentro de outra instância da mesma camada (por exemplo, pacotes da camada de rede dentro da camada de rede) ou dentro de uma camada superior (por exemplo, pacotes da camada de rede dentro de uma conexão da camada de transporte), em oposição à ordem normal das camadas.
Provavelmente, o uso mais comum do tunelamento é o IPv4 em IPv4, feito por software VPN (tanto corporativo quanto comercial).
Considere, por exemplo, uma rede como a internet, que roteia apenas IPv4 e IPv6. Normalmente, isso significa que você não pode usar outros protocolos de rede, como AppleTalk, DECnet ou ISO CLNP 1, pela internet – a maioria dos roteadores que compõem a rede não reconhece esses pacotes (e os poucos que reconhecem, não conhecem as rotas para encaminhá-los).
Mas você pode configurar um túnel que encapsula o AppleTalk em IPv4 – colocando todo o pacote da "camada de rede" dentro de outro pacote da "camada de rede" – para que a Internet possa transportá-lo como se fosse IPv4, processando apenas o cabeçalho IPv4 externo, até que o host na outra extremidade do túnel o coloque de volta em uma rede AppleTalk nativa.
Portanto, neste exemplo, o roteamento AppleTalk seria um serviço não fornecido pela rede de internet, mas o tunelamento permite que o AppleTalk seja transmitido pela internet independentemente. (Existem redes de "computação retro" reais que transmitem AppleTalk em IP, X.25 em TCP e assim por diante.)
Na prática semimoderna, isso tem sido muito comumente usado para fornecer serviço IPv6 em redes que normalmente forneciam apenas IPv4 (o SiXXS costumava fornecer esses túneis e o Tunnelbroker.net ainda faz isso), enquanto hoje em dia você encontrará ISPs fazendo o oposto e fornecendo serviço IPv4 usando túneis em uma rede somente IPv6 (acredito que seja chamado de DS-Lite).
1 A propósito, o ISO CLNP é o equivalente ao IP no "conjunto de protocolos OSI". Li nos arquivos da lista de discussão NANOG/NSFNET que algumas operadoras costumavam rotear CLNP na década de 1990, mas mesmo assim mudaram rapidamente para um núcleo somente IP com CLNP tunelado por ele. (O oposto também é possível; meus antigos roteadores Cisco conseguem tunelar tanto CLNP sobre IP quanto IP sobre CLNP.)
A referência a "pacotes" aqui talvez seja um critério conveniente para a compreensão do processo, mas nem todas as redes (aqui, referindo-se a protocolos de rede em vez de instâncias) são baseadas em pacotes. Vale ressaltar também que o Protocolo de Internet NÃO está em conformidade com o modelo OSI, embora a terminologia deste último seja frequentemente aplicada ao primeiro.
Todas as redes podem ser consideradas como diversas camadas de abstração que separam as funções de codificação, criptografia, integridade, endereçamento... O tunelamento descreve o empilhamento de algumas camadas de um protocolo de rede sobre outro protocolo, ou até mesmo uma instância diferente do mesmo protocolo.
As VPNs da Internet empilham (TCP/UDP/ICMP) + IP sobre TCP/IP ou UDP/IP. Mas é importante observar que a pilha combinada pode ser distribuída entre mais de um dispositivo em cada extremidade da comunicação.
No contexto do artigo, o termo "Serviço" se refere ao protocolo de rede, endereçamento e roteamento, e não à forma como é comumente usado com IP para descrever as coisas que são executadas sobre IP (SMTP, HTTP, SMB...).
Se (digamos) eu, no Reino Unido, estivesse enviando presentes de Natal para uma família na Alemanha, eu embrulharia cada presente separadamente e adicionaria uma etiqueta com o nome do destinatário – sendo esta última a informação de endereço no sentido da rede. Em seguida, eu embrulharia os presentes em um único pacote etiquetado com o endereço postal que os serviços postais conseguem reconhecer. Este é um exemplo de tunelamento (que usa pacotes!). A Deutsche Post não saberia o que fazer com um pacote endereçado ao Tio Hans – mas alguém no endereço postal sabe.
Por outro lado, se eu chegasse naquele endereço com os presentes, a embalagem externa, etiquetada com o endereço postal, não seria necessária. Não preciso fazer o envio pelos Correios.
Além da outra resposta , há também o modo de túnel IPsec :
O modo de túnel IPsec opera no nível de rede para criptografar pacotes IP, encapsulados em um novo pacote IP com um novo cabeçalho IP.
Isso permite que a comunicação entre hosts seja criptografada sem a necessidade de fazer alterações nos aplicativos 1 , como seria necessário para outras soluções, como TLS/SSL .
O corpo da pergunta pergunta:
Pode-se argumentar que um túnel IPsec não adiciona diretamente um serviço que normalmente não é fornecido pela rede. No entanto, é um exemplo de " O que é tunelamento?" , que é o título da pergunta.
1 O artigo NordLayer IPsec (Internet Protocol Security) VPN contém o seguinte, portanto, a adição de um túnel pode impactar alguns aplicativos:
Por exemplo, alguém em um aeroporto pode precisar se conectar a um serviço remoto, como um banco de dados SQL Server, mas não consegue devido a um firewall.
Para habilitar isso, primeiro um túnel é estabelecido usando uma conexão de rede privada virtual (VPN).
Isso fornece conectividade de camada de rede entre ambos os pontos usando endereços de rede para o local remoto onde o recurso (SQL Server) está localizado.
"Transmitir um serviço normalmente não fornecido por uma rede" refere-se a uma situação em que a rede entre você e a máquina de destino à qual você deseja se conectar está de alguma forma restrita e a conexão não pode ser estabelecida da maneira normal, mas você deseja se conectar mesmo assim.
Os exemplos podem incluir:
Para estabelecer um túnel, você precisa ter duas máquinas em ambos os lados, capazes de se conectar usando qualquer serviço permitido pela rede. Por exemplo, se a rede permitir apenas HTTP/HTTPS, ambas as extremidades do túnel poderão se conectar via HTTPS e, então, enviar qualquer tipo de tráfego dentro da sessão HTTPS. A rede "externa" "vê" apenas o tráfego HTTPS, que pode passar, e, como é criptografada, não "sabe" o que está dentro. O software em ambas as extremidades do túnel "compacta" e "descompacta" o tráfego na sessão estabelecida.
Existem vários tipos de túneis, abaixo estão alguns exemplos: