Připojení k internetu přes bluetooth
Předpoklady:
- 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
- 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.
- 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/