Käytätkö Raspberry Pi: tä reitittimenä?

Onko kukaan käyttänyt Raspberry Pi -laitettaan reitityslaitteena?

Haluan lähinnä käyttää sitä verkkoni valvontaan, ja se Olisi hienoa, jos sillä olisi tulo ja lähtö Ethernetille, mutta se ei tue, joten mietin, onko verkon tehokas seuraaminen Ethernet-tulolla ja sitten USB-sovittimella Wi-Fi-reitittimenä. kukaan tehnyt mitään tällaista? Hidastaa se Internetiä huomattavasti?

Kommentit

  • Riippuu internetyhteytesi nopeudesta. Minun on 100 Mt, joten olen ’ m melko varma, että se hidastaisi sitä;)
  • Minulla ’ on 30 Mbps: n internetyhteys, ja tällä hetkellä 5 Mbit / s liikennettä käytettäessä sisäinen vadelma-pii, jolla on kuorinta, kuluttaa ~ 50-95% suoritinta ja 85% muistia. Asetuksiani ei ole vielä viritetty, mutta haluan näyttää sinulle todellisia lukuja.
  • eikö kukaan ole, kuinka badwidth-allokointi toimii räätälöidyn reitittimen kanssa vadelma-piiä käyttäen? 3Mbps internetyhteyttä, minulla on 10 käyttäjää. voitko selittää miten se jaetaan? 3Mbps nopeudella. Kiitos. Toivottavasti ymmärrät. 🙂
  • Hei kirbs. Älä kysy toisesta kysymyksestä. Sen sijaan avaa uusi kysymys sivun yläosassa olevalla Esitä kysymys -linkillä. Kiitos.
  • Ehkä tämä? learn.adafruit.com/…

vastaus

Olen käyttänyt mallini B reitittimenä liikenteen muotoilussa vain yhdellä sen mukana toimitetulla Ethernet-portilla. Tässä on nopeaa ja likaa miten :

  1. Ota IPv4-edelleenlähetys käyttöön , joten Pi toimii reitittimenä välittämällä kaiken vastaanottamansa liikenteen
  2. Määritä Pi staattisella verkkokokoonpanolla, jotta alla ehdotetut DHCP-muutokset eivät vaikuta siihen. Tässä on /etc/network/interfaces -viitteeni sisältö viitteenä:

    # 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. Muuta nyt verkon DHCP-asetuksia siten, että oletusyhdyskäytävä / -reititin on Pi. Tämä tarkoittaa todennäköisesti nykyisen ADSL: n asetusten muuttamista reitittimen ruutu. Yllä olevassa esimerkissä Pi: n IP-osoite on 192.168.1.1.

Kun laitteesi muodostavat seuraavan kerran yhteyden verkossa, heille kerrotaan, että Pi on heidän porttinsa Internetiin, ja kaikki heidät Internetiin sidottu liikenne lähetetään siihen. Pi puolestaan välittää kaiken liikenteen tavalliseen reitittimeesi. Saatat joutua irrottamaan laitteesi ja yhdistämään sen sitten uudelleen, jotta nämä muutokset tulevat voimaan.

Nyt voit luoda tai asentaa työkalun, jolla voit suorittaa valvonnan puolestasi, kuten vnstat .

Liikenteen muotoilu

Liikenteen muotoilun osalta tässä on toinen nopea ja likainen opas, jossa hyödynnetään omaa henkilökohtaista wondershaper .

Jotta tämä olisi hyödyllistä, sinun on tiedettävä, kuinka nopea internetyhteytesi on. Löydät tämän yleensä (alkuperäisestä) ) reitittimen verkkokäyttöliittymä, mutta jos näin ei ole, voit saada estimaatin nopeustestin avulla.

  1. sudo apt-get install iptables
  2. wget https://raw.github.com/meermanr/adsl/master/wondershaper/wondershaper
  3. sudo ./wondershaper eth0 tulostaa liikenteen muotoilun nykyinen tila. Odotettu tila on, että muotoilua ei ole, mikä tarkoittaa, että on olemassa yksi sääntö, nimeltään pfifo_fast:

    • (eth0 on mallin B langallisen verkkosovittimen nimi. Katso järjestelmän käyttöliittymien nimet 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, jossa:

    • 3000 on internetyhteyteni downlink-nopeus kbit . Joten 3Mbit == 3000 kbit
    • 370 on Internet-yhteyteni nousevan siirtotien nopeus, uudelleen kbit: nä.
  5. sudo ./wondershaper eth0 pitäisi nyt näyttää paljon enemmän lähtöä:

    # 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 

Lähtevä verkkoliikenteesi on nyt Pi: n muotoilema ja saapuvaa liikennettäsi kuristetaan hieman sen varmistamiseksi, että Pi , eikä alkuperäisellä reitityslaatikollasi, on liikenteen hallinta.

Poista muotoilu käytöstä suorittamalla sudo ./wondershaper eth0 clear. Voit muuttaa ylös- ja alasuuntaisen linkin nopeuksia tyhjentämättä ensin , mutta se ei satuta.

Päivitys: Sinun on myös poistettava käytöstä div id = ”d9da795d63”>

ICMP ohjaa uudelleen , koska tarvitsemme kaiken liikenteen Pi: n läpi, jotta muotoilu tapahtuisi.Osoittautuu, että Linux-ydin on tarpeeksi älykäs selvittääkseen, että kotiverkon asiakkaat voivat puhua suoraan ADSL-ruutuun sen sijaan, että he palauttaisivat liikennettä Pi: n kautta, ja se kertoo heille tämän joka tilanteessa. Asiakkaat lähettävät sitten liikenteen suoraan ADSL-ruutuun, ja Pi ei saa mahdollisuutta muokata sitä. Poista se käytöstä lennossa näin (menetetty, kun seuraavan kerran käynnistät uudelleen):

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

Päivitä seuraava asettaaksesi tämän käynnistyksen aikana: /etc/sysctl.conf

net/ipv4/conf/eth0/send_redirects = 0 

( Kiitos tämän vinkin https://unix.stackexchange.com/a/58081/22537 )

Saatat myös olla kiinnostunut henkilökohtaisista muistiinpanoistani Linux-yhdyskäytävän määrittämisestä: http://www.robmeerman.co.uk/unix/gateway

kommentit

  • miten määrität wifi-verkon nimen ja salasanan, johon muut laitteet voivat muodostaa yhteyden?
  • Hyvä opas. Minulla on kysyttävää wondershaper ehdotus kuitenkin: onko raja asiakaskohtainen vai yleinen?
  • @fommil: Yllä olevassa oppaassani oletetaan, että käytät edelleen modeemi / reititin / WiFi-tukiasema, jonka Internet-palveluntarjoajasi antoi sinulle, mutta että määrität sen siten, että kaikille yhteyden muodostaneille asiakkaille kerrotaan ” Lähetä liikenne Pi ”. Tämä tehdään yleensä syöttämällä Pi ’ s (staattinen!) IP-osoitteesi Internet-palveluntarjoajan DHCP-asetuksiin. Tyypillisesti kentässä, jonka nimi on ” Yhdyskäytävä ”, ” Oletusyhdyskäytävä ” tai ehkä ” Oletusreitti ”.
  • @Bob: Numerot kirjoita ovat Internet-linkkisi summa. Wondershaper-komentosarja yrittää jakaa oikeudenmukaisesti kaikille asiakkaillesi kysynnän perusteella. Joten jos vain yksi asiakas käyttää Internetiä, sen pitäisi saada 100% siitä. Jos toinen asiakas käynnistyy, he käyttävät jonkin verran ” -asetusaikaa ” (~ 10 sekuntia) kumpikin 50%, ja niin edelleen.
  • Täydellinen. Vain huomautus osoitteeseen @fommil, mikään reitittimistäni (ja oletan, että monet muut ovat samat) eivät tarjoa helppoa tapaa asettaa DHCP: n kautta määritetty yhdyskäytävä. Päätin sammuttamaan DHCP: n reitittimessä ja asettamaan DHCP-palvelimen Pi: lle – se ’ on melko yksinkertainen prosessi (etsi opasta, jos haluat).

Vastaa

Kun sinulla on vähän verkkotausta, tulee ensin mieleen, että käytät sitä Snort-laatikkona ja silloin sinun ei tarvitse huolehtia vain yhdestä käyttöliittymästä. Määritä kytkimesi / reitittimesi välittämään kaikki liikennetiedot Pi: lle, mutta myös välittämään sen lopulliselle laitteelle. Tätä kutsutaan kytkentäporttinäytöksi, mutta laitteesi saattaa ei tue sitä. Saatat tarvita hallitun kytkimen tätä varten. Snort analysoi sitten liikenteen ja raportoi siitä. Lisätietoja Snort http://www.snort.org/

Tällaisessa asennuksessa on hienoa, että Pi istuu sivulle katsomassa kaikkea mitä käydään kytkimen läpi sen sijaan, että istuisit tietojen kanssa. Jos sinulla on ohjelmisto g Tällä tavoin liikenne voi silti virrata, vain ei valvota. Kun kuvaat kahdella rajapinnalla, ohjelma kaatuu, verkko kaatuu.

Tämä ei käytä pi: tä reitittimenä, mutta antaa sinun seurata ja raportoida verkon kautta kulkevasta liikenteestä. .

Vastaus

Olen käyttänyt Raspberry Pi: tä reitittämiseen, ja se toimi hyvin. Kuten sanot, tarvitset vielä vähintään yhden verkkoliitännän, koska Raspberry Pi: llä on vain yksi Ethernet-portti. Voit lisätä toisen liitännän, joka on kytketty USB-porttiin. Olen käyttänyt GSM-modeemia ja Wi-Fi-tikkua.

Huomattavia asioita:

  • Käytä virtaa käyttävää USB-keskittintä. Wi-Fi- ja GSM-laitteet vaativat enemmän virtaa kuin mitä Raspberry Pi: n USB-portit tarjoavat.
  • Jos ostat Wi-Fi-laitteita, hanki sellainen, jolla on hyvä Linux-tuki. Haluat sellaisen, joka toimii yhteysosoitetila, eivätkä kaikki sauvat. Tarkista osoitteesta linuxwireless.org .

Tässä on -blogiviesti reitityksestä ja toinen Wi-Fi-tukiaseman määrittämisestä. Tämä opas auttoi minua reitityksen määrityksessä. Reititysjutut eivät ole kovin erityisiä Raspberry Pi: lle; kaiken, mikä toimii Linuxissa yleensä, pitäisi olla mahdollista. Tiedot riippuvat hieman siitä, mihin käyttämäsi jakelu.

Vastaa

Olen käyttänyt Raspberry Pi -laitetta reitittimenä nyt noin kuukauden ajan ilman ongelmia. . Minulla on todellinen kaupallinen Wi-Fi-portti, ei kotona käytettävä Wi-Fi-reititin, joten käytin sitä. Minulla on myös USB-Ethernet-muunnin, joka oli lainasi ” Wii: ltä.Se menee kotiverkkoon ja Raspberry Pi: n sisäänrakennettu Ethernet siirtyy WAN / Internet-verkkoon.

Mene hakemaan kopio IPFirestä Raspberry Pi: lle. Haluat ARM-version ilman sarjakonsolia ja viimeisintä vakaa versiota. Napsauta ARM-välilehteä. Lataa ” kuva armv5tel-arkkitehtuurille ”.

Käynnistä se. Liitä HDMI-TV ja näppäimistö. Vastaa ensimmäisiin kysymyksiin. Loput määritykset voidaan tehdä selaimella kotiverkko, joten et tarvitse televisiota tai näppäimistöä sen jälkeen.

Se ei ollut liian kovaa, ja toimi kuin mestari! Tässä ovat viralliset ohjeet: https://wiki.ipfire.org/hardware/arm/rpi/threeplus

Viimeinen asia. Jos aiot käyttää USB-pohjaista Wi-Fi-sovitinta, tarkista Raspberry Pi: n virtalähde. 700 mA: n USB-virtalähde voi riittää Raspberry Pi: n virtalähteeksi, mutta se ei jätä paljon Wi: n virtalähteeksi. -Fi. Joko käytä virtalähdettä käyttävää USB-keskitintä tai käytä Raspberry Pi -laitetta 1-2 A: n USB-virtalähteellä.
Onnea!

Vastaa

(Tämä lisäys seuraa edellistä vastaustani , joka oli opas Pi: n määrittämiseksi lähiverkon Internet-yhdyskäytäväksi)

Olen tyytymätön yleisen Internetin käytön seurantaan. Olen kirjoittanut työkalun, joka valvoo lähiverkkoni jokaisen laitteen Internet-käyttöä. Näin saan nähdä välittömän käytön konsoli-ikkunassa ja luoda kaavioita historiallisesta käytöstä, jotta voin nähdä, mitä tapahtui yhdessä yössä.


Rodos , työkalu LAN-laitteiden reaaliaikaisen ja historiallisen käytön seurantaan (MAC-osoitteen perusteella): https://github.com/meermanr/adsl/tree/master/rhodes

Esimerkki konsolilähdöstä:

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 

Ensimmäisessä sarakkeessa näkyy kuinka paljon laitteet lähettävät, mikä yleensä tarkoittaa lataamista Internetiin. Poikkeuksena tästä on ADSL-reititin itse (home.gateway yllä olevassa näytteessä), joka välittää Internet-palveluntarjoajalta vastaanotetun datan sitä pyytäneeltä laitteelta (eli lataa). Tietysti se lähettää myös latauksia Internetiin, mutta tekee sen käyttämällä ADSL-modeemiaan, joka ei ole lähiverkossa eikä niin näy tälle työkalulle.

Toinen poikkeus olisi Raspberry Pi (” Flux ”yllä olevassa” itse), joka tietysti välittää kaiken hallitsemansa datan molempiin suuntiin.

Näitä poikkeuksia lukuun ottamatta TX (lähetys) -numerot viittaavat lataukseen ja RX (vastaanotto) ) ladattavat numerot. Kolmas sarake on laitteen MAC-osoite (ilman tavallisia ”:” tai ”-” erotimia). Neljäs sarake näyttää laitteen ihmisen luettavissa olevan nimen, jos se on tiedossa.

Kaaviot luodaan suorittamalla ./index.py, joka on tarkoitettu soitettavaksi verkkopalvelimesta, kuten lighttpd (ja index.py lisätty index-file.names -asetuksiin /etc/lighttpd/lighttpd.conf). Voit suorittaa sen vain manuaalisesti, ja se luo joitain kuvia ja tulosta HTML-tiedosto STDOUT-tiedostoon. Haluat siis ohjata sen tiedostoon, jonka voit avata selaimella:

./index.py > index.html 

Avaa sitten index.html haluamassasi tiedostossa selain.

Asennusvaatimukset (kaikki voidaan asentaa osoitteella apt-get install):

  • tcpdump – Komentorivityökalut verkkoliikenteen kaappaamiseen ja kuvaamiseen
  • rrdtool – Round Robin -tietokantatyökalu, tallentaa ja kaavioi aikasarjatiedot
  • rrdcached – Round Robin Database Caching Daemon, palvelu, joka vähentää yleiskustannuksia työskenneltäessä samanaikaisesti useiden RRD-tiedostojen kanssa.
  • pypy-upstream (Python-ohjelmointikielen nopea käyttöönotto)

    • Voit käyttää haluamaasi varastopythonia: python rhodes.py (pypy on Python-ohjelmointikielen vaihtoehtoinen toteutus, joka tekee Just-In-Time (JIT) -kokoelman, joten pitkään käynnissä olevat komentosarjat käyttävät vähemmän suorittimen jaksoja lisämuistin kustannuksella)

Käyttöhuomautus : ”tcpdump” -työkalu Tämän komentosarjan käyttämä edellyttää pääkäyttäjän oikeuksia käyttää raakaa verkkoliikennettä. Tämä saavutetaan käynnistämällä sudo tcpdump, kun komentosarja käynnistyy, joten sinua saatetaan pyytää antamaan salasanasi. Henkilökohtaisesti olen lisännyt NOPASSWD-säännön kohtaan /etc/sudoers, joten minua ei koskaan kehoteta.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *