Používáte Raspberry Pi jako router?

Použil někdo svůj Raspberry Pi jako směrovací zařízení?

Chci jej hlavně použít k monitorování své sítě a bylo by být skvělé, pokud by to mělo vstup a výstup pro Ethernet, ale není to tak, tak jsem přemýšlel, jestli je velmi efektivní monitorovat síť pomocí ethernetového vstupu a poté pomocí USB klíče jako Wi-Fi routeru. někdo něco takového udělal? Zpomaluje to internet moc?

Komentáře

  • Záleží na tom, jak rychlé je vaše připojení k internetu. Můj má 100 MB, Takže jsem si ‚ jistý, že by to zpomalilo;)
  • Jsem ‚ připojení k internetu rychlostí 30 Mb / s, a v tuto chvíli s provozem 5 Mb / s moje inline malinová pí s odfrknutím spotřebovávají ~ 50–95% CPU a 85% paměti. Moje nastavení ještě není vyladěno, ale chci vám ukázat několik skutečných čísel.
  • dělá někdo ne, jak funguje alokace špatné šířky s přizpůsobeným routerem pomocí maliny pi? jako, mám sp Díky 3Mbps připojení k internetu mám 10 uživatelů. můžete vysvětlit, jak to bude rozděleno? rychlost 3 Mb / s. Dík. Doufám, že rozumíš. 🙂
  • Ahoj Kirbs. Nepokládejte prosím otázku na jinou otázku. Místo toho otevřete novou otázku pomocí odkazu Položit otázku v horní části stránky. Děkuji.
  • Možná tohle? learn.adafruit.com/…

odpověď

Používám svůj model B jako směrovač s formováním provozu a používám pouze jeden ethernetový port, se kterým je dodáván. Zde se dozvíte, jak :

  1. Povolit předávání IPv4 , takže vaše Pi bude fungovat jako směrovač předáváním veškerého přijatého provozu
  2. Nakonfigurujte své Pi se statickou konfigurací sítě, takže na něj nebudou mít vliv níže doporučené změny DHCP. Zde je obsah mé /etc/network/interfaces jako reference:

    # pi@flux:/home/pi/projects/adsl/rrdlogger (master *) # cat /etc/network/interfaces auto lo iface lo inet loopback #iface eth0 inet dhcp iface eth0 inet static address 192.168.1.1 netemask 255.255.255.0 gateway 192.168.1.254 # IP of my ADSL router box allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp 
  3. Nyní změňte nastavení DHCP vaší sítě tak, aby výchozí bránou / routerem bylo vaše Pi. To pravděpodobně znamená změnit nastavení vašeho stávajícího ADSL router router. V mém příkladu výše je moje IP adresa Pi 192.168.1.1.

Když se vaše zařízení znovu připojí k síti, bude jim řečeno, že vaše Pi je jejich brána do internetu, a bude jim odeslán veškerý internetový provoz. Vaše Pi bude zase přenášet veškerý tento provoz na váš obvyklý router. Aby se tyto změny projevily, možná budete muset zařízení odpojit a znovu připojit.

Nyní můžete vytvořit nebo nainstalovat nástroj, který za vás provede monitorování, například vnstat .

Traffic Shaping

Co se týče formování provozu, zde je další rychlý a špinavý průvodce, který využije moji osobní variantu wondershaper .

Aby to bylo užitečné, potřebujete vědět, jaké rychlé je vaše připojení k internetu. Obvykle to najdete na (originálním) ) webové rozhraní routeru, ale v opačném případě můžete získat odhad pomocí speedtest .

  1. sudo apt-get install iptables
  2. wget https://raw.github.com/meermanr/adsl/master/wondershaper/wondershaper
  3. sudo ./wondershaper eth0 se vytiskne aktuální stav utváření provozu. Očekávaný stav je zjevně nulový, což znamená, že ve skutečnosti existuje jediné pravidlo zvané pfifo_fast:

    • (eth0 je název kabelového síťového adaptéru na modelu B. Názvy rozhraní ve vašem systému viz ifconfig)
    # pi@flux:/home/pi/projects/adsl/wondershaper (master *) # sudo ./wondershaper eth0 qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 Sent 1908 bytes 15 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 
  4. sudo ./wondershaper eth0 3000 370, kde:

    • 3000 je rychlost downlinku mého internetového připojení v kbit . Takže 3Mbit == 3000kbit
    • 370 je rychlost mého internetového připojení uplink, opět v kbit.
  5. sudo ./wondershaper eth0 by nyní mělo zobrazit mnohem více výstupu:

    # pi@flux:/home/pi/projects/adsl/wondershaper (master *) # sudo ./wondershaper eth0 qdisc htb 1: root refcnt 2 r2q 10 default 0 direct_packets_stat 0 Sent 1858 bytes 9 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc sfq 40: parent 1:40 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec Sent 1858 bytes 9 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc sfq 10: parent 1:10 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc sfq 20: parent 1:20 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc sfq 30: parent 1:30 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 qdisc ingress ffff: parent ffff:fff1 ---------------- Sent 768 bytes 12 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 class htb 1:1 root rate 370000bit ceil 370000bit burst 10Kb cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 3459453 ctokens: 540531 class htb 1:10 parent 1:1 leaf 10: prio 1 rate 370000bit ceil 370000bit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 540531 ctokens: 540531 class htb 1:20 parent 1:1 leaf 20: prio 2 rate 246000bit ceil 246000bit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 813000 ctokens: 813000 class htb 1:30 parent 1:1 leaf 30: prio 3 rate 74000bit ceil 74000bit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 2702687 ctokens: 2702687 class htb 1:40 root leaf 40: prio 0 rate 100000Kbit ceil 100000Kbit burst 512Kb cburst 1600b Sent 3486 bytes 15 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 15 borrowed: 0 giants: 0 tokens: 654609 ctokens: 1250 

Váš odchozí síťový provoz je nyní formován vaším Pi a váš příchozí provoz je mírně omezen, aby bylo zajištěno, že Pi , a ne vaše původní směrovací pole, má kontrolu nad přenosem.

Chcete-li deaktivovat tvarování, stačí spustit sudo ./wondershaper eth0 clear. Rychlost odchozího a odchozího připojení můžete změnit, aniž byste nejprve vymazali , ale nijak to nebolí.

Aktualizace: Musíte také zakázat přenos přesměrování ICMP , protože potřebujeme veškerý provoz, který projde Pi, aby došlo k formování.Ukázalo se, že linuxové jádro je dostatečně chytré na to, aby zjistilo, že klienti ve vaší domácí síti mohou mluvit přímo s ADSL boxem, místo aby odrazili provoz přes Pi, a to jim říká při každé příležitosti. Klienti poté posílají svůj přenos přímo do vašeho ADSL boxu a Pi nemá šanci jej utvářet. Zakažte to za běhu (tak se ztratí při příštím restartu):

echo 0 | sudo tee /proc/sys/net/ipv4/conf/*/send_redirects 

Chcete-li toto nastavit během spouštění, aktualizujte následující: /etc/sysctl.conf

net/ipv4/conf/eth0/send_redirects = 0 

( Díky https://unix.stackexchange.com/a/58081/22537 za tento tip)

Také by vás mohly zajímat mé osobní poznámky o konfiguraci brány Linux: http://www.robmeerman.co.uk/unix/gateway

Komentáře

  • jak nastavíte název sítě Wi-Fi a heslo, ke kterému se mohou připojit další zařízení?
  • skvělý průvodce. Mám dotaz ohledně vašeho wondershaper návrh: je limit na klienta nebo celkový?
  • @fommil: Můj průvodce výše předpokládá, že stále používáte přístupový bod pro modem / router / WiFi, který vám poskytl váš ISP, ale nakonfigurujete to tak, aby všem klientům, kteří se připojují, bylo řečeno “ Odeslat provoz do Pi „. To se obvykle provádí zadáním vaší IP ‚ s (statické!) IP adresy do nastavení DHCP vašeho ISP boxu. Typicky v poli s názvem “ Brána „, “ Výchozí brána “ nebo snad “ Výchozí cesta „.
  • @Bob: Čísla, která zadejte součet za váš internetový odkaz. Skript wondershaper se pak pokusí spravedlivě sdílet všechny své klienty na základě poptávky . Pokud tedy internet používá pouze jeden klient, měl by získat 100%. Pokud se spustí jiný klient, bude po “ ustálení času “ (~ 10 sekund) každý použit po 50%, a tak dále.
  • Perfektní. Jen poznámka k @fommil, žádný z mých routerů (a předpokládám, že mnoho dalších je stejných) neposkytuje snadný způsob, jak nastavit bránu přiřazenou přes DHCP. Nakonec jsem vypnul DHCP na routeru a nastavil DHCP server na Pi – je to ‚ poměrně jednoduchý proces (pokud chcete, vyhledejte průvodce).

Odpověď

Mít malé síťové pozadí, první věc, která mi přijde na mysl, je použít ji jako pole pro Snort a pak si nemusíte dělat starosti s tím, že budete mít pouze jedno rozhraní. Přepínač / směrovač byste nastavili tak, aby předával veškerý provoz na Pi, ale také jej předával koncovému zařízení. Toto se označuje jako monitor switchportu, ale vaše zařízení může nepodporuje to. Možná k tomu budete potřebovat spravovaný přepínač . Snort by poté analyzoval provoz a podal o něm zprávu. Další informace o Snort http://www.snort.org/

Pěkná věc na tomto druhu nastavení je, že vaše Pi sedí stranou a sleduje vše, co je spuštěn přes přepínač, místo aby seděl v souladu s daty. Pokud máte software, g Tímto způsobem může provoz stále proudit, ale nemusí být sledován. S tím, co popisujete pomocí dvou rozhraní, dojde ke zhroucení vašeho programu, zhroucení vaší sítě.

Toto nepoužívá pí jako směrovač, ale umožňuje vám sledovat a hlásit provoz, který se pohybuje po vaší síti .

Odpověď

Pro směrování jsem použil Raspberry Pi a fungoval dobře. Jak říkáte, potřebujete alespoň jedno další síťové rozhraní, protože Raspberry Pi má pouze jeden ethernetový port. Můžete přidat další rozhraní připojené k portu USB. Použil jsem GSM modem a Wi-Fi stick.

Důležité poznámky:

  • Použijte napájený rozbočovač USB. Zařízení Wi-Fi a GSM vyžadují více energie, než kolik mohou poskytnout USB porty Raspberry Pi.
  • Pokud nakupujete zařízení Wi-Fi, pořiďte si jedno s dobrou podporou Linuxu. Chcete takové, které funguje v režim přístupového bodu a ne všechny ovladače. Podívejte se na linuxwireless.org .

Tady je můj příspěvek na blogu o směrování a další o nastavení přístupového bodu Wi-Fi . Tato příručka mi pomohla s nastavením směrování. Směrování není příliš specifické pro Raspberry Pi; mělo by být možné vše, co funguje na Linuxu. Podrobnosti trochu závisí na tom, distribuci, kterou používáte.

Odpověď

Raspberry Pi používám jako router už asi měsíc, bez problémů . Mám skutečný komerční přístupový port Wi-Fi, nikoli domácí směrovač Wi-Fi, takže jsem to použil. Mám také převodník USB na Ethernet, který byl půjčil si “ od Wii.To jde do domácí LAN a vestavěný Ethernet Raspberry Pi jde do WAN / Internetu.

Získejte kopii IPFire pro Raspberry Pi. Chcete verzi ARM bez sériové konzoly a nejnovější stabilní verze. Klikněte na kartu ARM. Stáhněte si “ obrázek pro architekturu armv5tel „.

Spusťte jej. Připojte HDMI televizi a klávesnici. Odpovězte na několik prvních otázek. Zbytek konfigurace lze provést v prohlížeči na domácí síť, takže už nebudete potřebovat televizi ani klávesnici.

Nebylo to příliš těžké a fungovalo to jako šampión! Zde jsou formální pokyny: https://wiki.ipfire.org/hardware/arm/rpi/threeplus

Ještě jedna věc. Pokud se chystáte použít Wi-Fi adaptér napájený z USB, zkontrolujte napájecí zdroj Raspberry Pi. Pro napájení Raspberry Pi může stačit napájecí zdroj USB 700 mA, ale na napájení Wi-Fi to moc nezanechává -Fi. Buď použijte napájený rozbočovač USB, nebo napájejte Raspberry Pi napájením USB 1 až 2 A.
Hodně štěstí!

Odpovědět

(Tento dodatek navazuje na moji předchozí odpověď , což byl průvodce konfigurací vašeho Pi jako internetové brány vaší LAN)

Nejsem spokojen s monitorováním mého celkového používání internetu, napsal jsem nástroj, který sleduje využití internetu každého zařízení v mé LAN. To mi umožňuje vidět okamžité využití v okně konzoly a generovat grafy historického využití, abych viděl, co se stalo přes noc.


Rhodes , nástroj pro sledování využití sítě LAN v reálném čase a historického používání zařízení LAN (na základě adresy MAC): https://github.com/meermanr/adsl/tree/master/rhodes

Ukázka výstupu z konzoly:

193 kiB/s TX 17 kiB/s RX 0004edbf98c0 home.gateway (Billion Electric Co.) 0 kiB/s TX 0 kiB/s RX 2002af18dc15 Samsung Galaxy Tab 10.1, Vicky 0 kiB/s TX 0 kiB/s RX 34af2c01197b Nintendo 3DS:XL, Robert 0 kiB/s TX 0 kiB/s RX 34af2c3af204 Nintendo 3DS:XL, Vicky 0 kiB/s TX 0 kiB/s RX 34af2c9cfffd Nintendo WiiU 0 kiB/s TX 0 kiB/s RX 6045bd9c9dbc Xbox360 Slim 0 kiB/s TX 0 kiB/s RX 745e1c56c297 Pioneer SX-LX57 13 kiB/s TX 109 kiB/s RX 7831c1be0c34 Az Pro (Macbook Pro) 0 kiB/s TX 0 kiB/s RX 80ea96e6214e Roberts-AirPort-Time-Capsule 0 kiB/s TX 0 kiB/s RX 88308a770370 Samsung Galaxy S3, Vicky 189 kiB/s TX 211 kiB/s RX b827eb8fc0f3 Flux (Raspberry Pi) 2 kiB/s TX 39 kiB/s RX b8e8563acb34 Macbook Pro, Vicky 0 kiB/s TX 0 kiB/s RX d022be2c26ef Samsung Galaxy Note 3, Rob 0 kiB/s TX 0 kiB/s RX f82fa89368ea 

První sloupec ukazuje, kolik zařízení vysílají, což obvykle znamená nahrávání na internet. Výjimkou je samotný router ADSL (ve výše uvedeném příkladu home.gateway), který přenáší data přijatá od poskytovatele internetových služeb zařízení, které o to požádalo (tj. Stahování). Samozřejmě také přenáší nahraná data na internet, ale dělá to pomocí svého ADSL modemu, který není v síti LAN, a proto jej tento nástroj nevidí.

Druhou výjimkou by byl Raspberry Pi (“ Flux „výše), který samozřejmě přenáší všechna data, která spravuje, v obou směrech.

Ale kromě těchto výjimek čísla TX (vysílání) odkazují na nahrávání a RX (příjem ) čísla ke stažení. Třetím sloupcem je adresa MAC zařízení (bez obvyklých oddělovačů „:“ nebo „-“). Čtvrtý sloupec zobrazuje název zařízení čitelný člověkem, pokud je znám.

Grafy jsou generovány spuštěním ./index.py, které má být voláno z webového serveru jako lighttpd (s index.py přidáno do nastavení konfigurace index-file.names v /etc/lighttpd/lighttpd.conf). Můžete jej spustit ručně a vygeneruje několik obrázků a vytiskněte HTML na STDOUT. Chcete jej tedy přesměrovat do souboru, který můžete otevřít v prohlížeči:

./index.py > index.html 

Poté otevřete soubor index.html ve svém preferovaném formátu prohlížeč.

Instalační požadavky (všechny lze nainstalovat pomocí apt-get install):

  • tcpdump – Nástroje příkazového řádku pro zachycení a popis síťového provozu
  • rrdtool – Databázový nástroj Round Robin, zaznamenává a mapuje data časových řad
  • rrdcached – Round Robin Database Caching Daemon, služba, která snižuje režii při současné práci s více soubory RRD.
  • pypy-upstream (rychlá implementace programovacího jazyka Python)

    • Můžete použít základní Python, jaký se vám líbí: python rhodes.py (pypy je alternativní implementace programovacího jazyka Python, která provádí kompilaci Just-In-Time (JIT), takže dlouho běžící skripty budou používat méně cyklů CPU za cenu větší paměti)

Poznámka k použití : Nástroj „tcpdump“ použitý tímto skriptem vyžaduje oprávnění root pro přístup k surovému síťovému provozu. Toho je dosaženo spuštěním sudo tcpdump při spuštění skriptu, takže můžete být vyzváni k zadání hesla. Osobně jsem do pravidla /etc/sudoers přidal pravidlo NOPASSWD, takže se mi nikdy nezobrazí výzva.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *