terça-feira, 14 de dezembro de 2010

bnep: rede TCP/IP sobre Bluetooth

O Bluetooth é um protocolo de comunicação sem fio presente em praticamente todos os dispositivos portáteis de nosso dia-a-dia, de celulares a notebooks. Um "problema", porém, é que ele não implementa a pilha TCP/IP e, portanto, você não pode utilizá-lo para navegar na Internet ou para fazer uma rede entre dois micros. Até, é claro, alguém descobrir como fazer isso.

A dupla bnep e  PAN são a maneira oficial de fazer redes com bluetooth. Enquanto o bnep é um simples encapsulamento dos frames ethernet em uma seção L2CAP, PAN é o perfil bluetooth que usa BNEP e define como fazer a rede.

Para este tutorial, você vai precisar de dois computadores rodando GNU/Linux e com suporte a Bluetooth, seja nativamente ou via dongle. Primeiro, você precisa configurar o "servidor", ou seja, o micro que vai ouvir pelas conexões de entrada. Para isso, em um terminal, digite:

# modprobe bnep
# pand --listen --role GN


Do lado do cliente, nós, primeiramente, precisamos saber o endereço do servidor. Para fazer isso, digite:

# hcitool inq
Inquiring ...
     50:C2:00:03:C4:DC       clock offset: 0x2454     class: 0x020300


Agora, simplesmente conecte-se ao servidor digitando:

# modprobe bnep
# pand --connect 50:C2:00:03:C4:DC


Lembre-se de substituir 50:C2:00:03:C4:DC pelo valor correto encontrado em seu micro. Infelizmente, pand pode falhar silenciosamente. Assim, antes de prosseguir, verifique se foi criado um dispositivo bnep0, usando cat /proc/net/dev ou ifconfig bnep0.

Agora, a única coisa que falta é configurar a interface de rede, o que pode ser feito com o nosso velho conhecido ifconfig. Assim, em cada máquina, digite algo como:

# ifconfig bnep0 10.10.10.1 broadcast 10.10.10.255 netmask 255.255.255.0


Lembre-se de associar um endereço IP diferente para cada um dos computadores membros da rede e de colocar todos na mesma sub-rede. Você também pode configurar seu sistema para fazer estes passos automaticamente ao iniciar.

Para desconectar-se da rede via Bluetooth, digite no cliente:

# ifconfig bnep0 down
# pand --kill 50:C2:00:03:C4:DC


Com isso, você poderá fazer tudo que uma rede tem direito nos dois micros, desde compartilhar arquivos até abrir um shell SSH ou compartilhar a net via IPTables. A fonte deste tutorial é de 2007, logo, já deve ser algo suportado em todas as distribuições.

Algo que não encontrei ainda foi a possibilidade de utilizar esta técnica com um dispositivo móvel - o que, talvez, seja possível no Android -, o que eliminaria a necessidade dos circuitos de wi-fi. Mas, talvez, exista algum programa que implemente as coisas neste sentido.

Nenhum comentário:

Postar um comentário