Připojení k internetu přes bluetooth

 

bluetoothtuxPředpoklady:

  1. Poslední kernel, nainstalovaný balíček Bluez; včetně  SDP, PAN, BLUEZ-UTILS and BLUEZ-LIBS. Další pokyny lze nalézt zde (od Marcela Holtmanna).
    Spusťíme následující příkaz k ověření zda nám bluetooth běží:
    $ /usr/sbin/hciconfig -a 

    Může to hlásit cosi jako UP RUNNING. Poznamenáme si BD Addresu, která je v následujícím formátu:

    00:10:EC:71:F9:D6

    Příklad odezvy na zadání předchozího povelu:

    hci0:   Type: USB         BD Address: 00:10:EC:71:F9:D6 ACL MTU: 192:8  SCO MTU: 64:8         UP RUNNING PSCAN ISCAN AUTH ENCRYPT         RX bytes:512035 acl:3921 sco:0 events:17349 errors:0         TX bytes:5177521 acl:27340 sco:0 commands:25 errors:0         Features: 0xff 0xff 0x0f 0x00         Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3         Link policy: HOLD SNIFF PARK         Link mode: SLAVE ACCEPT         Name: 'Grand Tux'         Class: 0x120104         Service Classes: Networking, Object Transfer         Device Class: Computer, Desktop workstation         HCI Ver: 1.1 (0x1) HCI Rev: 0x110 LMP Ver: 1.1 (0x1) LMP Subver: 0x110         Manufacturer: Cambridge Silicon Radio (10) 

    Jméno našeho bluetoth zařízení je řízeno pomocí

    /etc/bluetooth/hcid.conf

    proto změníme řádek

    name "%h-%d"; 

    na

    name "Grand Tux"; 

    Také nastavíme PIN kód pro přístup do našeho systému. Například pokud ho chceme nastavit na 1234 uděláme to takto:

    $ echo "1234" > /etc/bluetooth/pin $ chmod 600 /etc/bluetooth/pin 

    (Samozřejmě musíme tyto úpravy profávdět jako root).
    Nyní musíme restartovat službu bluetooth aby se změny uplatnily

    $ /etc/init.d/bluetooth restart 
  2. Fungující bridge utility. Podíváme se do příslušného HOWTO. Ve Fedoře je tato možnost již obsažena, takže ji pravděpodobně máme již nainstalovánu. Ověříme to následujícím příkazem:
    $ /usr/sbin/brctl 

    Pokud je třeba, najdeme vše co je potřeba na instalačním disku.

  3. Nainstalovaný a běžící firewall iptables. Ověříme tonásledujícími příkazy:
    $ /sbin/iptables -V $ /sbin/lsmod | grep ip_tables 

Dále je teba vytvořit na straně serveru konfigurační bnep0. Bude obsahovat následující:
cat /etc/sysconfig/network-scripts/ifcfg-bnep0

DEVICE=bnep0 ONBOOT=no BOOTPROTO=DHCP 

Další postup:

Na straně serveru:

$ /usr/sbin/brctl addbr pan0 $ /sbin/ifconfig pan0 10.0.0.1 $ /usr/sbin/brctl setfd pan0 0 $ /usr/sbin/brctl stp pan0 disable $ /sbin/modprobe bnep $ pand -s -M --role=NAP 

Na straně klienta:

$ /sbin/modprobe bnep $ pand -c 00:10:EC:71:F9:D6 $ /sbin/ifconfig bnep0 10.0.0.2 netmask 255.255.255.0 $ /sbin/route add default gw 10.0.0.1 

Na straně serveru:

$ /usr/sbin/brctl addif pan0 bnep0 $ /sbin/ifconfig bnep0 0.0.0.0 

Zapneme IP forwarding na straně serveru

$ echo "1" > /proc/sys/net/ipv4/ip_forward $ /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE $ /sbin/iptables -A FORWARD -i pan0 -j ACCEPT $ /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 

Zapneme sdílení internetu na straně serveru:

$ /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE 

Uložíme naše nastavení iptables, abychom nemuseli toto vše dělat znovu:

$ /sbin/iptables-save 

Jako doplnění můžeme také povolit  DHCP a DNS na serveru. Dále je dobré dát serveru i klientovi jména. Rychlost bluetoothu je dostačující pro serfování po internetu, ale ne pro kopírování velkého množství souborů. Zde je seznam toho, co lze udělat v našem souboru /etc/hosts:

192.168.0.1     server.home.net server    localhost.localdomain   localhost 192.168.0.2     laptop.home.net	laptop 10.0.0.1        btserver.home.net btserver 10.0.0.2        btclient.home.net btserver 

Do Vašeno souboru /etc/named.conf vložte dolů další řádky. Musíte samozřejmě změnit ip_isp_dns1 a ip_isp_dns2 podle Vašeho providera.
Pokud používáte dial-up připojení tento způsob Vám povolí DNS kešování na straně našeho serveru. To snižuje DNS traffic ode mne k mému ISP.

forwarders { ip_isp_dns1; ip_isp_dns2; 192.168.0.1 }; allow-query { 192.168.0.0/24; 127.0.0.1/32; 10.0.0.2; 10.0.0.1 }; 

Nicméně DHCP mám povoleno pouze pro ethernet.
Toto je obsah souboru /etc/dhcpd.conf

default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; option domain-name-servers 192.168.0.1; option domain-name "home.net"; ddns-update-style ad-hoc; option netbios-name-servers 192.168.0.1; option netbios-dd-server 192.168.0.1; option netbios-node-type 8; option netbios-scope "";   subnet 192.168.0.0 netmask 255.255.255.0 {    range 192.168.0.2 192.168.0.254; } 

Můžeme udělat totéž pro naši bluetooth síť tím, že vytvoříme další podsíť. Zkontrolujte výpis níž a všiměte si jak rozdílný je když pingnu přes ethernet a bluetooth na klientské straně:

$ ping -c 2 btserver PING btserver.home.net (10.0.0.1) 56(84) bytes of data. 64 bytes from btserver.home.net (10.0.0.1): icmp_seq=0 ttl=64 time=36.3 ms 64 bytes from btserver.home.net (10.0.0.1): icmp_seq=1 ttl=64 time=23.9 ms   --- btserver.home.net ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 23.962/30.170/36.378/6.208 ms, pipe 2  $ ping -c 2 server PING server.home.net (192.168.0.1) 56(84) bytes of data. 64 bytes from server.home.net (192.168.0.1): icmp_seq=0 ttl=64 time=0.236 ms 64 bytes from server.home.net (192.168.0.1): icmp_seq=1 ttl=64 time=0.269 ms   --- server.home.net ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1007ms rtt min/avg/max/mdev = 0.236/0.252/0.269/0.022 ms, pipe 2

Zdroj:  http://fedoranews.org/contributors/muhammad_al_ismail/bluetooth/