Conecte os dispositivos conectados na ethernet Raspberry Pi à rede WiFi

4

Estou apenas começando uma missão para aprender mais sobre redes e segui um tutorial ( link ) para transformar meu Raspberry Pi em um roteador wifi.

Isso funcionou muito bem, então modifiquei um pouco para poder usar um iphone conectado à internet - mudei todas as referências "eth0" para "eth1" (a interface do iphone) e adicionei um script para configurar tudo quando o telefone está conectado.

Esta configuração liberou a porta ethernet do Pi, então eu gostaria de tentar dar um passo adiante e permitir que dispositivos conectados a ela se conectem à rede. Se possível, gostaria de adicionar um switch para poder conectar vários dispositivos.

Eu tentei brincar com nat & iptables sem sorte, então minha pergunta é: como posso conectar dispositivos na eth0 à minha rede wlan?

EDITAR:

Algumas informações extras abaixo. Estes são de depois que o telefone está conectado.

Saída de iptables -t nat -L :

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere

Saída de netstat -rn :

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.20.10.1     0.0.0.0         UG        0 0          0 eth1
172.20.10.0     0.0.0.0         255.255.255.240 U         0 0          0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 wlan0

EDIT 2:

O seguinte está no meu arquivo dhcpd.conf:

subnet 192.168.10.0 netmask 255.255.255.0 {
 range 192.168.10.10 192.168.10.200;
 option broadcast-address 192.168.10.255;
 option routers 192.168.10.1;
 default-lease-time 600;
 max-lease-time 7200;
 option domain-name "local-network";
 option domain-name-servers 8.8.8.8, 8.8.4.4;
}

O dhcp está configurado para rodar em wlan0 - / etc / default / isc-dhcp-server:

INTERFACES="wlan0"
    
por Tom 11.06.2014 / 10:29

1 resposta

3

Estritamente falando, não é preciso muito mais. Presumo que você já tenha ativado o encaminhamento IPv4 e, possivelmente, também esta regra:

  iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

que permitirá a NAT todas as suas conexões. Então sua tabela de roteamento precisa

  ip route add default via IP_ADDRESS_OF_YOUR_PHONE

que também presumivelmente já tem. Então você é bom para ir.

EDITAR:

Agora que você postou sua tabela de roteamento (mas, por favor, não use comandos obsoletos, obsoletos como * ifconfig, route, ..., apenas o comando ip , por exemplo, para a tabela de roteamento ip route show , para ver os endereços das interfaces ip addr show , ...) Eu vejo que você não tem uma rota para seus clientes-porta ethernet. Se a rede da qual você puxa os clientes de conexão de cabo da porta de endereços IP for 192.168.20.0/24, você terá que adicionar:

   ip route add 192.168.20.0/24 dev eth1

Você não deve usar a mesma rede para clientes sem fio e a cabo.

Se além disso você precisar configurar dhcpd , edite o mesmo arquivo /etc/dhcp/dhcpd.conf como antes, e adicione a nova rede:

  subnet 192.168.10.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 192.168.10.1;
range 192.168.10.100 192.168.10.200;
}

subnet 192.168.20.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 192.168.20.1;
range 192.168.20.100 192.168.20.200;
}

No arquivo / etc / default / isc-dhcp-server, altere a linha INTERFACES="wlan0" para

 INTERFACES="wlan0 eth0"

e, por último, dar ao roteador um bom endereço em sua eth0 NIC:

 ip link set dev eth0 down
 ip addr flush dev eth0
 ip addr add 192.168.20.1/24 dev eth0
 ip link set dev eth0 up

Reinicie o dhcp, você deve estar OK.

    
por 11.06.2014 / 11:41