Weekend Prosjekt: Personal Area Networking med Bluetooth


Selv om folk flest tenker over Bluetooth i sin " kabel erstatning " bruksområder, for eksempel med trådløs lyd hodetelefoner og tastatur, Bluetooth-standarden definerer en rekke protokoller og profiler optimalisert for spesifikke bruksområder. En av de mest nyttige er Personal Area Networking (PAN) profil, som omslutter nett-lags trafikk, slik som IP. Dette betyr at du kan bruke PAN å sette opp et billig nettverkstilgangspunktet over en Bluetooth-adapter – båndbredden vil ikke være opp til 802.11 hastigheter, men det tilbyr noen interessante egenskaper, slik som å være usynlig for wardrivers på parkeringsplassen, og muliggjør Internett-tilgang på mobile enheter uten WiFi. Slik setter du opp PAN på Linux-maskin, starter med en Bluetooth-adapter og en fungerende kjerne.

Oversikt

PAN profil definerer flere roller som en bestemt Bluetooth-enhet kan ta på, for eksempel en PAN bruker (PANU), en gruppe Network controller (GN), og en Network Access Point (NAP). Den enkleste scenariet å konfigurere er for Linux-boksen for å tjene som en NAP, videresending IP-trafikk fra tilkoblede klient enheter (for eksempel mobiltelefoner) som hver er konfigurert som PANU. GN konfigurasjon er nyttig for en peer-to-peer Bluetooth-only nettverk, som er ute av rammen for grunnleggende PAN funksjonalitet.

I tillegg til å sette opp Bluetooth-driveren på Linux-boks, vil vi bruke standard Linux nettverk bunken for å konfigurere Bluetooth-enhet som nettverksbro, akkurat som vi kanskje når du oppretter en WiFi-til-LAN bro. Før du begynner, må du ha bro-utils pakken installert, samt Bluez pakken, som inneholder flere kommandolinje verktøy du trenger

En endelig notat:. Bluez, Linux Bluetooth stack, utgitt en større oppgradering i 2008. For å gjennomføre PAN med disse instruksjonene, bør du kjøre en 4.x-serie Bluez stabelen; eldre versjoner ble delt inn i flere pakker (som Bluez-utils), og brukte en mindre strømlinjeformet konfigurasjon system. Dessverre, det betyr også at folk kjører pre-2008-versjoner av Bluez blir nødt til å spore opp et annet sett med instruksjoner for å sette opp PAN.

Bluetooth-enhet oppsett

Først må du notere ned Bluetooth-adressen til datamaskinen, en tolv-tegns heksadesimal streng mer eller mindre tilsvarer et nettverkskort MAC-adresse. Kjør hciconfig -a, og kopiere ned adressen, som skal se omtrent slik ut: 12: 34: 56: 78: 90: AB. Inne i katalogen /var /lib /bluetooth /12: 34: 56: 78: 90: AB /er en fil som heter config
; åpne den i en tekst editor og se etter " class " linjen.

Klassen er en tre-byte beskrivelse av type enhet og type Bluetooth tjeneste som datamaskinen vil tilby. Hver bit i første byte angir en bestemt tjeneste (for eksempel OBEX filoverføring, Location posisjonering, eller lyd). Den andre byte angir type enhet (datamaskin, headset, GPS, et cetera). For PAN bruk, må du i det minste gi klassen string 0x020100, noe som indikerer Nettverk service og den generelle Computer enhetsklassen.

for testing, kan du bare set
klassen linje i din config fil til 0x020100 – Hvis du bruker datamaskinen for andre Bluetooth-tjenester, men vil du ønsker å beregne riktig hex streng for alle biter du trenger satt. Den samme informasjonen er stavet ut i lesbar vilkår av hciconfig, slik at du kan dobbeltsjekke binær-til-hex konvertering. Sørg også for at " modus " er spesifisert som " søkbar " og at du har en lett-anerkjent navn på " navn " linje, slik at du kan gjenkjenne den fra andre enheter

Deretter se på filen som heter ". pincodes " – Dette er en liste over lagrede PIN adgangskoder for enhetene datamaskinen har sammenkoblet med. Hvis du allerede har paret med telefonen eller en annen enhet du har tenkt å bruke som en klient, bør den ha en linje i denne filen. Hvis ikke, legger en. Du kan kjøre hcitool skanne til fange Bluetooth-adressen til telefonen. Bare skriv inn telefonens Bluetooth-adresse, etterfulgt av en enkelt plass, så noen enkle å huske tallkode. På samme måte legge til en linje for telefonen til /var /lib /bluetooth /12: 34: 56: 78: 90: AB /stiftelser fil; sette telefonens Bluetooth-adresse først, et mellomrom, og deretter strengen [alle]

Til slutt opprette filen /etc/bluetooth/network.service, som inneholder følgende:.

 [Bluetooth Service] Identifier = nettverksnavn = PAN Network serviceDescription = Bluetooth PAN Tilgang PointAutostart = true 

Du bør ikke trenger å starte Bluetooth daemon for at endringene skal tre i kraft; for å være kompatibel med det flyktige natur enhetstilkoblinger Bluetooth, ser nissen for endringene automatisk.

Nettverk konfigurasjon

Som standard oppretter Bluez et nettverksgrensesnitt for NAP tjenesten heter pan0 eller pan1. Du kan konfigurere ruting for dette grensesnittet akkurat som du ville noen standard LAN-adapter. For eksempel ifconfig pan0 192.168.2.1 netmask 255.255.255.0 opp vil bringe PAN grensesnittet opp med IP-adressen 192.168.2.1. 2 i dette eksempelet er å plassere PAN tjenesten – inkludert NAP seg selv og eventuelle PANU som kobles til det – på et annet subnett enn resten av LAN, som vi vil anta er i 192.168.1. * adresseblokk.

Du må kjøre en egen DHCP server på pan0 grensesnittet imidlertid konfigurert til å distribuere adresser i riktig subnett, og konfigurere ruting mellom de to subnett.

Det er den enkleste måten å tillate Bluetooth-telefoner og andre enheter for å få tilgang til nettverket via PAN å skape en bro grensesnitt kobler pan0 og normal nettverksgrensesnitt, slik som eth0 eller wlan0. Den nøyaktige prosessen varierer litt mellom distribusjoner, men på Debian-systemer, for eksempel, bare legge til følgende linjer til /etc /network /interfaces (erstatte din egen IP-adresse og gateway, selvfølgelig):

 auto bridge0iface bridge0 inet statisk adresse 192.168.1.100 netmask 255.255.255.0 kringkaste 192.168.1.255 gateway 192.168.1.1 pre-up ifconfig eth0 ned pre-up brctl addbr bridge0 pre-up brctl addif bridge0 eth0 pre-up ifconfig eth0 up post-down ifconfig eth0 down post -ned brctl delif bridge0 eth0auto pan0iface pan0 inet manuell pre-up brctl addbr bridge0 pre-up brctl addif bridge0 $ iface opp ifconfig $ iface 0.0.0.0 opp ned ifconfig $ iface ned post-down brctl delif bridge0 $ iface 

Hva disse strofer gjøre er å lage et virtuelt nettverksgrensesnitt som heter bridge0 som " inneholder " både eth0 og pan0. Knytte grensesnittene gjør plassere litt ekstra arbeid på tallerkenen din, skjønt – konfigurasjonsdetaljer som du brukte til å søke direkte til eth0 nå gjelder bridge0. Dette betyr at du bør konfigurere DHCP til å lytte på bridge0 stedet for eth0, for eksempel. På pluss-siden, men du trenger ikke å bekymre deg for å gå separate DHCP-tjenester for Bluetooth og kablede klienter i nettverket.

Bruker og advarsler

De fleste av bruk-tilfeller lese om for Bluetooth PAN bære Bluetooth-kompatible telefoner. Med Bluetooth frakte IP-trafikk mellom telefonen og Linux-boks, kan du koble direkte til en SyncML server for å synkronisere adresseboken og kontakter, utenom telefonens generelt mindre funksjonsrik innebygd synkronisering apps. Du kan også gjøre regelmessig Web og e-verk, men bruker mindre strøm enn en WiFi-tilkobling krever.

Den vanskelige delen av denne ligningen er å finne en telefon som tilbyr skikkelig støtte for Bluetooth PAN. Mange moderne smarttelefoner gjør det, men da igjen de fleste av de samme telefonene også inkluderer WiFi. Dessverre, eldre telefoner inkluderer ofte støtte for bare en del av Bluetooth-stakken, for eksempel handsfree headset.

Fordi få Bluetooth konfigurasjonsdetaljer rette er ofte vanskeligere enn å få nettverks detaljene riktig, hvis du er ikke sikker på om funksjonene på telefonen kan det være en god idé å teste konfigurasjonen med andre Linux-maskin, kanskje en bærbar PC hvor du kan slå av WiFi-kortet.

Den gode nyheten er at Linux er Bluetooth-støtte blir bedre hele tiden. Arbeid pågår nå for å støtte Bluetooth 4.0 standarden er " lav energi " profil, som vil redusere batteri avløp ytterligere. GNOME og KDE skrivebordsmiljøer begge har sine GUI Bluetooth konfigurasjonsverktøy, selv om ingen av dem har ganske implementert alle de funksjonene som trengs for å gjøre Bluetooth PAN et pek-og-klikk-drift – ennå. Det er en tredjeparts prosjekt kalt Blueman som tilbyr enklere konfigurering enn både innfødte GNOME eller KDE-grensesnitt gir, men fortsette med forsiktighet: Hvis du kjører Blueman i tillegg til de innebygde verktøy som tilbys av skrivebordsmiljø, det er en økt sjanse for at de vil kollidere og overskrive hverandres endringer, som kan forlate deg med et puslespill å sortere ut. Eller kanskje det skal være denne ukens ekstra kreditt? Anmeldelser