Estou tentando configurar meu Raspberry Pi como uma ponte, usando o Debian wheezy. Eu tenho um hostapd.conf
: (alguns detalhes foram alterados por segurança e, sim, eu sei que o WEP não é bom) ...
interface=wlan0
bridge=br0
driver=nl80211
auth_algs=1
macaddr_acl=0
ignore_broadcast_ssid=0
logger_syslog=-1
logger_syslog_level=0
hw_mode=g
ssid=MY_SSID
channel=11
wep_default_key=0
wep_key0=MY_KEY
wpa=0
E isso em /etc/network/interfaces
:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
auto br0
iface br0 inet dhcp
bridge-ports eth0 wlan0
Tudo parece dar certo, mas não consigo me associar à conexão sem fio em ponte - mesmo que as luzes piscando no pen drive sugiram que os pacotes estão sendo trocados.
Eu li em algum lugar que nem todos os cartões / dispositivos serão executados no modo hostap - eles não passarão pacotes em uma direção: está certo? (A informação era um pouco antiga) - este é o meu cartão:
[ 3.663245] usb 1-1.3.1: new high-speed USB device number 5 using dwc_otg
[ 3.794187] usb 1-1.3.1: New USB device found, idVendor=0cf3, idProduct=9271
[ 3.804321] usb 1-1.3.1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
[ 3.816994] usb 1-1.3.1: Product: USB2.0 WLAN
[ 3.823790] usb 1-1.3.1: Manufacturer: ATHEROS
[ 3.830645] usb 1-1.3.1: SerialNumber: 12345
Então, o que eu entendi errado aqui?
Atualização : Então, eu fiz novas investigações e posso levantar a ponte, mas aparentemente isso destrói a conexão Ethernet (com fio), o que é estranho. Por exemplo, no RPi:
Inicialize o sistema ...
ping 192.168.62.1
(roteador) - isso funciona
Tentativa de associação à LAN sem fio ... falha (ou melhor, "com conectividade limitada" no telefone Android - nada bom)
brctl showmacs br0
Isso só mostra o mac da wlan0 e o mac do telefone neste momento
brctl addif br0 eth0 wlan0
Neste ponto, agora posso associar o telefone à rede sem fio, mas ...
ping 192.168.62.1
... falha
E da mesma forma, não consigo mais executar ping no RasPi de nenhuma outra máquina na rede
Corrida
ifconfig br0
Sugere que a ponte está descartando pacotes ...
Alguma ideia?
Atualização adicional : O /etc/network/interfaces
arquivo agora (e para a sequência acima) diz:
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
fonte
iw dev wlan0 info
mostra? E pesquisar no Google ID do dispositivo mostra que você precisa de um kernel recente ou de módulos sem fio para executar este dispositivo no modo AP. Veja isso . Qual kernel eath9k
driver você está executando?Respostas:
Pontes fáceis:
Existe um projeto no sourceforge feito apenas para a sua situação. http://sourceforge.net/projects/bridger/ Ele ainda vem como um pacote deb.
Com relação a 'descartar' pacotes:
Você verificou se o iptables está definido como padrão?
sudo iptables --list
deve dizer "ACEITAR, ACEITAR, ACEITAR" para uma caixa deste tipo. Se for esse o problema, desative-o.Você está mesmo encaminhando os pacotes, mano? Verifique se a linha "net.ipv4.ip_forward = 1" NÃO está comentada em /etc/sysctl.conf (por padrão) e, em seguida, reinicie sua rede.
O modo promíscuo não é suportado pelo seu dongle sem fio. (o que significa que ele não pode aceitar pacotes que não são destinados a ele)
Ponte pura versus ponte compartilhada:
iface br0 inet dhcp indica uma ponte compartilhada , o que significa que a própria ponte recebe um IP e pode ser um ponto de extremidade para o tráfego.
Uma ponte pura não obtém um endereço IP e apenas encaminha o tráfego entre as duas interfaces
Arquivo de configuração de amostra de ponte compartilhada / etc / network / interfaces (Debian / Ubuntu)
Reinicie a rede:
sudo /etc/init.d/networking restart
Depois de fazer alterações complexas na configuração da rede, é mais fácil apenas reiniciar em vez de garantir que tudo tenha sido reiniciado corretamente na reinicialização.Você acha que tem problemas de roteamento:
Elimine o DNS como causa , testando com
ping 8.8.8.8
. Se isso funcionar, provavelmente você tem um problema de DNS na sua rede.Verifique seu gateway com a
sudo ip route
esperança de verdefault via 192.168.1.1 dev br0 proto dhcp
(assumindo que seu gateway seja 192.168.1.1). Se estiver ausente ou errado, corrija-osudo ip route add default via 192.168.1.1
. Teste novamente:ping 8.8.8.8
Renove o seu ip ponte compartilhada com
dhclient br0
e reteste comping 8.8.8.8
Verifique suas interfaces 'escravo' com
ifconfig
e certifique-se eth0 e wlan0 NÃO têm endereços IP. Eles fazem parte da ponte agora. Se o fizerem, certifique-se de removê-los de todos os arquivos de configuração, defina-os como 0.0.0.0 estático ou algo assim.Se nada disso funcionar, tente o aplicativo de ponte debian e, se isso não funcionar, seu dongle sem fio não suporta o modo promíscuo. (Veja acima)
Se funcionar a qualquer momento aqui, reinicie e verifique se ainda funciona.
fonte
eth0
ewlan0
neste exemplo? Especificamente, como você define o SSID e qualquer autenticaçãowlan0
?Eu tenho algumas pontes sem fio trabalhando no Debian Linux e Openwrt, por isso estou muito familiarizado com esse problema.
Você perdeu um comando importante: esqueceu de dizer ao driver sem fio para transmitir quadros de 4 endereços (às vezes chamado de forma inadequada / histórica de WDS), necessário para a ponte sem fio 802.11 /. Faça isso com o comando "iw dev wlan0 set 4addr on". Use uma declaração "pre-up" no seu arquivo de interfaces Debian na ponte para aplicá-la antes de abrir a ponte. Observe que o modo de quadro de 4 endereços requer suporte de driver e alguns drivers ou hardware ruins 802.11 podem não ser compatíveis.
Eu também suspeito fortemente que seus problemas podem ter sido complicados por um bug no kernel do Linux que afeta especificamente as interfaces de ponte. Eu me deparei com esse bug e tive que compilar meu próprio wpa_supplicant a partir de fontes porque a versão no Debian é antiga e afetada. wpa_supplicant e hostapd compartilham uma base de código comum, mas não tenho certeza absoluta de que isso afetou tanto o hostapd quanto o wpa_supplicant.
Há uma solução alternativa para o problema aqui:
https://w1.fi/cgit/hostap/commit/?id=e6dd8196e5daf39e4204ef8ecd26dd50fdca6040
Estou com a impressão de que está na versão 2.5 e sei que está na fonte 2.6 atual. A versão atual do Debian é 2.4, que está quebrada. Por favor, incomode o projeto Debian para atualizar seus pacotes wpasupplicant e hostapd.
Aqui está um exemplo de configuração para um cliente de ponte sem fio usando WPA / WPA2 com uma ponte sem fio entre as interfaces wlan0 e eth0, com o host obtendo um endereço DHCP na interface br0 (substitua "dhcp" por "manual" para nenhum endereço IP). Para uma situação em que você deseja ser o AP, inclua os comandos interface = e bridge = no hostapd.conf e omita os comandos wpa- * abaixo.
No seu arquivo / etc / network / interfaces:
E verifique se o seu wpa_supplicant é a versão 2.5 ou posterior. Não funcionará com o wpa_supplicant 2.4 e as versões atuais do kernel.
Devo também observar que atualmente há um bug de corrida no ifup, onde as interfaces de ponte podem não aparecer no momento da inicialização, mas isso é outra questão.
fonte
Você parece precisar de encaminhamento de IP.
experimentar
cat /proc/sys/net/ipv4/ip_forward
Se for
0
problema:echo 1 > /proc/sys/net/ipv4/ip_forward
fonte
sys.net.ipv4.ip_forward
é para roteamento IPv4, NAT etc. O Bridges trabalha uma camada abaixo na pilha de rede.A ponte só pode funcionar quando uma interface recebe todos os pacotes, caso contrário, eles verão os pacotes endereçados apenas a eles. Sua configuração atual pode descrever uma configuração para um roteador, mas não para uma ponte.
eth0 e wlan0 não devem ter endereços IP (significando 0.0.0.0) e, se desejar, você sempre pode usar um endereço IP para br0.
Aqui está também alguma documentação oficial: http://wiki.debian.org/BridgeNetworkConnections
fonte
configurar wlan0
vi / etc / network / interface
vi /etc/sysctl.conf
vi /etc/rc.local
fonte