Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Настройка спутникового интернета в linux

 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> Сеть
 
Автор Сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Апр 25, 2007 6:08 am    Заголовок сообщения: Настройка спутникового интернета в linux
Ответить с цитатой

From: Vsevolod Balashov <vsevolod@balashov.name.>
Newsgroups: email
Date: Mon, 28 Feb 2007 14:31:37 +0000 (UTC)
Subject: Настройка спутникового интернета в linux

Оригинал:http://vsevolod.balashov.name/2007/2/28/dvb-sat-linux


Я живу в крайне тяжелых онлайновых условиях.

О безлимитной выделенке нет и речи. Wink До недавнего времени доступ в
интернет у меня дома был посредством gprs, а с недавних пор к нему
добавилась спутниковая тарелка. В домашнем сетевом хозяйстве раздачей
трафика занимался старый пентиум, тихо жужжащий в углу. Все было
настроено 1 раз и забыто. Но однажды он умер...

Переставив dvb карту в живой компьютер, я внезапно обнаружил
отсутствие бекапа конфигов и большие пробелы в памяти как вообще все
это работает. Пришлось вспоминать. Далее описываю по горячим следам.

Все нижеописанное происходит в ubuntu последней версии. Настрою
соединение через globax без vpn.

Ставлю утилиты работы с dvb картой. У меня, как и у многих skystar2,
но когда нибудь я куплю twinhan Wink.

$ sudo aptitude install dvb-utils


Нужно сделать что бы карта не "засыпала". Что это и как - об этом
можно почитать в многочисленных околоспутниковых форумах. Решение
следующее: Добавляем файлик, который грузит модуль карты с параметром,
запрещающим засыпание.

$ cat /etc/modprobe.d/dvb-core
options dvb-core dvb_shutdown_timeout=0


Теперь нужно выгрузить/загрузить этот модуль (и все зависимые от
него). Я просто перезагрузил компьютер.

Качаю дистрибутив (ссылка может устареть) globax for linux,
извлекаю из него исполняемый файл globax. Остальное не требуется.

$ ls /usr/local/sbin/globax
/usr/local/sbin/globax


Конфиг глобакса. Получен мною от провайдера stv.su и используется
практически без изменений.

$ cat /etc/globax.conf
[server]
port = 6768
log = /var/log/globax.log
datatimeout = 60

[remote]
name = globax
server = 195.10.212.10:1111
login = globax_login
passwd = globax_password
speed_in = 320000:384000
speed_out = 3000
mtu = 576
mru = 1500
flush_time = 500

[local]
# http/https proxy
remote = globax
port = 127.0.0.1:3128
service_int = 0

[local]
# socks 4/4a/5 proxy
remote = globax
port = 127.0.0.1:1080
service_int = 2

[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


Глобакс - это сервер. Сервер пишет логи. Логи надо чистить. =)
Поскольку неизвестно, умеет ли он переоткрывать файловый дескриптор по
сигналу, а экспериментировать лень - делаю так же как с рельсами.

$ cat /etc/logrotate.d/globax.logrotate
/var/log/globax.log {
rotate 7
missingok
compress
delaycompress
notifempty
copytruncate
}


Параметры настройки 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:11595:v:0:29270:0:0:0


Скрипт, который собирает все это вместе, настраивает dvb карту и
запускает globax.

$ cat /etc/init.d/dbvd
#!/bin/sh

PATH=/usr/sbin:/usr/bin:/sbin:/bin
NAME=`basename $0`

# https://cabinet.stv.su/index.php?m=info
IP="192.168.XXX.XXX"
MAC="00:00:XX:XX:XX:XX"
PID="4160"

# https://cabinet.stv.su/index.php?m=conf
GLOBAX_BIN="/usr/local/sbin/globax"
GLOBAX_CONF="/etc/globax.conf"

CHANNELS_CONF="/etc/channels.conf"

# http://forum.stv.su/viewtopic.php?t=1173
case "$1" in
start)
echo "starting $NAME..."
szap -c $CHANNELS_CONF -n 1 -x
dvbnet -p $PID
ifconfig dvb0_0 $IP
ifconfig dvb0_0 hw ether $MAC
echo 0 > /proc/sys/net/ipv4/conf/dvb0_0/rp_filter
$GLOBAX_BIN $GLOBAX_CONF
;;
stop)
echo "stoping $NAME..."
killall globax
ifconfig dvb0_0 down
dvbnet -d 0
;;
restart)
$0 stop
$0 start
;;
*)
echo "usage: $NAME start|stop|restart"
exit 3
;;
esac

exit 0


Устанавливаю его в автозагрузку и запускаю.

$ sudo update-rc.d dvbd start 99 S .
$ sudo invoke-rc.d dvbd start


Нисходящий канал готов. Время настроить программы на использование
http/socks прокси, а неимеющие таких настроек соксифицировать с
помощью, например, tsocks (есть в дистрибутиве).

За рамками рассмотрения остались:
* прокладка тунелля pptp l2tp openvpn или какого другого
* кеширование http трафика squid или oops
* прозрачное проксирование (последняя секция в globax.conf)
* автоматизация поднятия наземного канала diald

И тут выясняется одна неприятная особенность:

Встроенные в globax http/https и socks4a/5 позволяют подключаться к
интернет ресурсам используя доменные имена (то есть не преобразуя их в
IP адреса на локальном компьютере) некоторые программы все равно
желают локального разрешения имен. То есть нужен локальный доступ к
dns серверу. По медленному и дорогому наземному каналу.

Пару слов об оптимизации наземного канала:

Ставлю локальный кеширующий сервер dnsmasq

$ sudo aptitude install dnsmasq


К идущему в пакете конфигу добавляю 1 строчку:

$ cat /etc/dnsmasq.conf | grep resolv-file
resolv-file=/etc/ppp/resolv.conf


Теперь dnsmasq при отстутствии у себя информации о доменном имени
будет запрашивать один из серверов имен наземного провайдера.

В конфиге дозвона к наземному провайдеру
(/etc/ppp/peers/provider_name) у меня присутствует:
* nodefaultroute
* usepeerdns

Скрипты выполняемые при поднятии и опускании интерфейса я выключил за
ненадобностью.

$ sudo chmod -x /etc/ppp/ip-up.d/*
$ sudo chmod -x /etc/ppp/ip-down.d/*


А потом написал свой, попроще. В нем сохраняю имена dns серверов
провайдера и прописываю маршруты к ним, и к серверу globax.

$ cat /etc/ppp/ip-up.d/0dvb-up
#!/bin/sh

PATH=/usr/sbin:/usr/bin:/sbin:/bin
GLOBAX_IP="195.10.212.10"

route add -host $DNS1 gw $IPREMOTE
route add -host $DNS2 gw $IPREMOTE

echo "nameserver $DNS1" >/etc/ppp/resolv.conf
echo "nameserver $DNS2" >>/etc/ppp/resolv.conf
killall -sighup dnsmasq

route add -host $GLOBAX_IP gw $IPREMOTE


Последний штрих:

$ cat /etc/resolv.conf
nameserver 127.0.0.1


Эта вся пертушка с up/down скриптами затеяна потому что по умолчанию
они либо переписывают /etc/resolv.conf либо не отдают имена dns
серверов. Подозреваю, есть более элегантное решение Wink

Придумал сейчас как через socat, iptables и что нибудь еще натравить
dnsmasq через globax на dns сервер спутникового провайдера. Пойду
поиграюсь... =)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> Сеть Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис