Опрос


Что для Вас Умный Дом?


Результаты


Реклама


Настройка GPRS/EDGE-Интернета в Linux

24/11/2008 16:42:09

В своих статьях о домашней автоматизированной системе я писал, что неплохо было бы иметь контроль за домом через сеть Интернет. И камеры видно и освещением можно управлять и отоплением. Но не в каждом селе это чудо цивилизации доступно. Коровы? Да, есть. И куры и овцы с гусями, а Интернет... не видали такого. А бывает и по-другому. Интернет есть, но у соседа, а для вас нет технической возможности... Конечно можно сделать. Только вы, господин хороший, купите километра три кабеля типа ТПП-10, заплатите за монтаж опоры, еще немного дяде Коле и дяде Толе чуть-чуть. Там, глядишь, и выйдет чего... Знакомая для многих ситуация. Российская действительность. Интернет - это тоже своего рода дороги...

Но выход есть, если где-нибудь поблизости обнаружится базовая станция сотового оператора. Решение это, конечно, не самое лучшее, потому что GPRS-модему телефона выдается так называемый "левый" адрес. То есть зайти на домашний веб-сервер извне не получится, однако можно управлять домом, например, через почтовые сообщения или специальный веб-интерфейс, настроенный на внешнем хостинге.
В моем селе были доступны все известные операторы. Я был подключен к СМАРТС и первым делом попробовал Интернет от этого оператора, но был разочарован. В это время стартовала акция от Мегафона безлимитный Интернет за 700 руб, и я купил на пробу SIM-карту от зеленых. Качество Интернета было намного лучше, поэтому я решил, что меня это устроит.

Но вот незадача - для сервера нужен телефон для доступа в Интернет через GPRS. Но, прежде всего, хотелось бы рассказать о том, что существует два протокола для доступа в Интернет - это GPRS и EDGE (3G пока не трогаем). EDGE - более современная версия GPRS, которая позволяет увеличить скорость работы примерно в 3 раза. При тестировании телефонов максимальная скорость, которую я получал по протоколу GPRS была порядка 9Кб/с, тогда как по протоколу EDGE она достигала 26Кб/с. Понятно, что нужен был телефон с поддержкой EDGE. Но кроме телефонов в природе существуют GPRS/EDGE-модемы. Один такой модем, который назывался Nowavay UM-06 я выпросил на тестирование в одном из компьютерных магазинов. Тестирование показало, что, не смотря на заявленные характеристики, максимальная скорость этого EDGE-модема составляет порядка 20-21Кб/с. Причем работал он довольно странно - плавно набирал скорость до 20Кб/с, потом затыкался, сваливался на скорость 3-4Кб/с и снова плавно набирал скорость. Кроме того, периодически этот модем зависал так, что помогало только выключение-включение.

Потом я пробовал телефоны от фирмы Nokia и Siemens. Примечательно, что внешне внушающий доверие телефон Siemens S75 хотя и работал на хорошей скорости, зависал каждые полчаса. Максимальную же скорость показали коммуникатор HTC и Motorola L9. Последний телефон я и оставил себе в качестве модема. На момент тестирования эта модель стоила порядка 5000 руб. Обладая максимальной скоростью скачивания из Интернета, телефон Motorola за несколько месяцев использования ни разу не завис. Понравилось то, что эта модель подключается стандартным кабелем mini-USB, а также подзаряжается от него. Приятно удивило то, что в отличие от всех других телефонов, Motorola L9 практически не грелась даже при активной передаче данных. Я никогда не был поклонником этой компании и у меня никогда не было телефонов от Moto, но объективности ради замечу, что среди опробованного мною - это лучший вариант. Хотя клавиатура показалась мне неудобной, но это в контексте моей задачи не играло решающей роли.

Но вернемся к нашим баранам. В Linux'е телефон определился как устройство /dev/ttyACM0
Чтобы иметь возможность доступа в Интернет через телефон необходимо установить пакет ppp. Для Linux'ов с системой управления пакетами APT команда

apt-get install ppp

Далее создаем файл /etc/ppp/peers/gprs и пишем в него следующее

/dev/ttyACM0 460800
connect '/usr/sbin/chat -v -f /etc/ppp/chat-gprs'
crtscts
noccp
defaultroute
usepeerdns
noauth
ipcp-accept-remote
ipcp-accept-local
noipdefault
persist

Опция persist нужна в случае, если связь оборвется, тогда pppd попробует восстановить ее без участия пользователя.
После этого создаем файл /etc/ppp/chat-gprs

'' ATZ OK
AT+CGDCONT=1,"IP","internet"
OK "ATD*99#"
CONNECT ''

Вторая строчка для Мегафона "internet". Для других операторов строка инициализации может быть иной. Смотрите инструкции.
Собственно, все. Остается дать команду

pppd call gprs

... подождать 10-20 секунд и у нас есть Интернет. Да, если вы намерены настроить Linux в качестве шлюза для доступа в Интернет с других компьютеров локальной сети, то сделать это просто. Первое, что необходимо, разрешить системе форвардинг пакетов, который выключен по-умолчанию. Редактируем файл /etc/sysctl.conf

net.ipv4.conf.default.forwarding=1

Чтобы форвардинг заработал сразу, а не после перезагрузки, можно дать команду

echo "1" > /proc/sys/net/ipv4/ip_forward

Дальше у нас должен быть установлен пакет iptables

apt-get install iptables

После установки достаточно дать следующую команду

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Все, теперь компьютеры локальной сети смогут ходить в Интернет через Linux. Необходимо только правильно прописать IP-адреса (или настроить dhcpd), маршрутизацию и DNS на клиентских компьютерах. Настройки iptables можно прописать в любое удобное место. У меня они прописаны в папке /etc/network/if-up/

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2014-05-28 15:55:59 | Andrey_B
Виталий, скорость указана в килобайтах в секунду.


2014-05-28 06:46:49 | Виталий
Здравствуйте, скажите пожалуйста, верно ли я понимаю, что в статье вся скорость указана в "килобитах в секунду"?


2012-11-26 23:49:47 | Andrey_B
Михаил, конечно. Статья была написана в те времена, когда 3G-модемов и в помине не было. Все собираюсь сдать ее в архив, да руки не доходят. ;)


2012-11-26 23:00:36 | Михаил
Ну, на сегодняшний день надо как-то подключаться через 3G модемчик Huawei (просто они весьма популярны)


2011-08-23 16:53:02 | DmitrySandalov
ошибка в строке
apt-get insatll iptables

нужно:
apt-get install iptables