X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=hints%2Fbluenet.html;h=4a79e7f115c9a20f927b23cf4cb5db161d016cb1;hb=84fff0e3348620beeda8773bac6ba725c377d842;hp=0fcaf665a900ec2c5355e692da0001b31825c68f;hpb=c5734ba78dc2dfc81b4ba1cf4fd6c7f2b629131a;p=sites%2Fhome_page.git diff --git a/hints/bluenet.html b/hints/bluenet.html index 0fcaf66..4a79e7f 100644 --- a/hints/bluenet.html +++ b/hints/bluenet.html @@ -1,151 +1,161 @@ - -óÏÅÄÉÎÅÎÉÅ ËÏÍÐØÀÔÅÒÏ× × ÓÅÔØ ÞÅÒÅÚ Bluetooth - + +Соединение компьютеров в сеть через Bluetooth + -

óÏÅÄÉÎÎÉÅ ËÏÍÐØÀÔÅÒÏ× × ÓÅÔØ ÞÅÒÅÚ bluetooth

-ëÏÇÄÁ Õ ÍÅÎÑ ÚÁ×ÅÌÁÓØ × ÄÏÍÅ ÐÁÒÏÞËÁ Bluetooth ÁÄÁÐÔÅÒÏ×, ÍÎÅ ÚÁÈÏÔÅÌÏÓØ -ÉÓÐÏÌØÚÏ×ÁÔØ ÉÈ ÎÅ ÔÏÌØËÏ ÄÌÑ ÏÂÍÅÎÁ ÄÁÎÎÙÍÉ Ó ÍÏÂÉÌØÎÙÍÉ ÔÅÌÅÆÏÎÁÍÉ, ÎÏ -É ÄÌÑ ÏÒÇÁÎÉÚÁÃÉÉ ÓÅÔÉ, ÞÔÏÂÙ ÐÅÒÅÍÅÝÁÑÓØ Ó ÎÏÕÔÂÕËÏÍ ÐÏ ËÏÍÎÁÔÅ ÎÅ -ÐÒÉÈÏÄÉÌÏÓØ ÔÁÓËÁÔØ ÚÁ ÓÏÂÏÊ ethernet-Ï×ÓËÉÊ ËÁÂÅÌØ. +Автор выражает благодарность Андрею +Васильеву за подсказку насчет конфигурирования bridge через файл +interfaces. + +

Соединение компьютеров в сеть через bluetooth

+ +Когда у меня завелась в доме парочка Bluetooth адаптеров, мне захотелось +использовать их не только для обмена данными с мобильными телефонами, но +и для организации сети, чтобы перемещаясь с ноутбуком по комнате не +приходилось таскать за собой ethernet-овский кабель.

-÷ÓÅ ÏÐÉÓÁÎÉÑ PAN (Personal area networking) ËÏÔÏÒÙÅ ÍÎÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ × -ÓÅÔÉ (ÎÁÐÒÉÍÅÒ ÜÔÏ) ËÁËÉÅ-ÔÏ -ÆÒÁÇÍÅÎÔÁÒÎÙÅ. ðÏÜÔÏÍÕ Ñ ÒÅÛÉÌ ÏÐÉÓÁÔØ Ó×ÏÊ ÓÏÂÓÔ×ÅÎÎÙÊ ÏÐÙÔ. ÷ÐÒÏÞÅÍ, -×ÒÑÄ ÌÉ Õ ÍÅÎÑ ÐÏÌÕÞÉÔÓÑ ÌÕÞÛÅ. +Все описания PAN (Personal area networking) которые мне удалось найти в +сети (например это) какие-то +фрагментарные. Поэтому я решил описать свой собственный опыт. Впрочем, +вряд ли у меня получится лучше. -

ðÏÓÔÁÎÏ×ËÁ ÚÁÄÁÞÉ

+

Постановка задачи

-éÍÅÅÔÓÑ: +Имеется:
    -
  1. óÔÁÃÉÏÎÁÒÎÙÊ ËÏÍÐØÀÔÅÒ, ÐÏÄËÌÀÞÅÎÎÙÊ Ë ÉÎÔÅÒÎÅÔÕ. -
  2. ìÏËÁÌØÎÁÑ ÓÅÔØ ÐÏÄËÌÀÞÅÎÎÁÑ Ë ÄÁÎÎÏÍÕ ËÏÍÐØÀÔÅÒÕ (Ô.Å ÚÁÄÁÞÉ -ÆÏÒ×ÁÒÄÉÇÁ, ÍÁÓËÁÒÁÄÉÎÇÁ etc ÕÖÅ ÒÅÛÅÎÙ, É ÎÁ ËÏÍÐØÀÔÅÒÅ ÉÍÅÅÔÓÑ -ÒÁÂÏÔÁÀÝÊ dhcp-ÓÅÒ×ÅÒ) -
  3. îÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï ÎÏÕÔÂÕËÏ× (N, N<7) -
  4. îÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï (N+1) USB Bluetooth ÁÄÁÐÔÅÒÏ× +
  5. Стационарный компьютер, подключенный к интернету. +
  6. Локальная сеть подключенная к данному компьютеру (т.е задачи +форвардига, маскарадинга etc уже решены, и на компьютере имеется +работающй dhcp-сервер) +
  7. Некоторое количество ноутбуков (N, N<7) +
  8. Некоторое количество (N+1) USB Bluetooth адаптеров
-èÏÞÅÔÓÑ:
-þÔÏÂÙ ÐÒÉ ×ÔÙËÁÎÉÉ × ÎÏÕÔÂÕË bluetooth ÁÄÁÐÔÅÒÁ ÐÕÔÅÍ ÍÉÎÉÍÁÌØÎÙÈ -ÔÅÌÏÄ×ÉÖÅÎÉÊ ÎÏÕÔÂÕË ÏËÁÚÁÌÓÑ × ÓÅÔÉ. +Хочется:
+Чтобы при втыкании в ноутбук bluetooth адаптера путем минимальных +телодвижений ноутбук оказался в сети. -

îÁÓÔÒÏÊËÁ ÔÏÞËÉ ÄÏÓÔÕÐÁ

-ôÏÞËÏÊ ÄÏÓÔÕÐÁ Ñ×ÌÑÅÔÓÑ ÓÔÁÃÉÏÎÁÒÎÙÊ ËÏÍÐØÀÔÅÒ. îá ÎÅÍ Õ ÍÅÎÑ ÓÔÏÉÔ +

Настройка точки доступа

+Точкой доступа является стационарный компьютер. НА нем у меня стоит Debian sarge.

-äÌÑ ÏÒÇÁÎÉÚÁÃÉÉ ÄÏÓÔÕÐÁ ÔÒÅÂÕÅÔÓÑ ÒÅÛÉÔØ Ä×Å ÚÁÄÁÞÉ +Для организации доступа требуется решить две задачи

    -
  1. þÔÏÂÙ ËÏÍÐØÀÔÅÒ ÐÒÉÎÉÍÁÌ ÓÏÅÄÉÎÅÎÉÑ -
  2. þÔÏÂÙ ÐÏÓÌÅ ÕÓÔÁÎÏ×ËÉ ÓÏÅÄÉÎÅÎÉÑ ÐÏ dhcp ÏÔÄÁ×ÁÌÁÓØ ÎÅÏÂÈÏÄÉÍÁÑ -ËÏÎÆÉÇÕÒÁÃÉÏÎÎÁÑ ÉÎÆÏÒÍÁÃÉÑ +
  3. Чтобы компьютер принимал соединения +
  4. Чтобы после установки соединения по dhcp отдавалась необходимая +конфигурационная информация
-äÌÑ ÒÅÛÅÎÉÑ ÐÅÒ×ÏÊ ÚÁÄÁÞÉ ÄÏÓÔÁÔÏÞÎÏ ÚÁÐÕÓÔÉÔØ sdpd É pand Ó ÐÒÁ×ÉÌØÎÙÍÉ -ÐÁÒÁÍÅÔÒÁÍÉ. üÔÉ ÄÅÍÏÎÙ (ËÁË É hcid) ×ÈÏÄÑÔ × ÐÁËÅÔ bluez-utils. +Для решения первой задачи достаточно запустить sdpd и pand с правильными +параметрами. Эти демоны (как и hcid) входят в пакет bluez-utils.

-÷ Debian ÄÌÑ ÜÔÏÇÏ ÄÏÓÔÁÔÏÞÎÏ ÐÒÏÐÉÓÁÔØ Ä×Å ÓÔÒÏÞËÉ × +В Debian для этого достаточно прописать две строчки в /etc/default/bluez-utils

 PAND_ENABLED=1
 PAND_OPTIONS="--listen --role NAP"
 
-òÅÛÅÎÉÅ ×ÔÏÒÏÊ ÚÁÄÁÞÉ - ÂÏÌÅÅ ÓÌÏÖÎÏÅ É ÍÅÎÅÅ ÄÏËÕÍÅÎÔÉÒÏ×ÁÎÏÅ. ÷ÉÄÉÍÏ, -ÂÏÌØÛÉÎÓÔ×Ï Á×ÔÏÒÏ× ÈÁÕÔÕÛÅË ÐÏÄÎÉÍÁÌÉ ÓÔÁÔÉÞÅÓËÉÅ ÁÄÒÅÓÁ ÎÁ ÏÂÏÉÈ -ËÏÎÃÁÈ ÌÉÎËÁ É ÎÁ ÜÔÏÍ ÕÓÐÏËÁÉ×ÁÌÉÓØ. îÏ Õ ÍÅÎÑ ÅÓÔØ ÖÅÎÁ, Á Õ ÖÅÎÙ - -ÎÏÕÔÂÕË. ðÏÜÔÏÍÕ ÐÒÉÈÏÄÉÔÓÑ ÒÅÛÁÔØ ÚÁÄÁÞÕ × ÏÂÝÅÍ ×ÉÄÅ - Ó ×ÏÚÍÏÖÎÏÓÔØÀ -ÐÏÄËÌÀÞÅÎÉÑ ÂÏÌÅÅ ÞÅÍ ÏÄÎÏÇÏ ÕÓÔÒÏÊÓÔ×Á. -

-äÌÑ ÔÏÇÏ ÞÔÏÂÙ dhcp-ÓÅÒ×ÅÒ ÓÌÕÛÁÌ ÎÁ ÉÎÔÅÒÆÅÊÓÅ, ÉÎÔÅÒÆÅÊÓ ÄÏÌÖÅÎ -ÓÕÝÅÓÔ×Ï×ÁÔØ × ÍÏÍÅÎÔ ÚÁÐÕÓËÁ dhcpd. âÏÌÅÅ ÔÏÇÏ, pand ÓÏÚÄÁÅÔ ÄÌÑ -ËÁÖÄÏÇÏ bluetooth-ÓÏÅÄÉÎÅÎÉÑ ÏÔÄÅÌØÎÙÊ ÉÎÔÅÒÆÅÊÓ. úÁÍÕÞÁÅÛØÓÑ ÏÐÉÓÙ×ÁÔØ -É ÐÅÒÅÄÅÒÇÉ×ÁÔØ dhcpd ÐÏ ËÁÖÄÏÍÕ ÓÏÅÄÉÎÅÎÉÀ. ðÏÜÔÏÍÕ ×ÓÅ HOWTO -ÒÅËÏÍÅÎÄÕÀÔ ÉÓÐÏÌØÚÏ×ÁÔØ bridging. üÔÏ ÔÁËÁÑ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ × -ÌÉÎÕËÓÏ×ÏÍ ÑÄÒÅ, ÐÏÚ×ÏÌÑÀÝÁÑ ÏÂßÅÄÉÎÉÔØ ÎÅÓËÏÌØËÏ ÆÉÚÉÞÅÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× -× ÏÄÉÎ. äÌÑ ÒÁÂÏÔÙ Ó ÂÒÉÄÖÉÎÇÏÍ ÎÁÍ ÐÏÎÁÄÏÂÉÔÓÑ ÐÁËÅÔ bridge-utils, × -ÓÏÓÔÁ× ËÏÔÏÒÏÇÏ ×ÈÏÄÉÔ ÕÔÉÌÉÔÁ brctl. -

-÷ PAN-HOWTO ÒÅËÏÍÅÎÄÕÅÔÓÑ ÏÒÇÁÎÉÚÏ×ÁÔØ ÂÒÉÄÖ-ÉÎÔÅÒÆÅÊÓ, × ËÏÔÏÒÙÊ ÂÕÄÅÔ -ÄÏÂÁ×ÌÅÎ ÜÚÅÒÎÅÔ-ÉÎÔÅÒÆÅÊÓ ÌÏËÁÌØÎÏÊ ÓÅÔÉ É ÂÕÄÕÔ Á×ÔÏÍÁÔÉÞÅÓËÉ -ÄÏÂÁ×ÌÑÔØÓÑ bluetooth-ÉÎÔÅÒÆÅÊÓÙ ÐÏ ÍÅÒÅ ×ÏÚÎÉËÎÏ×ÅÎÉÑ. +Решение второй задачи - более сложное и менее документированое. Видимо, +большинство авторов хаутушек поднимали статические адреса на обоих +концах линка и на этом успокаивались. Но у меня есть жена, а у жены - +ноутбук. Поэтому приходится решать задачу в общем виде - с возможностью +подключения более чем одного устройства. +

+Для того чтобы dhcp-сервер слушал на интерфейсе, интерфейс должен +существовать в момент запуска dhcpd. Более того, pand создает для +каждого bluetooth-соединения отдельный интерфейс. Замучаешься описывать +и передергивать dhcpd по каждому соединению. Поэтому все HOWTO +рекомендуют использовать bridging. Это такая функциональность в +линуксовом ядре, позволяющая объединить несколько физических интерфейсов +в один. Для работы с бриджингом нам понадобится пакет bridge-utils, в +состав которого входит утилита brctl. +

+В PAN-HOWTO рекомендуется организовать бридж-интерфейс, в который будет +добавлен эзернет-интерфейс локальной сети и будут автоматически +добавляться bluetooth-интерфейсы по мере возникновения.

-îÉËÏÇÄÁ ÔÁË ÎÅ ÄÅÌÁÊÔÅ. äÅÌÏ × ÔÏÍ ÞÔÏ ÂÒÉÄÖ ÏÎ ÐÏ Ó×ÏÅÊ ÐÒÉÒÏÄÅ -×ÒÏÄÅ ÈÁÂÁ - ÏÎ ÐÒÏÔÁÌËÉ×ÁÅÔ ×ÓÅ ÐÁËÅÔÙ, ÐÒÉÈÏÄÑÝÉÅ ÎÁ ÏÄÉÎ ÉÚ -×ËÌÀÞÅÎÎÙÈ × ÎÅÇÏ ÉÎÔÅÒÆÅÊÓÏ× ×Ï ×ÓÅ ÏÓÔÁÌØÎÙÅ. óÏÏÔ×ÅÔÓÔ×ÅÎÎÏ, -ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÂÒÉÄÖÁ ÒÁ×ÎÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÓÁÍÏÇÏ ÔÏÒÍÏÚÎÏÇÏ ÉÚ -×ËÌÀÞÅÎÎÙÈ × ÎÅÇÏ ÉÎÔÅÒÆÅÊÓÏ×. ðÏÜÔÏÍÕ ×ËÌÀÞÉ× × ÏÄÉÎ ÂÒÉÄÖ 100-mb -ethernet É bluetooth, ×Ù ÐÏÓÁÄÉÔÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ethernet-Á ÄÏ -ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÓÏÔÉ ÂÌÀÔÕÚÁ - Ô.Å. ÄÏ ÐÒÉÍÅÒÎÏ ÏÄÎÏÇÏ ÍÅÇÁÂÉÔÁ. -

-ðÏÜÔÏÍÕ ÍÙ ÄÅÌÁÅÍ ÓÌÅÄÕÀÝÅÅ: +Никогда так не делайте. Дело в том что бридж он по своей природе +вроде хаба - он проталкивает все пакеты, приходящие на один из +включенных в него интерфейсов во все остальные. Соответственно, +производительность бриджа равна производительности самого тормозного из +включенных в него интерфейсов. Поэтому включив в один бридж 100-mb +ethernet и bluetooth, вы посадите производительность ethernet-а до +производительнсоти блютуза - т.е. до примерно одного мегабита. +(На самом деле код бриджинга, конечно, гораздо умнее, и может работать +как свитч, а не как хаб. Более того, можно его настроить так, чтобы +можно было втыкать и вытыкать ethernet не прерывая работы, чтобы если +есть кабель, пакеты автоматически бегали по нему, а если нет то через +bluetooth. Но лучше не связываться.) +

+Поэтому мы делаем следующее:

    -
  1. óÏÚÄÁÅÍ É ÎÁÓÔÒÁÉ×ÁÅÍ ÂÒÉÄÖÅ -
  2. îÅ ×ËÌÀÞÁÅÍ ÎÉ ÏÄÎÏÇÏ ÆÉÚÉÞÅÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ × ÜÔÏÔ ÂÒÉÄÖ -
  3. îÁÐÕÓËÁÅÍ ÎÁ ÜÔÏÔ ÂÒÉÄÖ dhcpd. +
  4. Создаем и настраиваем бридже +
  5. Не включаем ни одного физического интерфейса в этот бридж +
  6. Напускаем на этот бридж dhcpd.
-

-çÏÔÏ×ÏÇÏ ÓËÒÉÐÔÁ ËÕÄÁ ÍÏÖÎÏ ×ÐÉÓÁÔØ ËÏÍÁÎÄÙ ÓÏÚÄÁÎÉÑ ÂÒÉÄÖÁ Ñ ÎÅ ÎÁÛÅÌ. -ðÏÜÔÏÍÕ × /etc/init.d ÂÙÌ ÄÏÂÁ×ÌÅÎ ÓËÒÉÐÔ ÓÌÅÄÕÀÝÅÇÏ ÓÏÄÅÒÖÁÎÉÑ: - +Насторйки bridge, рекомендованные в HOWTO-PAN следующие:

-#!/bin/sh
-#
-# This script configures bridge interface for Bluetooth Personal Area
-# network. This interface should be up before dhcpd started
-#
-#
-IFACE=pan0
-ADDRESS=10.0.0.1
-NETMASK=255.255.255.0
-BROADCAST=10.0.0.255
-
-case "$1" in
-start)
-	# Creating bridge interface $IFACE
-	brctl addbr $IFACE
-	# Setting options according to HOWTO-PAN
-	brctl setfd $IFACE 0
-	brctl stp $IFACE off
-	# Configuring interface
-	ifconfig $IFACE $ADDRESS netmask $NETMASK broadcast $BROADCAST
-	;;
-stop) ifconfig pan0 down
-	;;
-*) 
-	echo "Usage $0 start|stop" >&2 
-;;	
-esac
+brctl setfd pan0 0
+
+Установить forward delay - задержку в пересылке пакета в 0 +
+brctl stp pan0 off
 
+Запретить использование Spanning tree protocol. +

+Эти возможности кода bridging в линуксовом ядре предназначены для +ситуаций, когда сети объединяются более чем одним bridge и нужно +принимать меры для того чтобы пакеты не бегали по кругу. В данной +простой ситуации - топология "звезда", нам это не нужно, а задержки оно +добавляет. -îÁ ÜÔÏÔ ÓËÒÉÐÔ ÓÏÚÄÁÎ ÓÉÍÌÉÎË × /etc/rc2.d Ó ÎÏÍÅÒÏÍ, ÍÅÎØÛÉÍ ÞÅÍ Õ -dhcpd (ÔÏÔ S20, Á ÜÔÏÔ S15)

-÷ ÐÒÉÎÃÉÐÅ, ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÎÅ ×ËÌÀÞÁÔØ × ÜÔÏÔ ÓËÒÉÐÔ ËÏÍÁÎÄÕ ifconfig, Á -ÞÅÓÔÎÏ ÏÐÉÓÁÔØ ÅÇÏ × /etc/network/interfaces ËÁË +Сетевые интерфейсы в debian описываются в файле +/etc/network/interfaces, +документированном в man-странице interfaces(5). На первый взгляд, +ничего касающегося бриджей там не обнаруживается. Но, оказывается, +синтаксис этого файла расширяем с помощью скриптов, помещаемых в +/etc/network/if*.d. +

+Пакет bridge-utils приносит с собой и устанавливает в +/etc/network/if-pre-up.d скрипт bridge, который обрабатывает команды +конфигурирования bridge. Дополнительные директивы конфигурации +интерфейса, обрабатываемые этим скриптом, описаны в +/usr/share/doc/bridge-utils/README.Debian.gz. +

+Поэтому добавляем в /etc/network/interfaces фрагмент следующего +содержания:

 auto pan0
 iface pan0 inet static
+	bridge_ports none
+	bridge_fd 0
+	bridge_stp off
 	address 10.0.0.1
-	network 10.0.0.0
 	netmask 255.255.255.0
-	broadcast 10.0.0.255
+	brodcast 10.0.0.255
 
- -îÏ ÔÏÇÄÁ ÓÌÅÄÕÅÔ ÐÏÚÁÂÏÔÉÔØÓÑ, ÞÔÏÂÙ ÓËÒÉÐÔ, ×ÙÐÏÌÎÑÀÝÉÊ brctl -addbr. ×ÙÐÏÌÎÑÌÓÑ ÄÏ /etc/init.d/networking, Ô.Å. × /etc/rcS.d. -ðÏÞÅÍÕ-ÔÏ ÍÎÅ ÜÔÁ ÉÄÅÑ ÎÅ ÐÏÎÒÁ×ÉÌÁÓØ. +Наиболее важной в этой конструкции является директива bridge_ports none. +Скрипт bridge вступает в работу именно при наличии директивы +bridge_ports с непустым списком интерфейсов. Поскольку на самом деле мы +не хотим добавлять какие-либо интерфейсы в список сразу (только по мере +подключения bluetooth-клиентов) то используем зарезервированное слово +none. +

+Две другие строки, начинающиеся с bridge соответствуют вышеприведенным +командам конфигурации.

-ôÅÐÅÒØ ËÏÇÄÁ Õ ÎÁÓ ÅÓÔØ ÉÎÔÅÒÆÅÊÓ, ÍÙ ÍÏÖÅÍ ÐÒÏÐÉÓÁÔØ × /etc/dhcpd.conf -ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÕÀ subnet É ÄÏÂÁ×ÉÔØ ÉÍÑ ÜÔÏÇÏ ÉÎÔÅÒÆÅÊÓÁ × ÓÔÒÏÞËÕ -INTERFACES × /etc/default/dhcpd. +Теперь когда у нас есть интерфейс, мы можем прописать в /etc/dhcpd.conf +соответствующую subnet и добавить имя этого интерфейса в строчку +INTERFACES в /etc/default/dhcpd.

-ðÒÉ×ÅÄÕ ÎÁ ×ÓÑËÉÊ ÓÌÕÞÁÊ ÆÒÁÇÍÅÎÔ ÉÚ dhcpd.conf +Приведу на всякий случай фрагмент из dhcpd.conf

  
-# üÔÏ ÁÄÒÅÓ ÓÅÒ×ÅÒÁ × ethernet-ÓÅÔÉ
+# Это адрес сервера в ethernet-сети
 server-identifier 192.168.217.1;
 
   subnet 10.0.0.0 netmask 255.255.255.0 {
@@ -156,88 +166,87 @@ server-identifier 192.168.217.1;
     option time-servers 192.168.217.1;
     option lpr-servers 192.168.217.1;
     range 10.0.0.2 10.0.0.254;
-	# ïÂÑÚÁÔÅÌØÎÏ ÐÅÒÅÄÁ×ÁÊÔÅ domain-name ÓÅÒ×ÅÒ
+	# Обязательно передавайте domain-name сервер
     option domain-name-servers 192.168.217.1;
     option routers 10.0.0.1;
 	
   }
 

-ïÓÔÁÌÏÓØ ÐÏÚÁÂÏÔÉÔØÓÑ Ï ÔÏÍ, ÞÔÏÂÙ ×ÎÏ×Ø ÐÏÑ×ÌÑÀÝÉÅÓÑ bnep-ÉÎÔÅÒÆÅÊÓÙ -×ËÌÀÞÁÌÉÓØ × ÜÔÏÔ ÂÒÉÄÖ É ÏÂÓÌÕÖÉ×ÁÌÉÓØ dhcpd. äÌÑ ÜÔÏÇÏ ÐÉÛÅÍ ÓËÒÉÐÔ -/etc/bluetooth/pan/dev-up ÓÌÅÄÕÀÝÅÇÏ ÓÏÄÅÒÖÁÎÉÑ: +Осталось позаботиться о том, чтобы вновь появляющиеся bnep-интерфейсы +включались в этот бридж и обслуживались dhcpd. Для этого пишем скрипт +/etc/bluetooth/pan/dev-up следующего содержания:

 #!/bin/sh
 brctl addif pan0 $1
 ifconfig $1 0.0.0.0
 
-ðÅÒ×ÁÑ ËÏÍÁÎÄÁ × ÜÔÏÍ ÓËÒÉÐÔÅ ÄÏÂÁ×ÌÑÅ ÉÎÔÅÒÆÅÊÓ $1 (Ô.Å. ÔÏÔ, ËÏÔÏÒÙÊ -pand ÐÅÒÅÄÁÌ × ËÁÞÅÓÔ×Å ÐÁÒÁÍÅÔÒÁ ÓËÒÉÐÔÕ) × ÂÒÉÄÖ pan0. -÷ÔÏÒÁÑ ËÏÍÁÎÄÁ - ÐÏÄÎÉÍÁÅÔ ÉÎÔÅÒÆÅÊÓ. õÓÔÁÎÁ×ÌÉ×ÁÔØ ÏÓÍÙÓÌÅÎÎÙÊ IP ÔÁÍ -ÎÅ ÎÁÄÏ, Ï ÜÔÏÍ ÐÏÚÁÂÏÔÉÔÓÑ ÕÒÏ×ÅÎØ ÂÒÉÄÖÁ. - - +Первая команда в этом скрипте добавляе интерфейс $1 (т.е. тот, который +pand передал в качестве параметра скрипту) в бридж pan0. +Вторая команда - поднимает интерфейс. Устанавливать осмысленный IP там +не надо, об этом позаботится уровень бриджа. Вероятно, было бы +достаточно прописать туда up вместо нулевого адреса.

-äÁ, ÅÝÅ. òÅËÏÍÅÎÄÕÀ ÚÁÍÅÎÉÔØ ÎÁ ÜÔÏÍ ËÏÍÐØÀÔÅÒÅ ÓÔÁÎÄÁÒÔÎÙÊ ÓËÒÉÐÔ -bluez-pin ÎÁ ÞÔÏ-ÎÉÂÕÄØ ÍÅÎÅÅ ÉÎÔÅÒÁËÔÉ×ÎÏÅ. éÎÁÞÅ ×Ï ×ÓÑËÏÍ ÓÌÕÞÁÅ ÐÒÉ -ÐÅÒ×ÏÍ ÓÏÅÄÉÎÅÎÉÉ ÐÒÉÄÅÔÓÑ ××ÏÄÉÔØ PIN ÎÁ ÏÂÏÉÈ ËÏÍÐØÀÔÅÒÁÈ. -óÍ ÎÁÐÒÉÍÅÒ ÍÏÊ -×ÁÒÉÁÎÔ ÒÅÛÅÎÉÑ ÜÔÏÊ ÐÒÏÂÅÌÍÙ +Да, еще. Рекомендую заменить на этом компьютере стандартный скрипт +bluez-pin на что-нибудь менее интерактивное. Иначе во всяком случае при +первом соединении придется вводить PIN на обоих компьютерах. +См например мой +вариант решения этой пробелмы -

îÁÓÔÒÏÊËÁ ËÌÉÅÎÔÁ

+

Настройка клиента

-îÁÓÔÒÏÊËÁ ËÌÉÅÎÔÁ ÎÁÍÎÏÇÏ ÐÒÏÝÅ. ðÏÓËÏÌØËÕ ÓÅÒ×ÅÒ ÁÎÎÏÒÓÉÒÕÅÔ ÓÅÂÑ ÐÏ -ÐÒÏÔÏËÏÌÕ sdp, ÔÏ ÎÁ ËÌÉÅÎÔÅ ÄÏÓÔÁÔÏÞÎÏ ÚÁÐÕÓÔÉÔØ +Настройка клиента намного проще. Поскольку сервер аннорсирует себя по +протоколу sdp, то на клиенте достаточно запустить
-pand --search NAP
+pand --search 
 
-þÔÏÂÙ ÓÏÅÄÉÎÅÎÉÅ ÕÓÔÁÎÏ×ÉÌÏÓØ. +Чтобы соединение установилось.

/etc/network/interfaces ÐÒÏÐÉÓÙ×ÁÅÍ +В /etc/network/interfaces прописываем

 iface bnep0 inet dhcp
 
-É ÔÅÐÅÒØ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ×Ó£ ÚÁÒÁÂÏÔÁÌÏ, ÄÏÓÔÁÔÏÞÎÏ ÞÔÏÂÙ ËÔÏ-ÔÏ ÐÏÓÌÅ -ÕÓÔÁÎÏ×ÌÅÎÉÑ ÓÏÅÄÉÎÅÎÉÑ ÄÅÒÎÕÌ ifup bnep0 -

-ñ ÐÒÏÐÉÓÁÌ ÜÔÏ × /etc/bluetooth/pan/dev-up, ÈÏÔÑ, ×ÅÒÏÑÔÎÏ, -ÍÏÖÎÏ ÂÙÌÏ ÐÒÏÓÔÏ ÐÒÏÐÉÓÔÁØ × /etc/network/interfaces ÄÌÑ ÜÔÏÇÏ -ÉÎÔÅÒÆÅÊÓÑ mapping hotplug -

-ïÓÔÁÌÓÑ ÏÄÉÎ-ÅÄÉÎÓÔ×ÅÎÙÎÊ ×ÏÐÒÏÓ - Á ËÔÏ ÂÕÄÅÔ ÚÁÐÕÓËÁÔØ pand Ó ÒÕÔÏ×ÙÍÉ -ÐÒÁ×ÁÍÉ ÐÒÉ ×ÔÙËÁÎÉÉ bluetooth-ÁÄÁÐÔÅÒÁ × ÎÏÕÔÂÕË. íÏÑ ÐÁÒÁÎÏÊÑ ÎÅ -ÐÏÚ×ÏÌÑÅÔ ÒÁÚÒÅÛÉÔØ ÜÔÏ ÄÅÌÁÔØ hotplug-Õ. íÁÌÏ ÌÉ ÇÄÅ Ñ ÒÅÛÉÌ -×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ bluetooth ÄÌÑ ÒÁÂÏÔÙ Ó ÍÏÂÉÌØÎÙÍ ÔÅÌÅÆÏÎÏÍ, É ÍÁÌÏ ÌÉ -ËÁËÕÀ ÓÅÔØ ÏÎÏ ÔÁÍ ÎÁÊÄÅÔ. ðÏÜÔÏÍÕ ÐÉÛÅÍ × /usr/local/bin -ÔÁËÏÊ ÓËÒÉÐÔ +и теперь для того, чтобы всё заработало, достаточно чтобы кто-то после +установления соединения дернул ifup bnep0 +

+Я прописал это в /etc/bluetooth/pan/dev-up, хотя, вероятно, +можно было просто пропистаь в /etc/network/interfaces для этого +интерфейся mapping hotplug +

+Остался один-единственынй вопрос - а кто будет запускать pand с рутовыми +правами при втыкании bluetooth-адаптера в ноутбук. Моя паранойя не +позволяет разрешить это делать hotplug-у. Мало ли где я решил +воспользоваться bluetooth для работы с мобильным телефоном, и мало ли +какую сеть оно там найдет. Поэтому пишем в /usr/local/bin +такой скрипт

 #!/bin/sh
 case "$1" in
 on)
-        sudo pand --search NAP
+        sudo pand --search 
 ;;      
 off)
         sudo pand -K
 ;;      
-# úÄÅÓØ ÂÕÄÅÔ ×ÁÒÉÁÎÔ ÒÁÂÏÔÙ ÎÏÕÔÂÕËÁ ÓÅÒ×ÅÒÏÁ
+# Здесь будет вариант работы ноутбука сервероа
 *)
         echo "use $0 on|off" >&2
         exit 1
 esac    
 
-é × /etc/sudoers ÐÒÏÐÉÓÙ×ÁÅÍ ÚÁÐÕÓË /usr/bin/pand ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÂÅÚ -ÐÁÒÏÌÑ. +И в /etc/sudoers прописываем запуск /usr/bin/pand для пользователей без +пароля.

-ôÅÐÅÒØ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÏËÁÚÁÔØÓÑ × ÓÅÔÉ ÎÁÍ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÒÏ×ÎÏ Ä×Å ×ÅÝÉ: +Теперь для того, чтобы оказаться в сети нам нужно сделать ровно две вещи:

    -
  1. ÷ÏÔËÎÕÔØ bluetooth ÁÄÁÐÔÅÒ -
  2. ÓËÁÚÁÔØ bluenet on +
  3. Воткнуть bluetooth адаптер +
  4. сказать bluenet on
-äÏÐÏÌÎÉÔÅÌØÎÙÅ ÏÓÏÂÅÎÎÏÓÔÉ ÎÁÓÔÒÏÊËÉ dhcp ÎÁ ÎÏÕÔÂÕËÁÈ, ËÁË ÎÁÐÒÉÍÅÒ, ÐÏÌÅÚÎÏÓÔØ ÌÏËÁÌØÎÏÇÏ DNS-ÓÅÒ×ÅÒÁ, ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÁËÅÔÁ resolvconf ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÜÔÏÔ ÓÅÒ×ÅÒ ÈÏÄÉÌ Ë ÐÒÁ×ÉÌØÎÏÍÕ ÆÏÒ×ÁÒÄÅÒÕ, ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏÐÃÉÉ time-servers É ntp-servers ÏÔÄÁ×ÁÅÍÙÈ dhcp-ÓÅÒ×ÅÒÏÍ ÄÌÑ ÓÉÎÈÒÏÎÉÚÁÃÉÉ ×ÒÅÍÅÎÉ ÏÓÔÁ×ÉÍ ÐÏËÁ ÚÁ ÓËÏÂËÁÍÉ. äÌÑ ÜÔÏÇÏ ÎÕÖÅÎ ÏÔÄÅÌØÎÙÊ ÔÅËÓÔ, ÔÁË ËÁË ÎÉÞÅÇÏ ÂÌÀÔÕÚ-ÓÐÅÃÉÆÉÞÎÏÇÏ × ÎÉÈ ÎÅÔ. ÷ ÓÌÕÞÁÅ ethernet ÔÁÍ ÔÒÅÂÕÅÔÓÑ ×Ó£ ÔÏ ÖÅ ÓÁÍÏÅ. +Дополнительные особенности настройки dhcp на ноутбуках, как например, полезность локального DNS-сервера, использование пакета resolvconf для того, чтобы этот сервер ходил к правильному форвардеру, использование опции time-servers и ntp-servers отдаваемых dhcp-сервером для синхронизации времени оставим пока за скобками. Для этого нужен отдельный текст, так как ничего блютуз-специфичного в них нет. В случае ethernet там требуется всё то же самое.