N2N: Layer Two Peer-to-Peer VPN

N2N é uma virtual private network (VPN) peer-to-peer que trabalha na camada dois, sendo capaz de permitir aos seus usuários desfrutarem dos recursos de uma rede P2P a nível de rede ao invés de aplicação.

[ Hits: 14.170 ]

Por: Vinicius Tinti de Paula Oliveira em 02/03/2009


Introdução



Fontes:
N2n é uma virtual private network (VPN) peer-to-peer que trabalha na camada dois, sendo capaz de permitir aos seus usuários desfrutarem dos recursos de uma rede P2P a nível de rede ao invés de aplicação. Isso significa uma abstração de rede onde os usuários ganham um IP extra de uma rede virtual, sendo ainda visíveis na rede real a qual pertencem.

Simplificando, assim como OpenVPN tunela via SSL (aplicação para protocolo), n2n tunela via uma rede P2P (aplicação para rede).

Original: n2n is a layer-two peer-to-peer virtual private network (VPN) which allows users to exploit features typical of P2P applications at network instead of application level. This means that users can gain native IP visibility (e.g. two PCs belonging to the same n2n network can ping each other) and be reachable with the same network IP address regardless of the network where they currently belong. In a nutshell, as OpenVPN moved SSL from application (e.g. used to implement the https protocol) to network protocol, n2n moves P2P from application to network level.

Enfim, uma grande vantagem nesse tipo de VPN é a própria distribuição (ou desvantagem :P depende do ponto de vista). Com isso o servidor da VPN (supernode) deve apenas gerenciar as conexões assim como um tracker bittorrent.

Para mais detalhes leia o site da ntop, vou ser curto e grosso nesse artigo, até porque não sou um expert nisso, não quero falar besteira.

Leiam também o artigo contido neste documento PDF: NN: A Layer Two Peer-to-Peer VPN

Instalação e configuração

Para distros como o Ubuntu e o Debian, use o apt para os seguintes pacotes (lembre-se, # significa que você deve possuir permissões de administrador do sistema):

# apt-get install uml-utilities gcc make

No servidor

Faça um checkout do svn:

# cd /usr/src/
# svn co https://svn.ntop.org/svn/ntop/trunk/n2n
# cd n2n


Retire os flags de debug (-g) do Makefile, caso não esteja mais testando.

# make

Pronto, agora vamos iniciar o supernode:

# ./supernode -l 50000 -v

Agora aguarde as mensagens que iniciarão quando os primeiros clientes conectarem.

No(s) cliente(s)

Faça um checkout do svn:

# cd /usr/src/
# svn co https://svn.ntop.org/svn/ntop/trunk/n2n
# cd n2n


Retire os flags de debug (-g) do Makefile, caso não esteja mais testando.

# make

Após a instalação vamos criar um túnel para a vpn.

# tunctl -t tun0

Agora vamos iniciar a interface (supondo que o servidor tenha o ip 192.168.0.1):

# ./edge -a 10.0.2.1 -c minharede -k palavrachave -l 192.168.0.1:50000

Você pode adicionar o endereço MAC que deseja usar acrescentando -m 00:00:00:00:00:00 (troque os zeros pelo endereço desejado).

Pronto!

Agora para que os clientes estejam na mesma rede é necessário que:
  • Ambos estejam com a mesma community (opção -c)
  • Ambos tenham a mesma palavra chave (opção -k)
  • A faixa de IPs seja compatível (ex: a.b.c.X, a.b.c.Y -> 10.0.0.1 10.0.0.2 10.0.0.3 ...)

Existem ainda versões específicas para FreeBSD, MAC OS X e Windows.

O site VPNHosting.cz provê o seguinte link, onde é possível baixar o cliente (GUI) para o Windows XP/2000:
Para usá-lo basta preencher os campos da GUI, os nomes são diferentes do que foi dito acima, mas é simples perceber o que é o quê.

Testado em Windows XP e Linux (i386/amd64).

BrainStorm e agradecimento

  • Adicionar recursos de cadastro igual ao Hamachi.
  • Criar uma interface de gerenciamento de recursos (usuários/redes) para o servidor.
  • Criar um tutorial de roteamento com iptables.
  • Medir desempenho.

Sugestões? Adicione um comentário ou mande um email.

Agradecimentos:
  • ntop
  • vpnhosting
  • E amigos que me ajudaram a testar

Obrigado a todos.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Viegas Rubim RMS

Leitura recomendada

Endereço fixo para o seu IP dinâmico

Apache em chroot + MySQL + PHP + mod_security + mod_evasive + vsftpd + Fail2ban + Debian Squeeze

Montando um servidor NTP

Instalando o Apache + PHP + MySQL no Slackware

Datagramas IP (Protocolo Internet)

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts