Alguém já usou o Raspberry Pi como um dispositivo de roteamento?
Principalmente, quero usá-lo para monitorar minha rede, e seria ótimo se tivesse uma entrada e uma saída para Ethernet, mas não tem, por isso estou pensando se é muito eficaz monitorar a rede com a entrada Ethernet. e, em seguida, usando um dongle USB como roteador Wi-Fi. Alguém já fez algo como isso? Isso diminui muito a velocidade da Internet?
Respostas:
Eu tenho usado meu modelo B como um roteador com modelagem de tráfego, usando apenas a porta Ethernet que ele acompanha. Aqui está uma rápida e suja sobre como:
Configure seu Pi com a configuração de rede estática para que não seja influenciado pelas alterações de DHCP sugeridas abaixo. Aqui estão os conteúdos do meu
/etc/network/interfaces
como referência:Agora altere as configurações de DHCP da sua rede para que o gateway / roteador padrão seja o seu Pi. Isso provavelmente significa alterar as configurações da caixa do roteador ADSL existente. No meu exemplo acima, o endereço IP do meu Pi é
192.168.1.1
.Quando seus dispositivos se reconectarem à rede, eles serão informados de que seu Pi é o gateway da Internet e todo o tráfego conectado à Internet será enviado a ele. O seu Pi, por sua vez, retransmitirá todo esse tráfego para o roteador usual. Pode ser necessário desconectar e reconectar seus dispositivos para que essas alterações entrem em vigor.
Agora você pode criar ou instalar uma ferramenta para fazer seu monitoramento, como o vnstat .
Modelagem de tráfego
Quanto à modelagem de tráfego, aqui está outro guia rápido e sujo que fará uso de minha própria variante pessoal de formador de maravilhas .
Para que isso seja útil, você precisa saber a velocidade da sua conexão à Internet. Geralmente, você pode encontrar isso na interface da web do roteador (original), mas na falta de obter uma estimativa usando um teste de velocidade .
sudo apt-get install iptables
wget https://raw.github.com/meermanr/adsl/master/wondershaper/wondershaper
sudo ./wondershaper eth0
imprimirá o status atual da modelagem de tráfego. Obviamente, o status esperado é que não há modelagem, o que significa que existe uma única regra em vigor, chamadapfifo_fast
:eth0
é o nome do adaptador de rede com fio em um modelo B. Consulteifconfig
os nomes das interfaces no seu sistema)sudo ./wondershaper eth0 3000 370
, Onde:3000
é a velocidade de downlink da minha conexão à Internet em kbit . Então 3Mbit == 3000kbit370
é a velocidade de conexão da minha conexão à Internet, em kbit novamente.sudo ./wondershaper eth0
agora deve mostrar muito mais saída:Seu tráfego de rede de saída agora está sendo modelado pelo seu Pi e seu tráfego de entrada está sendo diminuído levemente para garantir que o Pi, e não sua caixa de roteamento original, tenha controle de tráfego.
Para desativar a modelagem, basta executar
sudo ./wondershaper eth0 clear
. Você pode alterar as taxas de uplink e downlink sem limpar primeiro, mas isso não prejudica.Atualização: Você também precisa desativar a transmissão de redirecionamentos de ICMP , pois precisamos que todo o tráfego passe pelo Pi para que a configuração ocorra. Acontece que o kernel do Linux é inteligente o suficiente para descobrir que os clientes em sua rede doméstica poderiam conversar diretamente com a caixa ADSL, em vez de direcionar o tráfego pelo Pi, e isso é informado a cada oportunidade. Os clientes então enviam o tráfego diretamente para sua caixa ADSL, e o Pi não tem chance de moldá-lo. Desative-o imediatamente, perdido (quando você reiniciar novamente):
Atualize o seguinte para definir isso durante a inicialização:
/etc/sysctl.conf
(Agradecemos a https://unix.stackexchange.com/a/58081/22537 por esta dica)
Você também pode estar interessado em minhas notas pessoais sobre a configuração de um gateway Linux: http://www.robmeerman.co.uk/unix/gateway
fonte
wondershaper
sugestão: o limite é por cliente ou em geral?Tendo um pouco de background de rede, a primeira coisa que vem à mente é usá-lo como uma caixa de Snort e, então, você não precisa se preocupar em ter apenas uma interface. Você configuraria seu switch / roteador para encaminhar todo o tráfego para o Pi, mas também passá-lo para o dispositivo final. Isso é conhecido como monitor de porta de switch, mas seu dispositivo pode não suportá-lo. Você pode precisar de uma opção gerenciada para fazer isso. Snort analisaria o tráfego e apresentaria um relatório. Mais informações em Snort http://www.snort.org/
O bom desse tipo de configuração é que seu Pi está sentado ao lado, assistindo tudo o que está sendo executado pelo comutador, em vez de ficar alinhado com os dados. Se você tiver uma falha de software dessa maneira, o tráfego ainda poderá fluir, mas não será monitorado. Com o que você está descrevendo com duas interfaces, seu programa falha, sua rede falha.
Isso não usa o pi como roteador, mas permite monitorar e relatar o tráfego que está se movendo pela sua rede.
fonte
Eu usei o Raspberry Pi para roteamento e funcionou bem. Como você diz, você precisa de pelo menos mais uma interface de rede, pois o Raspberry Pi possui apenas uma porta Ethernet. Você pode adicionar outra interface conectada à porta USB. Eu usei um modem GSM e um stick Wi-Fi.
Coisas a serem observadas:
Aqui está meu post sobre roteamento e outro sobre como configurar um ponto de acesso Wi-Fi . Este guia me ajudou com a configuração de roteamento. O material de roteamento não é muito específico para o Raspberry Pi; qualquer coisa que funcione no Linux em geral deve ser possível. Os detalhes dependem um pouco de qual distribuição você usa.
fonte
Estou usando o Raspberry Pi como roteador há cerca de um mês, sem problemas. Eu tenho uma porta de acesso Wi-Fi comercial real, não um roteador Wi-Fi doméstico, então usei isso. Eu também tenho um conversor USB-Ethernet que foi "emprestado" do Wii. Isso vai para a LAN doméstica e a Ethernet interna do Raspberry Pi vai para a WAN / Internet.
Vá buscar uma cópia do IPFire para o Raspberry Pi. Você deseja a versão ARM, sem um console serial e a versão estável mais recente. Clique na guia ARM. Faça o download da "Imagem para a arquitetura armv5tel".
Inicialize com isso. Conecte uma TV e teclado HDMI. Responda às primeiras perguntas. O restante da configuração pode ser feito a partir de um navegador na rede doméstica, para que você não precise da TV ou do teclado depois disso.
Não foi muito difícil e funcionou como um campeão! Aqui estão as instruções formais: http://wiki.ipfire.org/en/hardware/arm/rpi
Uma última coisa. Se você for usar um dongle Wi-Fi com alimentação USB, verifique a fonte de alimentação do seu Raspberry Pi. Uma fonte de alimentação USB de 700 mA pode ser suficiente para alimentar o Raspberry Pi, mas não deixa muito para alimentar o Wi-Fi. Use um hub USB energizado ou energize o Raspberry Pi com uma fonte de alimentação USB de 1 a 2 A.
Boa sorte!
fonte
(Este adendo segue a minha resposta anterior , que foi um guia sobre como configurar o seu Pi como gateway da Internet da sua LAN)
Não contente em monitorar meu uso geral da Internet, escrevi uma ferramenta que monitora o uso da Internet de cada dispositivo na minha LAN. Isso me permite ver o uso instantâneo em uma janela do console e gerar gráficos de uso histórico para que eu possa ver o que aconteceu da noite para o dia.
Rhodes , uma ferramenta para monitorar o uso histórico e em tempo real da rede de dispositivos LAN (com base no endereço MAC): https://github.com/meermanr/adsl/tree/master/rhodes
Amostra de saída do console:
A primeira coluna mostra a quantidade de dispositivos que estão transmitindo, o que geralmente significa fazer o upload para a Internet. A exceção é o próprio roteador ADSL (home.gateway na amostra acima) que transmite dados recebidos do ISP do dispositivo que o solicitou (ou seja, downloads). Obviamente, ele também transmite uploads para a Internet, mas faz isso usando seu modem ADSL, que não está na LAN e, portanto, não é visível para esta ferramenta.
A outra exceção seria o próprio Raspberry Pi ("Flux" no exemplo acima), que naturalmente transmite todos os dados que gerencia, nas duas direções.
Mas, além dessas exceções, os números TX (transmissão) se referem ao upload e os números RX (recebimento) ao download. A terceira coluna é o endereço MAC do dispositivo (sem os separadores ":" ou "-" usuais). A quarta coluna mostra o nome legível por humanos do dispositivo, se for conhecido.
Os gráficos são gerados em execução
./index.py
, cujo objetivo é ser chamado de um servidor da Web comolighttpd
(comindex.py
adicionado àindex-file.names
configuração em/etc/lighttpd/lighttpd.conf
). Você pode simplesmente executá-lo manualmente e ele irá gerar algumas imagens e imprimir HTML em STDOUT. Então, você deseja redirecioná-lo para um arquivo que você pode abrir em um navegador:Em seguida, abra index.html no seu navegador preferido.
Requisitos de instalação (todos podem ser instalados com
apt-get install
):tcpdump
- Ferramentas de linha de comando para capturar e descrever o tráfego de rederrdtool
- Ferramenta Round Robin Database, registros e gráficos de dados de séries temporaisrrdcached
- Round Robin Database Caching Daemon, serviço que reduz as despesas gerais ao trabalhar simultaneamente com vários arquivos RRD.pypy-upstream
(uma rápida implementação da linguagem de programação Python)python rhodes.py
(pypy
é uma implementação alternativa da linguagem de programação Python que faz a compilação Just-In-Time (JIT), para que scripts de longa duração usem menos ciclos de CPU ao custo de mais memória)Nota de uso : A ferramenta 'tcpdump' usada por este script requer privilégios de root para acessar o tráfego bruto da rede. Isso é alcançado iniciando
sudo tcpdump
quando o script é iniciado, para que você seja solicitado a digitar sua senha. Pessoalmente, adicionei uma regra NOPASSWD para/etc/sudoers
que nunca seja solicitado.fonte