О безлимитной выделенке нет и речи. ;) До недавнего времени доступ в
интернет у меня дома был посредством gprs, а с недавних пор к нему
добавилась спутниковая тарелка. В домашнем сетевом хозяйстве раздачей
трафика занимался старый пентиум, тихо жужжащий в углу. Все было
настроено 1 раз и забыто. Но однажды он умер...
Переставив dvb карту в живой компьютер, я внезапно обнаружил
отсутствие бекапа конфигов и большие пробелы в памяти как вообще все
это работает. Пришлось вспоминать. Далее описываю по горячим следам.
Все нижеописанное происходит в ubuntu последней версии. Настрою
соединение через globax без vpn.
Ставлю утилиты работы с dvb картой. У меня, как и у многих skystar2,
но когда нибудь я куплю twinhan ;).
$ sudo aptitude install dvb-utils
Нужно сделать что бы карта не "засыпала". Что это и как - об этом
можно почитать в многочисленных околоспутниковых форумах. Решение
следующее: Добавляем файлик, который грузит модуль карты с параметром,
запрещающим засыпание.
[local]
# transparent port
# http://faq.spacegate.com.ua/index.php?action=artikel&cat=7&id=97&artlang=ru
remote = globax
port = 127.0.0.1:8000
transparent
Globax в процессе работы пишет логи, и их надо чистить. =) Поскольку
неизвестно, умеет ли он переоткрывать файловый дескриптор по сигналу,
а экспериментировать лень - делаю так же как с рельсами.
Параметры настройки dvb карты на спутник. Они хранятся, как правило, в
файле channels.conf. Для моего провайдера нагуглить их почему то не
получилось. Я долго тупил. Потом понял, что они есть в отладочном
выводе команды szap, которых предостаточно на форумах. Вот сравните:
$ sudo szap -c /etc/channels.conf -n 1 -x
reading channels from file '/etc/channels.conf'
zapping to 1 'stv':
sat 0, frequency = 11595 MHz V, symbolrate 29270000, vpid = 0x1040, apid = 0x1040
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
status 00 | signal 5353 | snr f8f8 | ber 00000000 | unc 00000000 |
status 1f | signal 4040 | snr 3333 | ber 00000000 | unc 00000042 | FE_HAS_LOCK
И теперь собственно сам файл. Для спутникового интернета важны
частота, поляризация и символьная скорость.
$ cat /etc/channels.conf
stv:115950:29270:0:0:0
Скрипт, который собирает все это вместе, настраивает dvb карту и
запускает globax.
Нисходящий канал готов. Время настроить программы на использование
http/socks прокси, а неимеющие таких настроек соксифицировать с
помощью, например, tsocks (есть в дистрибутиве).
За рамками рассмотрения остались:
* прокладка тунелля pptp l2tp openvpn или какого другого
* кеширование http трафика squid или oops
* прозрачное проксирование (последняя секция в globax.conf)
* автоматизация поднятия наземного канала diald
И тут выясняется одна неприятная особенность:
Встроенные в globax http/https и socks4a/5 позволяют подключаться к
интернет ресурсам используя доменные имена (то есть не преобразуя их в
IP адреса на локальном компьютере) Но некоторые программы все равно
желают локального разрешения имен. Им нужен локальный доступ к dns
серверу. По медленному и дорогому наземному каналу.
Эта вся пертушка с up/down скриптами затеяна потому что по умолчанию
они либо переписывают /etc/resolv.conf либо не отдают имена dns
серверов. Подозреваю, есть более элегантное решение ;)
Придумал сейчас как с помощью socat, iptables и какой то матери
натравить dnsmasq через globax на dns сервер спутникового провайдера.
Пойду поиграюсь... =)
UPDATE Отдельные борцы за чистоту терминов оскорбились, что я
клиентскую часть globax обозвал сервером. Исправил. ;)
UPDATE2 Оказывается есть такие особенности как "интерференция" и
"залипание". Если кто с ними сталкивался, пожалуйста опишите как они
выглядят и, по возможности, как с ними бороться. А то мне как то
везет. Или не везет. ;) Спасибо. :)
UPDATE2.1 Немного дороботал скрипт /etc/init.d/dvbd по идее теперь
если его запускать с параметром reload то это должно быть борьбой с
интерференцией. А с параметром restart - борьба с залипанием.
Пресловутыми "интреференцией" и "залипанием".
А вот скрипт, для автоматизации проверок, путем вызова из crontab
$ cat /usr/local/sbin/dvb-check
#!/bin/sh
# если статус карты не 1f значит она не залочена.
if [ '1f' != `femon | head -3 | tail -1 | awk '{print $2}'` ]; then
invoke-rc.d dvbd reload
else
#если карта залочена, а нету пидов с трафиком значит она повисла.
if [ '10' != `dvbtraffic | head -10 | wc -l` ]; then
invoke-rc.d dvbd restart
fi
fi
1050 Прочтений • [Настройка спутникового интернета в linux (dvb linux)] [08.05.2012] [Комментариев: 0]