<HTML><HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">
-<TITLE>óÏÅÄÉÎÅÎÉÅ ËÏÍÐØÀÔÅÒÏ× × ÓÅÔØ ÞÅÒÅÚ Bluetooth</TITLE>
-<meta name="description" CONTENT="íÏÊ ÓÏÂÓÔ×ÅÎÎÙÊ ÏÐÙÔ ÎÁÓÔÒÏÊËÉ
-ÂÌÀÔÕÓÎÏÇÏ Network access point">
+<META HTTP-EQUIV="Content-Type" "text/html; charset=utf-8">
+<TITLE>Соединение компьютеров в сеть через Bluetooth</TITLE>
+<meta name="description" CONTENT="Мой собственный опыт настройки
+блютусного Network access point">
</HEAD><BODY>
-á×ÔÏÒ ×ÙÒÁÖÁÅÔ ÂÌÁÇÏÄÁÒÎÏÓÔØ <a href="http://vap.livejournal.com">áÎÄÒÅÀ
-÷ÁÓÉÌØÅ×Õ</a> ÚÁ ÐÏÄÓËÁÚËÕ ÎÁÓÞÅÔ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ bridge ÞÅÒÅÚ ÆÁÊÌ
+Автор выражает благодарность <a href="http://vap.livejournal.com">Андрею
+Васильеву</a> за подсказку насчет конфигурирования bridge через файл
interfaces.
-<H1>óÏÅÄÉÎÅÎÉÅ ËÏÍÐØÀÔÅÒÏ× × ÓÅÔØ ÞÅÒÅÚ bluetooth</H1>
+<H1>Соединение компьютеров в сеть через bluetooth</H1>
-ëÏÇÄÁ Õ ÍÅÎÑ ÚÁ×ÅÌÁÓØ × ÄÏÍÅ ÐÁÒÏÞËÁ Bluetooth ÁÄÁÐÔÅÒÏ×, ÍÎÅ ÚÁÈÏÔÅÌÏÓØ
-ÉÓÐÏÌØÚÏ×ÁÔØ ÉÈ ÎÅ ÔÏÌØËÏ ÄÌÑ ÏÂÍÅÎÁ ÄÁÎÎÙÍÉ Ó ÍÏÂÉÌØÎÙÍÉ ÔÅÌÅÆÏÎÁÍÉ, ÎÏ
-É ÄÌÑ ÏÒÇÁÎÉÚÁÃÉÉ ÓÅÔÉ, ÞÔÏÂÙ ÐÅÒÅÍÅÝÁÑÓØ Ó ÎÏÕÔÂÕËÏÍ ÐÏ ËÏÍÎÁÔÅ ÎÅ
-ÐÒÉÈÏÄÉÌÏÓØ ÔÁÓËÁÔØ ÚÁ ÓÏÂÏÊ ethernet-Ï×ÓËÉÊ ËÁÂÅÌØ.
+Когда у меня завелась в доме парочка Bluetooth адаптеров, мне захотелось
+использовать их не только для обмена данными с мобильными телефонами, но
+и для организации сети, чтобы перемещаясь с ноутбуком по комнате не
+пÑ\80иÑ\85одилоÑ\81Ñ\8c Ñ\82аÑ\81каÑ\82Ñ\8c за Ñ\81обой ethernet-овÑ\81кий кабелÑ\8c.
<p>
-÷ÓÅ ÏÐÉÓÁÎÉÑ PAN (Personal area networking) ËÏÔÏÒÙÅ ÍÎÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ×
-ÓÅÔÉ (ÎÁÐÒÉÍÅÒ <a
-href="http://bluez.sourceforge.net/contrib/HOWTO-PAN">ÜÔÏ</a>) ËÁËÉÅ-ÔÏ
-ÆÒÁÇÍÅÎÔÁÒÎÙÅ. ðÏÜÔÏÍÕ Ñ ÒÅÛÉÌ ÏÐÉÓÁÔØ Ó×ÏÊ ÓÏÂÓÔ×ÅÎÎÙÊ ÏÐÙÔ. ÷ÐÒÏÞÅÍ,
-×ÒÑÄ ÌÉ Õ ÍÅÎÑ ÐÏÌÕÞÉÔÓÑ ÌÕÞÛÅ.
+Все описания PAN (Personal area networking) которые мне удалось найти в
+сети (например <a
+href="http://bluez.sourceforge.net/contrib/HOWTO-PAN">это</a>) какие-то
+фрагментарные. Поэтому я решил описать свой собственный опыт. Впрочем,
+вряд ли у меня получится лучше.
-<H2>ðÏÓÔÁÎÏ×ËÁ ÚÁÄÁÞÉ</H2>
+<H2>Постановка задачи</H2>
-éÍÅÅÔÓÑ:
+Имеется:
<ol>
-<li> óÔÁÃÉÏÎÁÒÎÙÊ ËÏÍÐØÀÔÅÒ, ÐÏÄËÌÀÞÅÎÎÙÊ Ë ÉÎÔÅÒÎÅÔÕ.
-<li> ìÏËÁÌØÎÁÑ ÓÅÔØ ÐÏÄËÌÀÞÅÎÎÁÑ Ë ÄÁÎÎÏÍÕ ËÏÍÐØÀÔÅÒÕ (Ô.Å ÚÁÄÁÞÉ
-ÆÏÒ×ÁÒÄÉÇÁ, ÍÁÓËÁÒÁÄÉÎÇÁ etc ÕÖÅ ÒÅÛÅÎÙ, É ÎÁ ËÏÍÐØÀÔÅÒÅ ÉÍÅÅÔÓÑ
-ÒÁÂÏÔÁÀÝÊ dhcp-ÓÅÒ×ÅÒ)
-<li> îÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï ÎÏÕÔÂÕËÏ× (N, N<7)
-<li> îÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï (N+1) USB Bluetooth ÁÄÁÐÔÅÒÏ×
+<li> Стационарный компьютер, подключенный к интернету.
+<li> Локальная сеть подключенная к данному компьютеру (т.е задачи
+форвардига, маскарадинга etc уже решены, и на компьютере имеется
+работающй dhcp-сервер)
+<li> Некоторое количество ноутбуков (N, N<7)
+<li> Некоторое количество (N+1) USB Bluetooth адаптеров
</ol>
-èÏÞÅÔÓÑ:<br>
-þÔÏÂÙ ÐÒÉ ×ÔÙËÁÎÉÉ × ÎÏÕÔÂÕË bluetooth ÁÄÁÐÔÅÒÁ ÐÕÔÅÍ ÍÉÎÉÍÁÌØÎÙÈ
-ÔÅÌÏÄ×ÉÖÅÎÉÊ ÎÏÕÔÂÕË ÏËÁÚÁÌÓÑ × ÓÅÔÉ.
+Хочется:<br>
+Чтобы при втыкании в ноутбук bluetooth адаптера путем минимальных
+телодвижений ноутбук оказался в сети.
-<h2>îÁÓÔÒÏÊËÁ ÔÏÞËÉ ÄÏÓÔÕÐÁ</h2>
-ôÏÞËÏÊ ÄÏÓÔÕÐÁ Ñ×ÌÑÅÔÓÑ ÓÔÁÃÉÏÎÁÒÎÙÊ ËÏÍÐØÀÔÅÒ. îá ÎÅÍ Õ ÍÅÎÑ ÓÔÏÉÔ
+<h2>Настройка точки доступа</h2>
+Точкой доступа является стационарный компьютер. НА нем у меня стоит
Debian sarge.
<p>
-äÌÑ ÏÒÇÁÎÉÚÁÃÉÉ ÄÏÓÔÕÐÁ ÔÒÅÂÕÅÔÓÑ ÒÅÛÉÔØ Ä×Å ÚÁÄÁÞÉ
+Для организации доступа требуется решить две задачи
<ol>
-<li>þÔÏÂÙ ËÏÍÐØÀÔÅÒ ÐÒÉÎÉÍÁÌ ÓÏÅÄÉÎÅÎÉÑ
-<li>þÔÏÂÙ ÐÏÓÌÅ ÕÓÔÁÎÏ×ËÉ ÓÏÅÄÉÎÅÎÉÑ ÐÏ dhcp ÏÔÄÁ×ÁÌÁÓØ ÎÅÏÂÈÏÄÉÍÁÑ
-ËÏÎÆÉÇÕÒÁÃÉÏÎÎÁÑ ÉÎÆÏÒÍÁÃÉÑ
+<li>Чтобы компьютер принимал соединения
+<li>Чтобы после установки соединения по dhcp отдавалась необходимая
+конфигурационная информация
</ol>
-äÌÑ ÒÅÛÅÎÉÑ ÐÅÒ×ÏÊ ÚÁÄÁÞÉ ÄÏÓÔÁÔÏÞÎÏ ÚÁÐÕÓÔÉÔØ sdpd É pand Ó ÐÒÁ×ÉÌØÎÙÍÉ
-ÐÁÒÁÍÅÔÒÁÍÉ. üÔÉ ÄÅÍÏÎÙ (ËÁË É hcid) ×ÈÏÄÑÔ × ÐÁËÅÔ bluez-utils.
+Для решения первой задачи достаточно запустить sdpd и pand с правильными
+паÑ\80амеÑ\82Ñ\80ами. ÐÑ\82и демонÑ\8b (как и hcid) вÑ\85одÑ\8fÑ\82 в пакеÑ\82 bluez-utils.
<p>
-÷ Debian ÄÌÑ ÜÔÏÇÏ ÄÏÓÔÁÔÏÞÎÏ ÐÒÏÐÉÓÁÔØ Ä×Å ÓÔÒÏÞËÉ ×
+В Debian для этого достаточно прописать две строчки в
<tt>/etc/default/bluez-utils</tt>
<pre>
PAND_ENABLED=1
PAND_OPTIONS="--listen --role NAP"
</pre>
-òÅÛÅÎÉÅ ×ÔÏÒÏÊ ÚÁÄÁÞÉ - ÂÏÌÅÅ ÓÌÏÖÎÏÅ É ÍÅÎÅÅ ÄÏËÕÍÅÎÔÉÒÏ×ÁÎÏÅ. ÷ÉÄÉÍÏ,
-ÂÏÌØÛÉÎÓÔ×Ï Á×ÔÏÒÏ× ÈÁÕÔÕÛÅË ÐÏÄÎÉÍÁÌÉ ÓÔÁÔÉÞÅÓËÉÅ ÁÄÒÅÓÁ ÎÁ ÏÂÏÉÈ
-ËÏÎÃÁÈ ÌÉÎËÁ É ÎÁ ÜÔÏÍ ÕÓÐÏËÁÉ×ÁÌÉÓØ. îÏ Õ ÍÅÎÑ ÅÓÔØ ÖÅÎÁ, Á Õ ÖÅÎÙ -
-ÎÏÕÔÂÕË. ðÏÜÔÏÍÕ ÐÒÉÈÏÄÉÔÓÑ ÒÅÛÁÔØ ÚÁÄÁÞÕ × ÏÂÝÅÍ ×ÉÄÅ - Ó ×ÏÚÍÏÖÎÏÓÔØÀ
-ÐÏÄËÌÀÞÅÎÉÑ ÂÏÌÅÅ ÞÅÍ ÏÄÎÏÇÏ ÕÓÔÒÏÊÓÔ×Á.
-<p>
-äÌÑ ÔÏÇÏ ÞÔÏÂÙ dhcp-ÓÅÒ×ÅÒ ÓÌÕÛÁÌ ÎÁ ÉÎÔÅÒÆÅÊÓÅ, ÉÎÔÅÒÆÅÊÓ ÄÏÌÖÅÎ
-ÓÕÝÅÓÔ×Ï×ÁÔØ × ÍÏÍÅÎÔ ÚÁÐÕÓËÁ dhcpd. âÏÌÅÅ ÔÏÇÏ, pand ÓÏÚÄÁÅÔ ÄÌÑ
-ËÁÖÄÏÇÏ bluetooth-ÓÏÅÄÉÎÅÎÉÑ ÏÔÄÅÌØÎÙÊ ÉÎÔÅÒÆÅÊÓ. úÁÍÕÞÁÅÛØÓÑ ÏÐÉÓÙ×ÁÔØ
-É ÐÅÒÅÄÅÒÇÉ×ÁÔØ dhcpd ÐÏ ËÁÖÄÏÍÕ ÓÏÅÄÉÎÅÎÉÀ. ðÏÜÔÏÍÕ ×ÓÅ HOWTO
-ÒÅËÏÍÅÎÄÕÀÔ ÉÓÐÏÌØÚÏ×ÁÔØ bridging. üÔÏ ÔÁËÁÑ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ ×
-ÌÉÎÕËÓÏ×ÏÍ ÑÄÒÅ, ÐÏÚ×ÏÌÑÀÝÁÑ ÏÂßÅÄÉÎÉÔØ ÎÅÓËÏÌØËÏ ÆÉÚÉÞÅÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ×
-× ÏÄÉÎ. äÌÑ ÒÁÂÏÔÙ Ó ÂÒÉÄÖÉÎÇÏÍ ÎÁÍ ÐÏÎÁÄÏÂÉÔÓÑ ÐÁËÅÔ bridge-utils, ×
-ÓÏÓÔÁ× ËÏÔÏÒÏÇÏ ×ÈÏÄÉÔ ÕÔÉÌÉÔÁ brctl.
-<p>
-÷ PAN-HOWTO ÒÅËÏÍÅÎÄÕÅÔÓÑ ÏÒÇÁÎÉÚÏ×ÁÔØ ÂÒÉÄÖ-ÉÎÔÅÒÆÅÊÓ, × ËÏÔÏÒÙÊ ÂÕÄÅÔ
-ÄÏÂÁ×ÌÅÎ ÜÚÅÒÎÅÔ-ÉÎÔÅÒÆÅÊÓ ÌÏËÁÌØÎÏÊ ÓÅÔÉ É ÂÕÄÕÔ Á×ÔÏÍÁÔÉÞÅÓËÉ
-ÄÏÂÁ×ÌÑÔØÓÑ bluetooth-ÉÎÔÅÒÆÅÊÓÙ ÐÏ ÍÅÒÅ ×ÏÚÎÉËÎÏ×ÅÎÉÑ.
+Решение второй задачи - более сложное и менее документированое. Видимо,
+большинство авторов хаутушек поднимали статические адреса на обоих
+концах линка и на этом успокаивались. Но у меня есть жена, а у жены -
+ноутбук. Поэтому приходится решать задачу в общем виде - с возможностью
+подклÑ\8eÑ\87ениÑ\8f более Ñ\87ем одного Ñ\83Ñ\81Ñ\82Ñ\80ойÑ\81Ñ\82ва.
+<p>
+Для того чтобы dhcp-сервер слушал на интерфейсе, интерфейс должен
+существовать в момент запуска dhcpd. Более того, pand создает для
+каждого bluetooth-соединения отдельный интерфейс. Замучаешься описывать
+и передергивать dhcpd по каждому соединению. Поэтому все HOWTO
+рекомендуют использовать bridging. Это такая функциональность в
+линуксовом ядре, позволяющая объединить несколько физических интерфейсов
+в один. Для работы с бриджингом нам понадобится пакет bridge-utils, в
+состав которого входит утилита brctl.
+<p>
+В PAN-HOWTO рекомендуется организовать бридж-интерфейс, в который будет
+добавлен эзернет-интерфейс локальной сети и будут автоматически
+добавляться bluetooth-интерфейсы по мере возникновения.
<P>
-<b>îÉËÏÇÄÁ ÔÁË ÎÅ ÄÅÌÁÊÔÅ</b>. äÅÌÏ × ÔÏÍ ÞÔÏ ÂÒÉÄÖ ÏÎ ÐÏ Ó×ÏÅÊ ÐÒÉÒÏÄÅ
-×ÒÏÄÅ ÈÁÂÁ - ÏÎ ÐÒÏÔÁÌËÉ×ÁÅÔ ×ÓÅ ÐÁËÅÔÙ, ÐÒÉÈÏÄÑÝÉÅ ÎÁ ÏÄÉÎ ÉÚ
-×ËÌÀÞÅÎÎÙÈ × ÎÅÇÏ ÉÎÔÅÒÆÅÊÓÏ× ×Ï ×ÓÅ ÏÓÔÁÌØÎÙÅ. óÏÏÔ×ÅÔÓÔ×ÅÎÎÏ,
-ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÂÒÉÄÖÁ ÒÁ×ÎÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÓÁÍÏÇÏ ÔÏÒÍÏÚÎÏÇÏ ÉÚ
-×ËÌÀÞÅÎÎÙÈ × ÎÅÇÏ ÉÎÔÅÒÆÅÊÓÏ×. ðÏÜÔÏÍÕ ×ËÌÀÞÉ× × ÏÄÉÎ ÂÒÉÄÖ 100-mb
-ethernet É bluetooth, ×Ù ÐÏÓÁÄÉÔÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ethernet-Á ÄÏ
-ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÓÏÔÉ ÂÌÀÔÕÚÁ - Ô.Å. ÄÏ ÐÒÉÍÅÒÎÏ ÏÄÎÏÇÏ ÍÅÇÁÂÉÔÁ.
-<i>(îÁ ÓÁÍÏÍ ÄÅÌÅ ËÏÄ ÂÒÉÄÖÉÎÇÁ, ËÏÎÅÞÎÏ, ÇÏÒÁÚÄÏ ÕÍÎÅÅ, É ÍÏÖÅÔ ÒÁÂÏÔÁÔØ
-ËÁË Ó×ÉÔÞ, Á ÎÅ ËÁË ÈÁÂ. âÏÌÅÅ ÔÏÇÏ, ÍÏÖÎÏ ÅÇÏ ÎÁÓÔÒÏÉÔØ ÔÁË, ÞÔÏÂÙ
-ÍÏÖÎÏ ÂÙÌÏ ×ÔÙËÁÔØ É ×ÙÔÙËÁÔØ ethernet ÎÅ ÐÒÅÒÙ×ÁÑ ÒÁÂÏÔÙ, ÞÔÏÂÙ ÅÓÌÉ
-ÅÓÔØ ËÁÂÅÌØ, ÐÁËÅÔÙ Á×ÔÏÍÁÔÉÞÅÓËÉ ÂÅÇÁÌÉ ÐÏ ÎÅÍÕ, Á ÅÓÌÉ ÎÅÔ ÔÏ ÞÅÒÅÚ
-bluetooth. îÏ ÌÕÞÛÅ ÎÅ Ó×ÑÚÙ×ÁÔØÓÑ.)</i>
-<p>
-ðÏÜÔÏÍÕ ÍÙ ÄÅÌÁÅÍ ÓÌÅÄÕÀÝÅÅ:
+<b>Никогда так не делайте</b>. Дело в том что бридж он по своей природе
+вроде хаба - он проталкивает все пакеты, приходящие на один из
+включенных в него интерфейсов во все остальные. Соответственно,
+пÑ\80оизводиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c бÑ\80иджа Ñ\80авна пÑ\80оизводиÑ\82елÑ\8cноÑ\81Ñ\82и Ñ\81амого Ñ\82оÑ\80мозного из
+включенных в него интерфейсов. Поэтому включив в один бридж 100-mb
+ethernet и bluetooth, вы посадите производительность ethernet-а до
+пÑ\80оизводиÑ\82елÑ\8cнÑ\81оÑ\82и блÑ\8eÑ\82Ñ\83за - Ñ\82.е. до пÑ\80имеÑ\80но одного мегабиÑ\82а.
+<i>(На самом деле код бриджинга, конечно, гораздо умнее, и может работать
+как свитч, а не как хаб. Более того, можно его настроить так, чтобы
+можно было втыкать и вытыкать ethernet не прерывая работы, чтобы если
+есть кабель, пакеты автоматически бегали по нему, а если нет то через
+bluetooth. Но лучше не связываться.)</i>
+<p>
+Поэтому мы делаем следующее:
<ol>
-<li>óÏÚÄÁÅÍ É ÎÁÓÔÒÁÉ×ÁÅÍ ÂÒÉÄÖÅ
-<li>îÅ ×ËÌÀÞÁÅÍ ÎÉ ÏÄÎÏÇÏ ÆÉÚÉÞÅÓËÏÇÏ ÉÎÔÅÒÆÅÊÓÁ × ÜÔÏÔ ÂÒÉÄÖ
-<li>îÁÐÕÓËÁÅÍ ÎÁ ÜÔÏÔ ÂÒÉÄÖ dhcpd.
+<li>Создаем и настраиваем бридже
+<li>Не включаем ни одного физического интерфейса в этот бридж
+<li>Напускаем на этот бридж dhcpd.
</ol>
-îÁÓÔÏÒÊËÉ bridge, ÒÅËÏÍÅÎÄÏ×ÁÎÎÙÅ × HOWTO-PAN ÓÌÅÄÕÀÝÉÅ:
+Насторйки bridge, рекомендованные в HOWTO-PAN следующие:
<pre>
brctl setfd pan0 0
</pre>
-õÓÔÁÎÏ×ÉÔØ <tt>forward delay</tt> - ÚÁÄÅÒÖËÕ × ÐÅÒÅÓÙÌËÅ ÐÁËÅÔÁ × 0
+Установить <tt>forward delay</tt> - задержку в пересылке пакета в 0
<pre>
brctl stp pan0 off
</pre>
-úÁÐÒÅÔÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ Spanning tree protocol.
+Запретить использование Spanning tree protocol.
<p>
-üÔÉ ×ÏÚÍÏÖÎÏÓÔÉ ËÏÄÁ bridging × ÌÉÎÕËÓÏ×ÏÍ ÑÄÒÅ ÐÒÅÄÎÁÚÎÁÞÅÎÙ ÄÌÑ
-ÓÉÔÕÁÃÉÊ, ËÏÇÄÁ ÓÅÔÉ ÏÂßÅÄÉÎÑÀÔÓÑ ÂÏÌÅÅ ÞÅÍ ÏÄÎÉÍ bridge É ÎÕÖÎÏ
-ÐÒÉÎÉÍÁÔØ ÍÅÒÙ ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÐÁËÅÔÙ ÎÅ ÂÅÇÁÌÉ ÐÏ ËÒÕÇÕ. ÷ ÄÁÎÎÏÊ
-ÐÒÏÓÔÏÊ ÓÉÔÕÁÃÉÉ - ÔÏÐÏÌÏÇÉÑ "Ú×ÅÚÄÁ", ÎÁÍ ÜÔÏ ÎÅ ÎÕÖÎÏ, Á ÚÁÄÅÒÖËÉ ÏÎÏ
-ÄÏÂÁ×ÌÑÅÔ.
+Эти возможности кода bridging в линуксовом ядре предназначены для
+ситуаций, когда сети объединяются более чем одним bridge и нужно
+пÑ\80инимаÑ\82Ñ\8c меÑ\80Ñ\8b длÑ\8f Ñ\82ого Ñ\87Ñ\82обÑ\8b пакеÑ\82Ñ\8b не бегали по кÑ\80Ñ\83гÑ\83. Ð\92 данной
+пÑ\80оÑ\81Ñ\82ой Ñ\81иÑ\82Ñ\83аÑ\86ии - Ñ\82опологиÑ\8f "звезда", нам Ñ\8dÑ\82о не нÑ\83жно, а задеÑ\80жки оно
+добавляет.
<p>
-óÅÔÅ×ÙÅ ÉÎÔÅÒÆÅÊÓÙ × debian ÏÐÉÓÙ×ÁÀÔÓÑ × ÆÁÊÌÅ
+Сетевые интерфейсы в debian описываются в файле
<tt>/etc/network/interfaces</tt>,
-ÄÏËÕÍÅÎÔÉÒÏ×ÁÎÎÏÍ × man-ÓÔÒÁÎÉÃÅ <b>interfaces</b>(5). îÁ ÐÅÒ×ÙÊ ×ÚÇÌÑÄ,
-ÎÉÞÅÇÏ ËÁÓÁÀÝÅÇÏÓÑ ÂÒÉÄÖÅÊ ÔÁÍ ÎÅ ÏÂÎÁÒÕÖÉ×ÁÅÔÓÑ. îÏ, ÏËÁÚÙ×ÁÅÔÓÑ,
-ÓÉÎÔÁËÓÉÓ ÜÔÏÇÏ ÆÁÊÌÁ ÒÁÓÛÉÒÑÅÍ Ó ÐÏÍÏÝØÀ ÓËÒÉÐÔÏ×, ÐÏÍÅÝÁÅÍÙÈ ×
+документированном в man-странице <b>interfaces</b>(5). На первый взгляд,
+ничего касающегося бриджей там не обнаруживается. Но, оказывается,
+синтаксис этого файла расширяем с помощью скриптов, помещаемых в
<tt>/etc/network/if*.d</tt>.
<p>
-ðÁËÅÔ bridge-utils ÐÒÉÎÏÓÉÔ Ó ÓÏÂÏÊ É ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ×
-/etc/network/if-pre-up.d ÓËÒÉÐÔ bridge, ËÏÔÏÒÙÊ ÏÂÒÁÂÁÔÙ×ÁÅÔ ËÏÍÁÎÄÙ
-ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ bridge. äÏÐÏÌÎÉÔÅÌØÎÙÅ ÄÉÒÅËÔÉ×Ù ËÏÎÆÉÇÕÒÁÃÉÉ
-ÉÎÔÅÒÆÅÊÓÁ, ÏÂÒÁÂÁÔÙ×ÁÅÍÙÅ ÜÔÉÍ ÓËÒÉÐÔÏÍ, ÏÐÉÓÁÎÙ ×
+Пакет bridge-utils приносит с собой и устанавливает в
+/etc/network/if-pre-up.d скрипт bridge, который обрабатывает команды
+конфигурирования bridge. Дополнительные директивы конфигурации
+интерфейса, обрабатываемые этим скриптом, описаны в
<tt>/usr/share/doc/bridge-utils/README.Debian.gz</tt>.
<p>
-ðÏÜÔÏÍÕ ÄÏÂÁ×ÌÑÅÍ × <tt>/etc/network/interfaces</tt> ÆÒÁÇÍÅÎÔ ÓÌÅÄÕÀÝÅÇÏ
-ÓÏÄÅÒÖÁÎÉÑ:
+Поэтому добавляем в <tt>/etc/network/interfaces</tt> фрагмент следующего
+содержания:
<pre>
auto pan0
netmask 255.255.255.0
brodcast 10.0.0.255
</pre>
-îÁÉÂÏÌÅÅ ×ÁÖÎÏÊ × ÜÔÏÊ ËÏÎÓÔÒÕËÃÉÉ Ñ×ÌÑÅÔÓÑ ÄÉÒÅËÔÉ×Á bridge_ports none.
-óËÒÉÐÔ bridge ×ÓÔÕÐÁÅÔ × ÒÁÂÏÔÕ ÉÍÅÎÎÏ ÐÒÉ ÎÁÌÉÞÉÉ ÄÉÒÅËÔÉ×Ù
-bridge_ports Ó ÎÅÐÕÓÔÙÍ ÓÐÉÓËÏÍ ÉÎÔÅÒÆÅÊÓÏ×. ðÏÓËÏÌØËÕ ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÍÙ
-ÎÅ ÈÏÔÉÍ ÄÏÂÁ×ÌÑÔØ ËÁËÉÅ-ÌÉÂÏ ÉÎÔÅÒÆÅÊÓÙ × ÓÐÉÓÏË ÓÒÁÚÕ (ÔÏÌØËÏ ÐÏ ÍÅÒÅ
-ÐÏÄËÌÀÞÅÎÉÑ bluetooth-ËÌÉÅÎÔÏ×) ÔÏ ÉÓÐÏÌØÚÕÅÍ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÎÎÏÅ ÓÌÏ×Ï
+Наиболее важной в этой конструкции является директива bridge_ports none.
+Скрипт bridge вступает в работу именно при наличии директивы
+bridge_ports с непустым списком интерфейсов. Поскольку на самом деле мы
+не хотим добавлять какие-либо интерфейсы в список сразу (только по мере
+подклÑ\8eÑ\87ениÑ\8f bluetooth-клиенÑ\82ов) Ñ\82о иÑ\81полÑ\8cзÑ\83ем заÑ\80езеÑ\80виÑ\80ованное Ñ\81лово
none.
<p>
-ä×Å ÄÒÕÇÉÅ ÓÔÒÏËÉ, ÎÁÞÉÎÁÀÝÉÅÓÑ Ó bridge ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ×ÙÛÅÐÒÉ×ÅÄÅÎÎÙÍ
-ËÏÍÁÎÄÁÍ ËÏÎÆÉÇÕÒÁÃÉÉ.
+Две другие строки, начинающиеся с bridge соответствуют вышеприведенным
+командам конфигурации.
<p>
-ôÅÐÅÒØ ËÏÇÄÁ Õ ÎÁÓ ÅÓÔØ ÉÎÔÅÒÆÅÊÓ, ÍÙ ÍÏÖÅÍ ÐÒÏÐÉÓÁÔØ × /etc/dhcpd.conf
-ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÕÀ subnet É ÄÏÂÁ×ÉÔØ ÉÍÑ ÜÔÏÇÏ ÉÎÔÅÒÆÅÊÓÁ × ÓÔÒÏÞËÕ
-INTERFACES × /etc/default/dhcpd.
+Теперь когда у нас есть интерфейс, мы можем прописать в /etc/dhcpd.conf
+соответствующую subnet и добавить имя этого интерфейса в строчку
+INTERFACES в /etc/default/dhcpd.
<p>
-ðÒÉ×ÅÄÕ ÎÁ ×ÓÑËÉÊ ÓÌÕÞÁÊ ÆÒÁÇÍÅÎÔ ÉÚ dhcpd.conf
+Приведу на всякий случай фрагмент из dhcpd.conf
<pre>
-# üÔÏ ÁÄÒÅÓ ÓÅÒ×ÅÒÁ × ethernet-ÓÅÔÉ
+# Это адрес сервера в ethernet-сети
server-identifier 192.168.217.1;
subnet 10.0.0.0 netmask 255.255.255.0 {
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;
}
</pre>
<p>
-ïÓÔÁÌÏÓØ ÐÏÚÁÂÏÔÉÔØÓÑ Ï ÔÏÍ, ÞÔÏÂÙ ×ÎÏ×Ø ÐÏÑ×ÌÑÀÝÉÅÓÑ bnep-ÉÎÔÅÒÆÅÊÓÙ
-×ËÌÀÞÁÌÉÓØ × ÜÔÏÔ ÂÒÉÄÖ É ÏÂÓÌÕÖÉ×ÁÌÉÓØ dhcpd. äÌÑ ÜÔÏÇÏ ÐÉÛÅÍ ÓËÒÉÐÔ
-<tt>/etc/bluetooth/pan/dev-up</tt> ÓÌÅÄÕÀÝÅÇÏ ÓÏÄÅÒÖÁÎÉÑ:
+Осталось позаботиться о том, чтобы вновь появляющиеся bnep-интерфейсы
+включались в этот бридж и обслуживались dhcpd. Для этого пишем скрипт
+<tt>/etc/bluetooth/pan/dev-up</tt> следующего содержания:
<pre>
#!/bin/sh
brctl addif pan0 $1
ifconfig $1 0.0.0.0
</pre>
-ðÅÒ×ÁÑ ËÏÍÁÎÄÁ × ÜÔÏÍ ÓËÒÉÐÔÅ ÄÏÂÁ×ÌÑÅ ÉÎÔÅÒÆÅÊÓ $1 (Ô.Å. ÔÏÔ, ËÏÔÏÒÙÊ
-pand ÐÅÒÅÄÁÌ × ËÁÞÅÓÔ×Å ÐÁÒÁÍÅÔÒÁ ÓËÒÉÐÔÕ) × ÂÒÉÄÖ pan0.
-÷ÔÏÒÁÑ ËÏÍÁÎÄÁ - ÐÏÄÎÉÍÁÅÔ ÉÎÔÅÒÆÅÊÓ. õÓÔÁÎÁ×ÌÉ×ÁÔØ ÏÓÍÙÓÌÅÎÎÙÊ IP ÔÁÍ
-ÎÅ ÎÁÄÏ, Ï ÜÔÏÍ ÐÏÚÁÂÏÔÉÔÓÑ ÕÒÏ×ÅÎØ ÂÒÉÄÖÁ. ÷ÅÒÏÑÔÎÏ, ÂÙÌÏ ÂÙ
-ÄÏÓÔÁÔÏÞÎÏ ÐÒÏÐÉÓÁÔØ ÔÕÄÁ up ×ÍÅÓÔÏ ÎÕÌÅ×ÏÇÏ ÁÄÒÅÓÁ.
+Первая команда в этом скрипте добавляе интерфейс $1 (т.е. тот, который
+pand пеÑ\80едал в каÑ\87еÑ\81Ñ\82ве паÑ\80амеÑ\82Ñ\80а Ñ\81кÑ\80ипÑ\82Ñ\83) в бÑ\80идж pan0.
+Вторая команда - поднимает интерфейс. Устанавливать осмысленный IP там
+не надо, об этом позаботится уровень бриджа. Вероятно, было бы
+достаточно прописать туда up вместо нулевого адреса.
<p>
-äÁ, ÅÝÅ. òÅËÏÍÅÎÄÕÀ ÚÁÍÅÎÉÔØ ÎÁ ÜÔÏÍ ËÏÍÐØÀÔÅÒÅ ÓÔÁÎÄÁÒÔÎÙÊ ÓËÒÉÐÔ
-bluez-pin ÎÁ ÞÔÏ-ÎÉÂÕÄØ ÍÅÎÅÅ ÉÎÔÅÒÁËÔÉ×ÎÏÅ. éÎÁÞÅ ×Ï ×ÓÑËÏÍ ÓÌÕÞÁÅ ÐÒÉ
-ÐÅÒ×ÏÍ ÓÏÅÄÉÎÅÎÉÉ ÐÒÉÄÅÔÓÑ ××ÏÄÉÔØ PIN ÎÁ ÏÂÏÉÈ ËÏÍÐØÀÔÅÒÁÈ.
-óÍ ÎÁÐÒÉÍÅÒ <a
-href="http://www.wagner.pp.ru/~vitus/software/unix/btdev.html">ÍÏÊ
-×ÁÒÉÁÎÔ ÒÅÛÅÎÉÑ ÜÔÏÊ ÐÒÏÂÅÌÍÙ</a>
+Да, еще. Рекомендую заменить на этом компьютере стандартный скрипт
+bluez-pin на что-нибудь менее интерактивное. Иначе во всяком случае при
+пеÑ\80вом Ñ\81оединении пÑ\80идеÑ\82Ñ\81Ñ\8f вводиÑ\82Ñ\8c PIN на обоиÑ\85 компÑ\8cÑ\8eÑ\82еÑ\80аÑ\85.
+См например <a
+href="http://www.wagner.pp.ru/~vitus/software/unix/btdev.html">мой
+вариант решения этой пробелмы</a>
-<h2> îÁÓÔÒÏÊËÁ ËÌÉÅÎÔÁ</h2>
+<h2> Настройка клиента</h2>
-îÁÓÔÒÏÊËÁ ËÌÉÅÎÔÁ ÎÁÍÎÏÇÏ ÐÒÏÝÅ. ðÏÓËÏÌØËÕ ÓÅÒ×ÅÒ ÁÎÎÏÒÓÉÒÕÅÔ ÓÅÂÑ ÐÏ
-ÐÒÏÔÏËÏÌÕ sdp, ÔÏ ÎÁ ËÌÉÅÎÔÅ ÄÏÓÔÁÔÏÞÎÏ ÚÁÐÕÓÔÉÔØ
+Настройка клиента намного проще. Поскольку сервер аннорсирует себя по
+пÑ\80оÑ\82околÑ\83 sdp, Ñ\82о на клиенÑ\82е доÑ\81Ñ\82аÑ\82оÑ\87но запÑ\83Ñ\81Ñ\82иÑ\82Ñ\8c
<pre>
pand --search
</pre>
-þÔÏÂÙ ÓÏÅÄÉÎÅÎÉÅ ÕÓÔÁÎÏ×ÉÌÏÓØ.
+Чтобы соединение установилось.
<p>
-÷ <tt>/etc/network/interfaces</tt> ÐÒÏÐÉÓÙ×ÁÅÍ
+В <tt>/etc/network/interfaces</tt> прописываем
<pre>
iface bnep0 inet dhcp
</pre>
-É ÔÅÐÅÒØ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ×Ó£ ÚÁÒÁÂÏÔÁÌÏ, ÄÏÓÔÁÔÏÞÎÏ ÞÔÏÂÙ ËÔÏ-ÔÏ ÐÏÓÌÅ
-ÕÓÔÁÎÏ×ÌÅÎÉÑ ÓÏÅÄÉÎÅÎÉÑ ÄÅÒÎÕÌ <tt>ifup bnep0</tt>
-<p>
-ñ ÐÒÏÐÉÓÁÌ ÜÔÏ × <tt>/etc/bluetooth/pan/dev-up</tt>, ÈÏÔÑ, ×ÅÒÏÑÔÎÏ,
-ÍÏÖÎÏ ÂÙÌÏ ÐÒÏÓÔÏ ÐÒÏÐÉÓÔÁØ × <tt>/etc/network/interfaces</tt> ÄÌÑ ÜÔÏÇÏ
-ÉÎÔÅÒÆÅÊÓÑ <tt>mapping hotplug</tt>
-<p>
-ïÓÔÁÌÓÑ ÏÄÉÎ-ÅÄÉÎÓÔ×ÅÎÙÎÊ ×ÏÐÒÏÓ - Á ËÔÏ ÂÕÄÅÔ ÚÁÐÕÓËÁÔØ pand Ó ÒÕÔÏ×ÙÍÉ
-ÐÒÁ×ÁÍÉ ÐÒÉ ×ÔÙËÁÎÉÉ bluetooth-ÁÄÁÐÔÅÒÁ × ÎÏÕÔÂÕË. íÏÑ ÐÁÒÁÎÏÊÑ ÎÅ
-ÐÏÚ×ÏÌÑÅÔ ÒÁÚÒÅÛÉÔØ ÜÔÏ ÄÅÌÁÔØ hotplug-Õ. íÁÌÏ ÌÉ ÇÄÅ Ñ ÒÅÛÉÌ
-×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ bluetooth ÄÌÑ ÒÁÂÏÔÙ Ó ÍÏÂÉÌØÎÙÍ ÔÅÌÅÆÏÎÏÍ, É ÍÁÌÏ ÌÉ
-ËÁËÕÀ ÓÅÔØ ÏÎÏ ÔÁÍ ÎÁÊÄÅÔ. ðÏÜÔÏÍÕ ÐÉÛÅÍ × <tt>/usr/local/bin</tt>
-ÔÁËÏÊ ÓËÒÉÐÔ
+и теперь для того, чтобы всё заработало, достаточно чтобы кто-то после
+установления соединения дернул <tt>ifup bnep0</tt>
+<p>
+Я прописал это в <tt>/etc/bluetooth/pan/dev-up</tt>, хотя, вероятно,
+можно было просто пропистаь в <tt>/etc/network/interfaces</tt> для этого
+интерфейся <tt>mapping hotplug</tt>
+<p>
+Остался один-единственынй вопрос - а кто будет запускать pand с рутовыми
+пÑ\80авами пÑ\80и вÑ\82Ñ\8bкании bluetooth-адапÑ\82еÑ\80а в ноÑ\83Ñ\82бÑ\83к. Ð\9cоÑ\8f паÑ\80анойÑ\8f не
+позволÑ\8fеÑ\82 Ñ\80азÑ\80еÑ\88иÑ\82Ñ\8c Ñ\8dÑ\82о делаÑ\82Ñ\8c hotplug-Ñ\83. Ð\9cало ли где Ñ\8f Ñ\80еÑ\88ил
+воспользоваться bluetooth для работы с мобильным телефоном, и мало ли
+какую сеть оно там найдет. Поэтому пишем в <tt>/usr/local/bin</tt>
+такой скрипт
<pre>
#!/bin/sh
case "$1" in
off)
sudo pand -K
;;
-# úÄÅÓØ ÂÕÄÅÔ ×ÁÒÉÁÎÔ ÒÁÂÏÔÙ ÎÏÕÔÂÕËÁ ÓÅÒ×ÅÒÏÁ
+# Здесь будет вариант работы ноутбука сервероа
*)
echo "use $0 on|off" >&2
exit 1
esac
</pre>
-é × /etc/sudoers ÐÒÏÐÉÓÙ×ÁÅÍ ÚÁÐÕÓË /usr/bin/pand ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÂÅÚ
-ÐÁÒÏÌÑ.
+И в /etc/sudoers прописываем запуск /usr/bin/pand для пользователей без
+паÑ\80олÑ\8f.
<p>
-ôÅÐÅÒØ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÏËÁÚÁÔØÓÑ × ÓÅÔÉ ÎÁÍ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÒÏ×ÎÏ Ä×Å ×ÅÝÉ:
+Теперь для того, чтобы оказаться в сети нам нужно сделать ровно две вещи:
<ol>
-<li>÷ÏÔËÎÕÔØ bluetooth ÁÄÁÐÔÅÒ
-<li>ÓËÁÚÁÔØ bluenet on
+<li>Воткнуть bluetooth адаптер
+<li>сказать bluenet on
</ol>
-äÏÐÏÌÎÉÔÅÌØÎÙÅ ÏÓÏÂÅÎÎÏÓÔÉ ÎÁÓÔÒÏÊËÉ dhcp ÎÁ ÎÏÕÔÂÕËÁÈ, ËÁË ÎÁÐÒÉÍÅÒ, ÐÏÌÅÚÎÏÓÔØ ÌÏËÁÌØÎÏÇÏ DNS-ÓÅÒ×ÅÒÁ, ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÁËÅÔÁ resolvconf ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÜÔÏÔ ÓÅÒ×ÅÒ ÈÏÄÉÌ Ë ÐÒÁ×ÉÌØÎÏÍÕ ÆÏÒ×ÁÒÄÅÒÕ, ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÏÐÃÉÉ time-servers É ntp-servers ÏÔÄÁ×ÁÅÍÙÈ dhcp-ÓÅÒ×ÅÒÏÍ ÄÌÑ ÓÉÎÈÒÏÎÉÚÁÃÉÉ ×ÒÅÍÅÎÉ ÏÓÔÁ×ÉÍ ÐÏËÁ ÚÁ ÓËÏÂËÁÍÉ. äÌÑ ÜÔÏÇÏ ÎÕÖÅÎ ÏÔÄÅÌØÎÙÊ ÔÅËÓÔ, ÔÁË ËÁË ÎÉÞÅÇÏ ÂÌÀÔÕÚ-ÓÐÅÃÉÆÉÞÎÏÇÏ × ÎÉÈ ÎÅÔ. ÷ ÓÌÕÞÁÅ ethernet ÔÁÍ ÔÒÅÂÕÅÔÓÑ ×Ó£ ÔÏ ÖÅ ÓÁÍÏÅ.
+Дополнительные особенности настройки dhcp на ноутбуках, как например, полезность локального DNS-сервера, использование пакета resolvconf для того, чтобы этот сервер ходил к правильному форвардеру, использование опции time-servers и ntp-servers отдаваемых dhcp-сервером для синхронизации времени оставим пока за скобками. Для этого нужен отдельный текст, так как ничего блютуз-специфичного в них нет. В случае ethernet там требуется всё то же самое.
</BODY>
</HTML>