Раздача интернета через bluetooth
Купил я давеча себе ноутбук. А поскольку интернет у меня исключительно проводной (LAN), то сразу же встал вопрос о том, как же подключить ноутбук (от моего десктопа до ADSL роутера тянется провод длиною метров 20). wifi адаптера у меня на десктопе тоже нет, но зато есть bluetooth адаптер Tekram TM-304.
Для настройки адаптера понадобятся пакеты bluez-libs и bluez-utils. Основной конфигурационный файл /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 выходит в сеть.
Конечно, есть ещё куда стремиться: подключаться дома можно к разным компьютерам, десктоп может иногда выключаться, каждый раз писать руками несколько строчек утомительно. Но над этим я поработаю попозже. Пока есть сеть, а это главное.
Полезные ссылки:
Октябрь 29, 2006 at 9:27 пп
@Igor:
Статья интересная и полезная, в том смысле, что bluetooth я настраивал, для связи со смартфоном, а вот сеть на BT - ни разу.
Только вот у меня с моим bluetooth донглом какие-то перманентные проблемы:
То сетевушка dma потеряет, то вообще при загрузке дойдет до usb и встанет.
Сейчас я его отключил, и сразу все проблемы исчезли.
Декабрь 1, 2006 at 2:05 дп
Автоматизация довольно проста: записываем в /etc/conf.d/bluetooth параметры PAND (что он запускается при старте демона bluetooth и опции запуска, естественно, разные для сервера и клиента). А в /etc/bluetooth/pan/dev-up можно записать поднятие интерфейса (например, на сервере):
#!/bin/shifconfig bnep0 10.0.0.1 up
Этот скрипт выполняется, когда интерфейс bnep0 уже готов к запуску (смотрите man pand). На клиенте я предпочитаю выполнять поднятие интерфейса руками.
Декабрь 18, 2006 at 8:58 дп
Спасибо, конечно, большое. Только у меня нет ноутбука, а есть наладонник iPAQ а на нем естественно, родной Виндоус от производителя, как бы ему раздать интернет, под ХР это просто - через АктивСинк например. А как быть под Лин?
Декабрь 18, 2006 at 9:16 дп
Наладонника я даже в руках никогда не держал, но говорят, что перед операциями с pand надо ввести
sdptool add NAP, потом запустить pand на сервере, подключиться на КПК (как - не знаю =), по идее уже можно добавить сервер как bluetooth-соединение), потом ifconfig на сервере и настройка IP на КПК…Июль 29, 2007 at 1:57 пп
если видно, что при запуске демон не может считать настройки файла hcid.conf (у меня это выражалось в том, что по умолчанию не был доступен ISCAN и имя было по умолчанию, BlueZ (0)), то рекомендуется удалить /var/lib/bluetooth и перезапустить демон.