Ponte entre Wlan0 e Eth0 p/ Rede Interna! [Resolvido]

Iniciado por ElMago, 23 de Junho de 2015, 19:29

tópico anterior - próximo tópico

ElMago

Olá pessoal!

Depois de tentar muitas vezes e até pesquisar por aqui, não consigo fazer a tal ponte.

Tentarei resumir o máximo. Obs : É para estudo!

Tenho 4 dispositivos 1 notebook com Xubuntu , 2  áreas de  trabalho com Fedora (que inclusive uma delas possui duas placas de rede) e 1 Samsung  Android.
Obs: Quando digo 2 placas, significa; 1 Wifi e outra Ethernet.

Pra ficar muito mais claro aqui, chamaremos o notebook (claro, tem 2 placas) de Maquina 1 e o outro de Maquina 2 (que tem só 1 placa).

Bom, pra evitar cabo pela casa e estudar mais tranquilo, deixei a Máquina 1 na sala,  ao lado da Máquina 2, e conectei os 2 via cabo cruzado, mais conhecido como crossover em inglês. Cabo testado ...tudo certo . Ponta A;  1, 2, 3, 4, 5, 6, 7 e 8 e ponta  B;  3, 6, 1, 4, 5, 2, 7 e 8.

Para compartilhar a internet via cabo cruzado consegui e testei nas outras maquinas. Iptables foi usado para isso.

Agora o problema >  Quando espeto o ''cabo direto''  diretamente da Maquina 2  no modem/roteador,  todos os dispositivos conectados via Wifi incluindo a Maquina 2 (Ethernet)  se pingam,  já que o modem faz a ponte normalmente entre  a rede sem fio e com fio formando a rede interna. Mas com o ''cabo cruzado'' entre a Maquina 1 e a Maquina 2 , todos os dispositivos ou maquinas que  usam Wifi  se pingam na rede interna , menos a Maquina 2.
Resumindo,  a Maquina 2 recebe conexão da rede externa (Internet) via cabo cruzado pela Maquina 1 (os dois se pingam), que recebe a comutação via Wifi pelo modem da Net, mas a Maquina 2 está sendo excluída da rede local.

O modem é o ponto central e ''serve'' os IPs via DHCP,  portanto a 2° placa de rede  (ou interface eth0) da Maquina 1 é configurada manualmente.  Alterando o servidor de DHCP no modem para manual tambem não adianta, além de ter que configurar os IPs dos dispositivos manualmente. É por isso (eu acho) que é necessário a Maquina 1 fazer a tal ponte entre 1 ° placa e a 2°, ou seja, é como se a 2° placa entrasse na conexão DHCP do modem.
Não sei se estou escrevendo bobagem, mas tentei fazer isso via Brctl-Utils, porem aqui fico perdido e consigo ativar a br0, mas não consigo conectar... nem aparece nas conexões. Algumas referencias  http://www.guiafoca.org/cgs/guia/avancado/ch-cfgrede.html  ou https://sites.google.com/a/ifpr.edu.br/gustavothl/linux/hostapd me deram alguma luz.

Assim (com o sudo na frente)  >
ifdown -a 
ifconfig eth0 up
ifconfig wlan0 up
brctl addbr br0
brctl addif br0 eth0 wlan0

 
Erro com wlan0 ...encrontrei isso aqui http://superuser.com/questions/597834/bridging-wifi-to-ethernet-on-ubuntu-not-working  > Daí dou o comando > sudo iw dev wlan0 set 4addr on  > Agora o comando brctl addif br0 eth0 wlan0   é aceito ... > Depois ip link set br0 up  e em seguida faço a requisição do servidor DHCP do modem pelo cliente DHCP para a ponte br0 pelo comando dhclient br0  > brctl show ... beleza!
Com ifconfig -a vejo o IP do br0 .... Ops,  br0 fica sem IP,  mas aparece br0:avahi com o IP rsrsrs
Faço as alterações no /etc/network/interfaces de acordo com minha rede ... > sudo  /etc/init.d/networking restart =  Nada.....reiniciando a máquina = Nada.....  sudo ifup br0  mostra algum sinal, mas, nada de  conexão.

O que devo fazer ou qual o melhor caminho?
Agradeço a ajuda de voces!

Edição >  Obs: Quando disse que a Maquina 1 e a Maquina 2 se pingam, formando a rede local apenas entra as duas máquinas, significa que apenas a 2°  placa da Maquina 1 pinga na Maquina 2  e vice versa, ou seja,  a Maquina 2 pinga somente na 2° placa da Maquina 1.   

zekkerj

#1
Pq não tenta compartilhar a conexão wireless com o Gerenciador de Redes (Network Manager)?

EDIT/PS: Ainda bem que vc avisou que quer fazer isso pra estudo, pq se fosse à vera, eu ia te dizer pra comprar um Access Point com a função "Workgroup Bridge".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ElMago

Opa, obrigado pela atenção zekkerj.

Quanto a compartilhar (se entendi bem o que vc disse), sim, a conexão Internet do note wifi  p/ o PC via cabo, como um  ponto a ponto. Os 2 se pingam;  ping ip_maquina_2 e ping ip_maquina_1...blz.  A maquina 2 não tem placa wireless, senao faria ponto de acesso.
O problema é que gostaria de  incluir a Maquina 2 na rede local  Wifi via cabo atraves do note.
Tenho um cabo grande de rede e liguei a Maquina 2 diretamente ao modem, que, fez naturalmente a ponte...testado com ping em todas as maquinas e se enxergaram. Quero fazer essa ponte ma Maquina 1 p/ rede local via cabo pra Maquina 2... Compartilhar internet eu consegui com Iptables.
Abraço!

zekkerj

Não, estou sugerindo para você usar o NM, lá tem um controle pra compartilhar a conexão. Não é como se fosse bridge/switch, e sim como se fosse um roteador.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ElMago

Ok, vou ver dessa maneira.
Qualquer coisa dou um retorno aqui.
Abraço e obrigado novamente!

ElMago

Opa, realmente acho que não vai dar.
Vejo que para isso é necessario que a 'Máquina 1' realmente seja o AP, e para isso seria necessario configurar o modem como ponte. Mesmo assim a Maquina 1 teria que ter mais uma placa wifi ou seja, uma placa como cliente wan (como se fosse a porta wan do roteador) e a outra como servidor lan. Com a Maquina1 sendo  AP, a Maquina 2 (apenas com fio),  alem de receber a internet, tambem entraria na rede local onde  todos os demais dispositivos são clientes wifi. Lógico, nesse caso seria melhor uma placa wifi para a Máquina 2, só p/ evitar cabo. Correto?

Com ifup br0 para o Brctl dava apenas como ''configurada coretamente'', porem sem conectar internet ou lan.  Já no Network Manager a conexão nem aparecia na caixa para poder conectar, só aparecia em 'Edições'  p/ configurar. 

Daí  algumas dúvidas:

Essas pontes feitas pelo Brctl-Utils ou pelo NM, não consegui conectar por faltar uma terceira placa sem fio na Máquina 1?

Pelo que vi,  AP's configurados como cliente  apenas distribuem via cabo.  Já  o modem aqui em casa por exemplo recebe a rede externa pela wan via cabo coaxial e distribui o sinal via wifi como se fossem portas lan, apesa de ter apenas  uma saida lan para o cabo RJ45.  Portanto, assim como a Ethernet que precisa de 2 placas (uma para wan e outra lan), a regra é a mesma para a placa Wifi? ...Acho que seria a lógica...

Bom, zekkerj,  se eu disse algo errado,  por favor me corrija.
Me ajudou bastante, e quanto as perguntas, estou no aguardo.

Abraço!

zekkerj

Não consigo ver motivo pra tanta complicação... bastaria vc ativar o compartilhamento de conexão, normal. Vc não precisa de modo AP nessa interface, vc só precisa se conectar ao roteador wireless e receber um IP.

Depois disso, o que falta? os passos normais do compartilhamento da conexão, ou seja, definir um IP fixo na eth0, ativar o repasse de IPv4 (net.ipv4.ip_forward=1), ativar o NAT da conexão (iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADING), ativar um servidor DHCP pra servir a rede local, ativar um servidor DNS pra servir a rede local. O NM deveria poder fazer isso tudo pra você.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

ElMago

#7
Exatamente!
Por isso que o que eu queria fazer no inicio deste tópico realmente não dá, até pq  um roteador  (o modem daqui mesmo) faz isso, desde que colocasse uma placa wifi na maquina que falta, só p/ evitar cabo. Como disse, espetando cabo diretamente  ''modem >> pc2''  funcionou suave.
Quanto a essas config do Iptables, já tenho elas aqui rsrs.

Pelo que pesquisei, essas perguntas que fiz provavelmente devem ser as proprias respostas para o que eu queria fazer ... realmente me precipitei.

Será que já dá pra eu colocar como tópico resolvido?
Valeu!

ElMago

#8
Olá, não gosto de subir topico velho, mas me enganei em algumas coisas aí...depois de um tempo e já ter acumulado mais  conhecimento, me lembrei desse tópico, e fui colocar em prática o que estudei...
Resolvi testar novamente por esses dias isso aqui em casa. Desta vez deu certo.
Um engano foi com a ponte...O Brctl-Utils é p/ tecnologias distintas, e no caso aqui 'wifi' é também 'ethernet'.
Pois o encaminhamento ou 'ponte' neste sentido é feita pela maquina, firewall...enfim...as configs que já sabemos. Outro engano foi a respeito da 'wan e a uma possivel terceira placa'. Bom,  a questão aqui é o repasse, então não precisa de outra, ou seja, precisa ativar o encaminhamento (echo 1 > /proc/sys.....).
Se na Maquina1 já estava ativado, faltou então adicionar rotas estáticas, foi o que me passei!
Outro engano foi que na época tava trabalhando com o 'Network'  ao mesmo tempo que o NM e não percebi.
Por último foi a questão do gateway. O gateway da maquina 2 é o IP da maquina 1, porém na mesma faixa de rede do gateway do modem/roteador (192.168.0.0/24). Como se fossem duas redes da mesma faixa...
Confuso, mas desta forma, foi preciso adicionar rotas estáticas, porém limitando a conexão apenas entre os
dispositivos configurados com o 'route', o que é inviável, por exemplo se adicionasse rota p/ conectar à algum que ficou de fora, anulava outra rota configurada..Mudando para outra faixa de rede para 192.168.1.0 o endereço da eth0 da máquina 1 o problema foi resolvido completamente diminuindo o numero de rotas estaticas ou configurações.
Testei tanto a rede atrás do modem, quanto o modem em modo ponte (bridge)...em  modo ponte com a mesma faixa de rede nem rolou, mas com faixas de rede diferentes (uma pra cada gateway) funcionou, e sem precisar adicionar muitos roteamentos.
A seguir vou mostrar como fiz...

Primeiro com o servidor de conexão sendo o modem/roteador
Modem IP =  IP válido dinâmico
Modem IP local = 192.168.0.1/24
Maquina 1  wlan0 = 192.168.0.2/24
Gateway da Maquina 1 = 192.168.0.1
Maquina 1 eth0 = 192.168.0.3/24 # Note que é mesma faixa (aqui o problema rsrs)
Gateway da eth0  Maquina 1 = sempre 0.0.0.0
Maquina 2 IP = 192.168.0.4 /24 # É eth0
Gateway Maquina 2 = 192.168.0.3

192.168.0.10 é outra máquina da rede, na qual o 'gateway' é o 192.168.0.1, claro!
Nesta máquina precisei ativar o roteamento com 'echo 1 > /proc/sys/net/ipv4/ip_forward'

Na Maq 1:
# route add -host 192.168.0.10 gw 192.168.0.2 dev wlan0
# route add -host 192.168.0.1 gw 192.168.0.3 dev eth0
# route add -net 192.168.0.0/24 gw 192.168.0.3 dev eth0

Na Maq 2:
# route add -host 192.168.0.10 gw 192.168.0.3 dev eth0

Na Maq 'Fedora' 192.168.0.10/24: 
# route add -net 192.168.0.0/24 gw 192.168.0.3 dev wlp0s9

Adicionar um outro dispositivo...se tornou inviável...
Fazer pingar estas maq em outro dispositivo, anulava acesso ao gateway padrão e vice-versa!

Agora:
Maquina 1 eth0 = 192.168.1.1/24
Maquina 2 IP = 192.168.1.2 /24 
Gateway Maquina 2 = 192.168.1.1

Foi preciso apenas adicionar rota para rede nos clientes do 192.168.0.1 (modem)
Na maquina 192.168.0.10, sem precisar ativar o roteamento :
# route add -net 192.168.1.0/24 gw 192.168.0.2 dev wlp0s9

Agora consigo adicionar outro cliente do 192.168.0.1
Android por exemplo:
# ip route add 192.168.1.0/24 via 192.168.0.2 dev wlan0

Desta forma, c/ o modem no modo ponte foi preciso apenas mais um comando na Maquina 2:
# route add -host 10.42.0.1 gw 10.42.0.24 dev wlan0

No gateway:
# route add -net 10.42.1.0/24 gw 10.42.0.24 dev wlp0s9

No Android:
# ip route add 10.42.1.0/24 via 10.42.0.24 dev wlan0

Essa faixa na classe A com a mascara /24 é porque o modem em ponte distribuiu via cabo para o gateway , e o Wifi agora ficou como interface do compartilhamento (wlp0s9), que se tornou o AP com DHCP embutido para os dispositivos da rede. E claro, a interface com fio (eth0) do gateway que recebeu a rede externa, ficou com o IP válido, ou seja, de cara pra rede!
No Modem desativei o Wifi antes de desabilitar o roteamento.

Gateway = 10.42.0.1/24
Maq 2 = 10.42.0.24
Maq 2 eth0 = 10.42.1.1
Maq 3= 10.42.1.2 com gateway 10.42.1.1

Bom, isso aí, se tiverem alguma dica, melhor ainda!
Agora, resolvido literalmente rsrs
Conhecer é o mais importante!