No momento, estou configurando meu roteador iot e encontrei alguns problemas em relação à velocidade de conexão. O próprio roteador é um roteador em cascata. A velocidade da minha Internet é de 100Mbit, que verifiquei conectando-me diretamente ao roteador principal por meio do teste de velocidade. No entanto, se eu conectá-lo através do meu roteador em cascata, só obtenho uma velocidade de conexão entre 10-18Mbit. Acho que o encaminhamento de IP do Kernel ou o NAT do Iptables provavelmente estão configurados incorretamente.
O sistema operacional é Debian 8 Kernel versão 3.4 (Bananian Linux)
O roteador em si é um Banana PI BPI R1
Iptables está executando a versão v1.4.21
Os comandos relevantes que executei para configurar minha rede são
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0.101 -j MASQUERADE
(eth0.101 é a interface de saída conectada ao roteador principal.)
encaminhamento de ip habilitado via systemctl
ipv6 fica totalmente desabilitado
pois a placa de rede do roteador usa um switch interno, tenho que usar vlans para separar a "lan" da "wan" consigo isso via ferramenta swconfig
swconfig dev eth0 set reset 1
swconfig dev eth0 set enable_vlan 1
swconfig dev eth0 vlan 101 set ports '3 8t'
swconfig dev eth0 vlan 102 set ports '4 0 1 2 8t'
swconfig dev eth0 set apply 1
Por que eu acho que este é o NAT/Forwarding? Meu primeiro pensamento foi, bem, minha placa de rede não é capaz de velocidades mais altas, embora diga que é. Porém para confirmar isso rodei um proxy meias5 no meu roteador e desativei o encaminhamento de IP para o teste, ao rodar um speedtest via proxy meias5 consegui atingir os 100Mbit o que me faz concluir que não é minha placa de rede que está dando gargalo nisso .
Eu tentei algumas coisas, incluindo aumentar o tamanho das filas de pacotes para minhas interfaces VLAN, pois eram zero, isso não mudou nada.
Eu também não acho que a CPU do meu roteador seja muito fraca para rodar isso, porque porque ela seria forte o suficiente para trabalhar com um proxy sockets5 genérico e muito fraca para trabalhar com iptables?
Aqui está uma saída de ifconfig
:
eth0 Link encap:Ethernet HWaddr 02:07:0b:02:15:ac
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:370503 errors:0 dropped:0 overruns:0 frame:0
TX packets:365330 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:310436570 (296.0 MiB) TX bytes:308685327 (294.3 MiB)
Interrupt:117 Base address:0xc000
eth0.101 Link encap:Ethernet HWaddr 02:07:0b:02:15:ac
inet addr:192.168.178.2 Bcast:192.168.178.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:209032 errors:0 dropped:0 overruns:0 frame:0
TX packets:171418 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:203959632 (194.5 MiB) TX bytes:102579119 (97.8 MiB)
eth0.102 Link encap:Ethernet HWaddr 02:07:0b:02:15:ac
inet addr:10.8.0.1 Bcast:10.8.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:161471 errors:0 dropped:0 overruns:0 frame:0
TX packets:193912 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:99807884 (95.1 MiB) TX bytes:204644888 (195.1 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
bem como /etc/network/interfaces
:
auto lo
iface lo inet loopback
auto eth0.101
iface eth0.101 inet static
address 192.168.178.2
network 192.168.178.0
netmask 255.255.255.0
gateway 192.168.178.1
nameserver 8.8.8.8
auto eth0.102
iface eth0.102 inet static
address 10.8.0.1
network 10.8.0.0
netmask 255.255.255.0
Qualquer ideia seria muito apreciada.
O Banana R1/Lamobo R1, embora seja uma peça de hardware interessante, tem muitas deficiências.
Em primeiro lugar, a largura de banda da interface interna do "switch" é compartilhada. Um máximo teórico de 1 GBps para todas as 5 portas compartilhadas; a velocidade oficial que as pessoas conseguiram obter por interface é de cerca de 300Mbit.
Em segundo lugar, ele deve ser configurado para isso, na árvore de dispositivos (sobreposições?) Pelo sistema operacional usado - não consigo lembrar os detalhes específicos. Caso contrário, será lento.
Bananian Linux é um hack feio, não funciona bem, vai te dar problemas, e pode não configurar bem o seu switch gigabit. Além disso, o Bananian é oficialmente um projeto obsoleto desde o final do primeiro trimestre de 2017, e as atualizações de segurança para ele deixarão de aparecer em alguns meses.
Usei o R1 com Armbian por um tempo; funcionou bem. Também cortei fisicamente o wifi realtek dele, só criava instabilidade mesmo quando não estava sendo usado.
Você também pode ter problemas de energia com discos rígidos mecânicos; Eu usei um SSD.
Como recomendação, pare de usar o Bananian e experimente o ArmBian. Cuidado, a interface do switch é diferente no Armbian, pois usa um kernel 4.x mais recente.
Por fim, nem perca tempo experimentando a versão OpenWRT para R1. É um trabalho mal feito e cheio de hacks para contornar o grande firewall da China.
Deixando agora as considerações específicas do R1 e indo para o lado do roteamento, uma otimização que pode ser feita na maioria dos roteadores ISP de nível de consumidor é configurar uma porta com ponte e conectar seu R1 lá. Assim, sua interface externa receberá um endereço IP público e seu NAT não terá novamente um NAT duplo do ISP. (estou fazendo o mesmo aqui)
PS Para os leitores que vêm aqui. O R1/R1S não vale o seu tempo e dinheiro, em vez disso, obtenha um roteador AP que pode ser hackeado com o OpenWRT.