Ключевые слова:bluetooth, pan, linux, (найти похожие документы)
From: Cheer Igor <cheer.igor@gmail.com.>
Date: Mon, 27 Feb 2007 14:31:37 +0000 (UTC)
Subject: Раздача интернета через bluetooth
Оригинал: http://lice.wordpress.com/2006/10/29/inet-forwarding-via-bluetooth/
Купил я давеча себе ноутбук. А поскольку интернет у меня исключительно
проводной (LAN), то сразу же встал вопрос о том, как же подключить
ноутбук (от моего десктопа до ADSL роутера тянется провод длиною
метров 20). wifi адаптера у меня на десктопе тоже нет, но зато есть
bluetooth адаптер Tekram TM-304.
Для настройки адаптера понадобятся пакеты bluez-libs и
bluez-utils (http://www.bluez.org/). Основной конфигурационный файл
/etc/bluetooth/hcid.conf. Приведу его содержимое после настройки
(изначально файл подробно документирован, а в случае возникновения
вопросов можно обратиться по адресу man hcid.conf):
options {
autoinit yes;
security auto;
pairing multi;
passkey "123456'';
}
device {
name "BlueZ (%h)";
class 0 *00010c;
discovto 0;
iscan enable; pscan enable;
lm accept;
lp rswitch,hold,sniff,park;
}
Запустим bluetooth демон (в Archlinux перед этим надо запустить dbus):
/etc/rc.d/bluetooth start (в Archlinux вызов демона в rc.conf должен
быть после запуска dbus).
Теперь при вызове hciconfig -a можно увидеть свой адаптер и его MAC
адрес. Он должен быть UP и RUNNING. Подобную операцию проделаем и на
лаптопе. Теперь при запуске hcitool scan можно будет увидеть оба
компьютера. Установив, например, kdebluetooth можно побаловаться
передачей файлов с одной машины на другую. Но этого мало - нужен
интернет. Для этого требуется настроить NAP (Network Access Point) с
помощью PAN (Personal Area Network).
На десктопе запускаем:
pand -listen -role NAP
На лаптопе:
pand -connect DESKTOP_MAC_ADDRESS, где DESKTOP_MAC_ADDRESS - MAC адрес десктопа.
Теперь надо настроить интерфейс передачи данных. В случае bluetooth
соединения он называется BNEP (Bluetooth Network Encapsulation
Protocol).
Выполняем на десктопе:
ifconfig bnep0 10.0.0.1
На лаптопе:
ifconfig bnep0 10.0.0.2
Теперь можно удостовериться, что оба компьютера видят друг друга,
например: ping 10.0.0.1 находит лаптоп. Осталось лишь разрешить
направление пакетов с десктопа на лаптоп. Для этого в Archlinux надо
записать в /etc/sysctl.conf:
net.ipv4.ip_forward=1
Теперь установим iptables, если этот пакет ещё не установлен. Сделаем
такое правило:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Сохраним его: /etc/rc.d/iptables save, запустим iptables:
/etc/rc.d/iptables start
Вот и всё, теперь пинги проходят, а пост этот я пишу с ноута, который
через bluetooth выходит в сеть.
Конечно, есть ещё куда стремиться: подключаться дома можно к разным
компьютерам, десктоп может иногда выключаться, каждый раз писать
руками несколько строчек утомительно. Но над этим я поработаю попозже.
Пока есть сеть, а это главное.
Полезные ссылки:
* Соединение компьютеров в сеть через bluetooth
* HOWTO по настройке домашней Bluetooth сети с SAMBA в Mandrake 10
* PAN howto
Автоматизация довольно проста: записываем в /etc/conf.d/bluetooth
параметры PAND (что он запускается при старте демона bluetooth и
опции запуска, естественно, разные для сервера и клиента). А в
/etc/bluetooth/pan/dev-up можно записать поднятие интерфейса
(например, на сервере):
#!/bin/sh
ifconfig bnep0 10.0.0.1 up
Этот скрипт выполняется, когда интерфейс bnep0 уже готов к запуску
(смотрите man pand). На клиенте я предпочитаю выполнять поднятие
интерфейса руками.