Encaminhamento IP Iptables NAT / Kernel limitado a ~ 10Mbit

1

No momento, estou configurando meu roteador iot e me deparo com alguns problemas relacionados à velocidade da conexão. O roteador em si é um roteador em cascata. Minha velocidade de Internet é de 100 Mbits, o que verifiquei conectando diretamente ao roteador principal através do teste de velocidade. No entanto, se eu conectá-lo através do meu roteador em cascata, eu só obtenho uma velocidade de conexão entre 10-18Mbit. Acho que o encaminhamento de IP do Kernel ou o NAT dos Iptables provavelmente estão mal configurados.

O sistema operacional é o Debian 8 Kernel Versão 3.4 (Bananian Linux)
O próprio roteador é uma 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 que está conectada ao roteador principal.)

O encaminhamento de ip é ativado via systemctl
ipv6 está completamente desativado
já que a placa de rede do roteador usa um switch interno, eu tenho que usar vlans para separar o "lan" do "wan" eu consegui isso através da 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 esse é o NAT / Encaminhamento? Meu primeiro pensamento foi, bem, minha placa de rede não é capaz de velocidades mais altas, embora diga que é. No entanto, para confirmar isso, eu executei um proxy socks5 no meu roteador e desabilitei o encaminhamento IP para o teste, ao executar um teste de velocidade através desse proxy socks5 consegui atingir os 100Mbit, o que me faz concluir que não é minha placa de rede que está afundando .

Eu tentei algumas coisas, incluindo o aumento dos tamanhos de filas de pacotes para minhas interfaces de VLAN, pois elas eram zero, isso não mudou nada.

Eu também não acho que a CPU do meu roteador é muito fraca para rodar isso, porque por que seria strong o suficiente para trabalhar com um proxy genérico socks5 e muito fraco para funcionar com o 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.

    
por UXELDUXEL 03.03.2018 / 02:37

1 resposta

3

O Banana R1 / Lamobo R1, enquanto uma peça interessante de hardware tem muitas deficiências.

Primeiramente, a largura de banda da interface interna "switch" é compartilhada. Um teórico 1GBps tops para todas as 5 portas compartilhadas; a velocidade oficial que as pessoas conseguiram obter por interface é de cerca de 300Mbit.

Em segundo lugar, tem que ser configurado para isso, na árvore de dispositivos (sobreposições?) pelo sistema operacional que está sendo usado - não se lembra dos detalhes específicos. Ou então será lento.

O Bananian Linux é um hack feio, não funciona bem, vai 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 atualizações de segurança para ele deixarão de aparecer em alguns meses.

Eu usei o R1 com o Armbian por um tempo; funcionou bem. Eu também cortei fisicamente o realtek wifi dele, ele só criou instabilidade mesmo quando não está 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 último, não perca tempo tentando a versão do OpenWRT para R1. É um trabalho mal feito e cheio de hacks para trabalhar em torno do grande firewall da China.

Deixando agora considerações específicas de 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 está configurando uma porta com ponte e conectando 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. (Eu estou fazendo o mesmo aqui)

PS Para os leitores que vêm aqui. O R1 / R1S não vale seu tempo e dinheiro, em vez disso, obtenha um roteador AP que possa ser hackeado com o OpenWRT.

    
por 03.03.2018 / 12:17