GRE Túnel sobre IPsec com Loopback

1

Estou com dificuldade realmente tentando estabelecer uma conexão VPN usando um túnel GRE sobre IPsec. O problema é que envolve algum tipo de conexão de "loopback" que eu não entendo - muito menos ser capaz de configurar -, e a única ajuda que pude encontrar está relacionada à configuração de roteadores Cisco.

Minha rede é composta por um roteador e um único host rodando o Debian Linux. Minha tarefa é criar um túnel GRE sobre uma infra-estrutura IPsec, que é particularmente destinada ao roteamento de tráfego multicast entre minha rede, que eu tenho permissão para configurar, e uma rede remota, para a qual eu possuo apenas um formulário contendo algumas informações de configuração (IP endereços e informações de fase para IPsec). Por enquanto, basta estabelecer uma comunicação entre este host único e a rede remota, mas no futuro será desejável que o tráfego seja roteado para outras máquinas na minha rede.

Como eu disse, este túnel GRE envolve uma conexão de "loopback" que não tenho idéia de como configurar. Do meu entendimento anterior, uma conexão de loopback é simplesmente um pseudo-dispositivo local usado principalmente para fins de teste, mas, nesse contexto, pode ser algo mais específico do qual eu não tenho conhecimento.

Consegui estabelecer corretamente a comunicação IPsec usando racoon e ipsec-tools , e acredito que estou familiarizado com a criação de túneis e adição de endereços a interfaces usando ip , então o foco está na Passo GRE. A pior parte é que os peers remotos não respondem às solicitações de ping e a depuração da configuração geral é muito difícil devido à natureza criptografada do tráfego.

Existem dois pares de endereços IP envolvidos: um par para a conexão peer-to-peer do túnel GRE e um par para a parte "loopback". Há também um intervalo de IPs envolvidos, que supostamente são os endereços IP finais dos hosts dentro da VPN.

Minha pergunta é: como (ou se) essa configuração pode ser feita? Preciso de algum software especial ou outro daemon, ou o kernel do Linux lida com todos os aspectos do tunelamento GRE / IPsec?

Por favor, informe-me se alguma informação extra pode ser útil.

Qualquer ajuda é muito apreciada.

    
por alecov 18.03.2011 / 20:28

2 respostas

2

Mais uma vez, consegui resolver o problema (mas não por muito tempo, pois a pergunta original e essa resposta supõem que seja :). Eu passei quase um mês pesquisando a solução para o problema, e vou deixá-lo documentado aqui apenas no caso de alguém encontrar o mesmo problema.

Na verdade, a interface de loopback é realmente o que eu sabia que era: um endereço atribuído a uma interface sempre ativa em uma máquina. O problema de conectividade entre o roteador GRE remoto e meu roteador foi devido a outro problema: Pacotes keep-alive do GRE .

Descobri que o roteador Cisco remoto estava realmente me enviando pacotes ímpares encapsulados por meio do túnel. Esses pacotes encapsularam outro pacote GRE, e estes, por outro lado, carregavam um número de protocolo zero . Uma busca rápida indicou que estes pacotes são pacotes keep-alive do GRE , que são enviados periodicamente (no meu caso, a cada 10 segundos quase exatamente) e, se corretamente desassociados e reencaminhados pelo peer, devem ser ecoados de volta ao remetente, uma vez que o endereço de destino mais interno continha o endereço de origem do remetente.

O fato é que o kernel do Linux não alimentou corretamente o pacote de keep-alive deencapsulado novamente na cadeia de roteamento. Se o fizesse, o pacote seria redirecionado de volta ao remetente sem mais complicações. Em vez disso, ele entregava o pacote ao userspace, de modo que era possível escrever um programa simples que ouvia esses pacotes no modo raw e os repetia de volta para o remetente. Executando este programa e retornando alguns pacotes para o roteador Cisco, o túnel GRE subiu no lado remoto, os roteadores PIM trocaram hello se eu finalmente pude ouvir o tráfego multicast que eu esperava ouvir .

Eu aprendi muito com essa experiência, especialmente a parte que, ao mexer com protocolos obscuros (ou, pelo menos, protocolos obscuros recursos ), você não pode simplesmente contar peer-conhecimento. Nenhum analista de rede único no lado remoto poderia me ajudar em qualquer aspecto a esse respeito, provavelmente porque esse comportamento não foi documentado.

    
por 04.08.2011 / 23:45
1

Não sei ao certo como funciona o multicast, mas posso dizer como consegui que o GRE funcionasse no IPSec. A maioria das instalações linux suportam gre para que você não precise instalar nada extra para isso.


Criei um túnel IPSec Host-to-Host e segui os passos mencionados aqui para criar o túnel. link

Lembre-se de ativar o encaminhamento de pacotes:)

    
por 19.03.2011 / 15:37