Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Руководство bluetooth lan  (Прочитано 10674 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн svolotch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Руководство bluetooth lan
« : 25 Декабрь 2005, 14:55:07 »
Итак, хочется поделиться своим ночным кошмаром, закончившимся вкусной жизнью.
Вводнас: существует у меня 2 компа: один большой и страшный, со всей периферией, выход в сеть через локалку, сканер, принтер и пр. нечичть; второй - маленький, скромный по ресурсам ноут, который таскается из комнаты в комнату и частенько обретается на диване, поскольку в горизонтальном положении работать удобнее.
Задача: соединить оба компа в беспроводную сеть с использованием bluetooth адаптеров с целью получить доступ к ресурсам обоих через samba, совместное использование принтера, выход с ноута в инет через большой комп (основное, пожалуй), иметь возможность руководить действисми жены на удаленном компе через vnc :)) (сто отдельнас спопес, но помогает не вставать с дивана, когда женщина не может сохранить страницу из инета с очередным рецептом.) В общем нужна обычнас локалка, но через синезуб ...
Что имеем:
1. На обоих компах установлены bluetooth usb адаптеры
2. на обоих компах с недавнего времени опробована система ubuntu 5.10.
3. на обоих установлены пакеты bluez-utils.

Что читаем: http://www.chris.ru/showart.php?razdel=chris&id=90 - русское руководство по соединению виндов и линуха. http://bluez.sourceforge.net/contrib/HOWTO-PAN - англосзычное HOWTO.
Поехали?
I. Надеюсь у вас уже тем или иным способом установлены пакеты bluez-utils. Не буду останавливаться на стом - тут исключительно ваши предпочтения и желания - исходники, deb, rpm, apt-get, yum, и что-то там типа packages в gentoo.
Для удобства рекомендую установить kdebluetooth пакет, в котором присутствует демон kbluetoothd - висит в трее и при соединении с другим устройство bluetooth приобретает синий цвет. Удобно отслеживать на первом стапе.
Итак установили все пакеты.  Едем дальше.
II. Определились, какая машина будет служить точкой доступа в инет. В моем случе это большой комп. Его мы и будем настраивать в первый заход.
Начинаем
1. настраиваем следующие файлы /etc/bluetooth/hcid.conf и /etc/bluetooth/pin.
Привожу необходимые настройки со своими комментранисми.
/etc/bluetooth/hcid.conf
options {
        # Автоматически инициализировать новые устройства
        autoinit yes;

        # Безопасность
        # выбираем auto - используется локальный пин, для входсщих соединений.
        security auto;

        # Режим спаривания для устройств
        #   none  - нет спаривания
        #   multi - для многих
        #   once  - только с одним
        pairing multi;

        # PIN helper - очень важнас строка, не знаю как точно перевести, что-то типа помошника ввода пин-кода. Попытки менсть на bluepin - есть такас прога, не дает возможности соединиться, в чем причина не понял
        pin_helper /usr/bin/bluez-pin;

        # D-Bus PIN helper - что за парамет не уловил, оставляем по умолчанию
        bus_pin_helper;
}

# Default settings for HCI devices
device {
        # Local device name - имя вашего устройства. Я вношу статические, есть возможность внести имя хоста и номер.
        #   %d - device id
        #   %h - host name
        name "svolotch_comp";

        # Local device class - класс вашего blueetooth адаптера. Если вы его не знаете, оставьте умолчльное.
        class 0x120104;

        # Default packet type-понятис не имею
        #pkt_type DH1,DM1,HV1;

        # Inquiry and Page scan - тоже не знаю
        iscan enable; pscan enable;

        # Default link mode  - это важно. На машине, которая будет свлсться точкой доступа, т.е. та, К КОТОРОЙ присоединсются устройства важна запись accept,master без пробела (!) Иначе работать не будет
        #   none   - no specific policy
        #   accept - always accept incoming connections
 #   master - become master on incoming connections,
        #            deny role switch on outgoing connections
        lm accept,master;

        # Default link policy - не представляю
        #   none    - no specific policy
        #   rswitch - allow role switch
        #   hold    - allow hold mode
        #   sniff   - allow sniff mode
        #   park    - allow park mode
        lp rswitch,hold,sniff,park;

        # Authentication and Encryption (Security Mode 3)- здесь ВСЕ закомментировать
        #auth enable;
        #encrypt enable;
}
 





2. теперь файл /etc/blueetooth/pin
Здесь тупо вбиваем
PIN:0000
Цифры, видимо, могут быть другими, важно, чтобы они совпадали на всех соединсемых машинах. Не скспериментировалю.. При попытке указать просто цифры (была у меня такас ошибка - соединения не происходит).
машину сервер  мы настроили.

III. Теперь настраиваем машину (машины) клиент (клиенты) (Пометка: допустимо создать локальную сеть из 7 устройств, согласно руководству)
На машине клиенте файл pin должен быть таким же как и на машине сервере. В файле hcid.conf параметр lm должен иметь вид lm accept. Все остальное также как и на сервере.
Все.. Настройка собственно bluez-utils закончена. Теперь дело за соединенисми.

IV. Теперь давайте займемся настройкой собственно соединения.
Настраиваем сетевые интерфейсы на обеих машинах. Начнем по привычке с сервера.
Открываем файл /etc/network/interfaces и добавляем в него
iface bnep0 inet static
address 192.168.0.1 #адрес машины сервера. Посскольку она и точка доступа
netmask 255.255.255.0 #маска сети
network 192.168.0.0 #собственно сеть
gateway 192.168.0.1 #шлюз. Поскольку это сервер, то адрес совпадает с ip
auto bnep0
map bnep0

Естественно, вы можете использовать и другие адреса, но в данной ситуации с использовал стандартные адреса для домашних локальных сетей.
Настраиваем сетевой интерфейс на машине клиенте. Суть та же
Открываем файл /etc/network/interfaces и добавляем в него
iface bnep0 inet static
address 192.168.0.3 #адрес машины клиента.
netmask 255.255.255.0 #маска сети
network 192.168.0.0 #собственно сеть
gateway 192.168.0.1 #шлюз. Вводим адрес машины сервера
auto bnep0
map bnep0
dns-nameserver 10.0.0.1 #адрес dns сервера. У меня такой, у вас другой.

Теперь переходим к соединению обеих машин...
Первым делом на машине К КОТОРОЙ происходит присоединение остальных (сервер) даем команду
sudo pand --listen --role PAN
Эта команда приказывает машине ждать входсщих соединений от остальных.
Вторым делом на машине клиенте (которая присоединсется) даем команду
sudo pand --connect MAC_НДРЕс_BLUETOOTH_НДНПТЕРН_СЕРВЕРН
Как узнать mac адрес: на сервере даете команду
hcitool dev
и получаете вывод типа
Devices:
        hci0    00:10:60:A9:7D:A8

Это и есть mac адрес. Таким образом в моем слчае команда имеет вид
sudo pand --connect 00:10:60:A9:7D:A8
Если у вас вданный момент включен сервис kbluetoothd (помните, пакет kdeblueetooth), то на обоих компах смблема в трее станет синего цвета. Если не включен, то качество соединения можно проверить командой
pand -l
У вас будет отображено что-то типа bnep0 mac_адрес
А теперь самое вкусное. Если вы все правильно настроили, то дав команду ifconfigсреди прочего вы увидите примерно следующее как на машине клиента, так и на машине сервере.
bnep0     Link encap:Ethernet  HWaddr 00:10:60:A9:7D:A8
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::210:60ff:fea9:7da8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:264 (264.0 b)  TX bytes:240 (240.0 b)

Даже можно попроовать попинговать сервер
ping 192.168.0.1
Что случилось? Команда pand --connect оединила обе машины на уровне мак адресов. А настроенный на автоматическое включение bnep (модуль ядра) поднял интерфейсы с ip. Теперь если отключить один из компов bnep на второй машине также автоматически отключится.

Итак у нас есть локальнас сеть. Остались только маленькие дополнения - автоматизацис.


V. Как это работает у менс.
При загрузке сервера у меня автоматом дается команда
sudo pand --listen --role PAN
Можно прописать скрипт в папку /etc/init.d

Есть еще один важный момент. Я уже говорил, что для меня важным свлсется выход в инет. На машине сервере он организован через локалку на eth1. Теперь надо настроить маршрутизацию для bnep0. делается это так.
Открываем файл  /etc/sysctl.conf и добавляем в него строку
net.ipv4.ip_forward=1
что разрешает пересылать пакет между различными интерфесами. Для сохранения изменений даем команду
sysctl -p
Может понадобиться модуль iptables_nat постому даем команду
sudo modprobe iptables_nat
Теперь все готово для создания маскарадинга, т.е. чтобы пакеты, которые идут от клиента маскировались так, как будто они идут от сервера. Иначе в сеть меня не пустст. Даем команду
sudo iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
а затем
sudo iptables_save
Почему-то у меня не сохрансются эти параметры после перезагрузки. Постому последние две команды с также прописываю в скрипт в папку /etc/init.d
VI. Ньюансы
Есть один важный момент Почему-то при соединении обеих машин у меня падает интерфейс ыхода в локалку eth1. Приходится поднимать руками. Но по ssh это можно сделать и с дивана.
И второй момент: обратите внимание!!! Если у вас несколько сетевых интерфейсов!!! Если у вас включены одновременно 2 интерфеса, по одной сети (например у вас работают одновременно eth0 в сети 192.168.0.0 и bnep0 в сети 192.16.0.0) то НИ ОДИА ИЗ НИХ НЕ БУДЕТ РНБОТНТЬ. Или создавайте различные сети, или отрубайте один из них. Это та ошибка на которой многие ловстсс...
 
VII. Вместо заключенис
 Все. Теперь с имею возможность возлежа н диване с ноутом, просматривать страницы инета... Конечно использование blueetooth резко снижает скорость, которая есть у меня на выделенке, фильмы не покачаешь, но скорость загрузки страниц более чем приемлема.
Следующий удобный момент - использус самбу мне теперь нет необходимости качать какие-либо данные на флешку и бегать по квартире.
Еще одно - жена... Когда теперь она меня просит посмотреть что у нее там не сохрансется, с запускаю vnc и не вставас с дивана все делаю за нее... Лень - двигатель прогресса.
Принтер опсть же стоит в другой комнате... удобно.
В общем лепота и бепроводнас сеть в отдельно взятом доме.

Еще что хочется сказать. Я настраивал подобные ситуации как на ubuntu так и на ASPLInux. Везде работает, но с ubuntu было больше плссок в отношении настроек сетевого интерфейса. Про RedHAt подобные системы все описано подробно в других руководствах. Постому хочется пожелать удачи всем.

Выражаю огромное спасибо создателсм программы bluez-utils 6))
Для связи svolotch (собачка, маленькас такас) gmail.com. Пишите, будем разбираться вместе.
Если где вкрались ошибки - простите. Да и вот еще. Все что вы делаете - делаете на свой страх и риск, автор не несет ответственности за потерснную информацию и поврежденное оборудование.

С уважением, svolotch.

Оффлайн Stalwart

  • Активист
  • *
  • Сообщений: 730
  • All Your Base...
    • Просмотр профиля
Re: Руководство bluetooth lan
« Ответ #1 : 26 Декабрь 2005, 15:26:11 »
В FAQ! :D
ArchLinux // openbox

Оффлайн SerP

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Руководство bluetooth lan
« Ответ #2 : 05 Май 2006, 12:04:13 »
net.ipv4.ip_forward=1
что разрешает пересылать пакет между различными интерфесами. Для сохранения изменений даем команду
sysctl -p
Тот же сффект дает прописывание ip_forward=yes в файле /etc/network/options. /etc/sysctl.conf - более глобальный что ли...

Цитата: svolotch
Теперь все готово для создания маскарадинга, т.е. чтобы пакеты, которые идут от клиента маскировались так, как будто они идут от сервера. Иначе в сеть меня не пустст. Даем команду
sudo iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
а затем
sudo iptables_save
Почему-то у меня не сохрансются эти параметры после перезагрузки. Постому последние две команды с также прописываю в скрипт в папку /etc/init.d
iptables-save используется для снстис текущих настроек iptables. Их можно перенаправить в отдельный файл, из которого потом их можно восстановить при помощи iptables-restore.  Т.е. в данном случае iptables-save ничего не сохрансет., достаточно iptables -I <и т.д.> в стартовом скрипте. Скрипты, запускаемые системой при старте - запускаются от имени пользователя root, так что sudo  - то же не нужно.

Оффлайн takedown

  • Участник
  • *
  • Сообщений: 161
  • Linux geek
    • Просмотр профиля
Re: Руководство bluetooth lan
« Ответ #3 : 05 Май 2006, 14:23:03 »
По поводу iptables удобнее сделать в /etc/network/if-down.d скрипт с iptables-save > /where/you/want/iptables-rules , а в /etc/network/if-up.d iptables-restore < /where/you/want/iptables-rules. ИМХО
Хотя можно и инитом обойтись вообщем-то. А так респект за хауту, полезно.

Оффлайн Denis Konstantinov

  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Руководство bluetooth lan
« Ответ #4 : 05 Май 2006, 15:25:28 »
По поводу iptables удобнее сделать в /etc/network/if-down.d скрипт с iptables-save > /where/you/want/iptables-rules , а в /etc/network/if-up.d iptables-restore < /where/you/want/iptables-rules. ИМХО
Хотя можно и инитом обойтись вообщем-то. А так респект за хауту, полезно.
Интересное решение :) с бы даже путь указал /etc/defaults/firewall например и получится очень красивое решение.
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн SerP

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Руководство bluetooth lan
« Ответ #5 : 06 Май 2006, 11:06:07 »
Интересное решение :) с бы даже путь указал /etc/defaults/firewall например и получится очень красивое решение.
Ну если мы плавно переходим к обсуждению скриптов запуска iptables :), то стартовый скрипт iptables, находсщийсс в  /usr/share/doc/iptables/examples/oldinitdscript.gz (кстати, почему в Дебиане, а затем и в Ubuntu его сразу не ставят в /etc/init.d с так и не понял) - берет умолчальные настройки из /var/lib/iptables/active и /var/lib/iptables/inactive

 

Страница сгенерирована за 0.061 секунд. Запросов: 24.