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

Автор: tuxmaster

С версии: 1.5


Введение

Спутниковый Интернет - это экономичный способ высокоскоростного подключения к интернету. Спутниковое соединение обеспечивает столь же быструю скорость, как и выделенная линия или DSL - до нескольких мегабит в секунду (это примерно в 100 раз быстрее обычного модема). Спутниковая связь очень надежна, и вопреки расхожему мнению, отлично работает при любой погоде - нужно просто использовать антенну достаточного диаметра.



Услугами спутникового Интернет можно пользоваться в любой географической точке, расположенной в обширной зоне обслуживания спутника. Если изменится место Вашего проживания, Вы всегда сможете перенести свой "спутниковый канал". Вам не придется снова тратить деньги на высокоскоростное подключение к интернету.

Как работает спутниковый Интернет?

Передача данных через спутник носит односторонний характер (асимметричный доступ): Вы можете только получать данные. Для передачи Ваших запросов на какую-либо информацию в Сети, а также исходящих от Вас данных (например, Ваших электронных писем) нужно использовать любой вид наземного соединения. Вся входящая к Вам информация будет поступать через высокоскоростной спутниковый канал.

Оборудование

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


Подготовка Gentoo к использованию спутникового Интернета

Настройка ядра

Перейдите в каталог с исходными кодами ядра и введите команду make menuconfig. Этой командой Вы вызовете конфигурационное меню, использующее ncurses.



Листинг 1: Вызов конфигурационного меню

# cd /usr/src/linux

# make menuconfig



Перед Вами появятся несколько секций настроек. Прежде всего необходимо включить поддержку загружаемых модулей (если Вы использовали genkernel этот шаг можно пропустить).



Листинг 2: Включение поддержки модулей

Loadable module support --->

[*] Enable loadable module support

[*] Automatic kernel module loading



Включите поддержку Вашей DVB-платы.



Листинг 3: Включение поддержки DVB:

Device Drivers --->

Multimedia devices --->

<M> DVB for Linux

[*] Load and attach frontends modules as needed

[*] DVB/ATSC adapters --->

<M> Ваша_DVB-плата



Теперь Вы можете приступить к компиляции ядра. Если Вы неуверенны в своих силах обратитесь к соответствующим разделам руководства.

Установка пакета утилит

Для проверки работоспособности оборудования, настройки, создания сетевого интерфейса, и т.п. Вам потребуются определенные утилиты, входящие в состав linuxtv-dvb-apps



Листинг 4: Установка пакета утилит

# emerge linuxtv-dvb-apps

Настройка параметров системы

dvb_core

По умолчанию после 5 секунд простоя DVB-плата отключается, при использовании ядер 2.6.23 и старше эта проблема решается загрузкой модуля dvb_core с параметром dvb_shutdown_timeout=0


Листинг 5: Установка параметров модуля

# echo 'alias dvb_core dvb_shutdown_timeout=0' >> /etc/modules.d/aliases


К сожалению, в ядрах 2.6.24 такой способ не работает.

/etc/channels.conf

В файле channels.conf хранятся параметры настройки dvb-карты на спутник. Для дальнейшей работы нам нужны значения частоты, скорости потока и поляризации, узнать их можно на сайте провайдера.


Листинг 6: Создаем /etc/channels.conf

# nano -w /etc/channels.conf


Теперь заполним channels.conf параметрами транспондеров. Ниже приведен пример channels.conf для провайдера Raduga с подробными комментариями.


Листинг 7: channels.conf для абонетов Raduga

# Каждая строка описывает параметры отдельного транспондера в формате:

# Name:Frequency:Polarisation:diseqc:Symbolrate:VPID:APID:SID

# где

# Name — Желаемое название транспондера

# Frequency — Частота транспондера в мегагерцах (МГц, MHz)

# Polarisation — Поляризация, возможные значения

# v-вертикальная (левая круговая), h-горизонтальная (правая круговая)

# diseqc — Номер входа diseqc. Если у Вас один конвертер выберите 0.

# Symbolrate — Символьная скорость в килосимволов/сек (Ksps)


# Express AM22 (53 East)

1:11096:v:0:6164:0:0:0


# Express AM1 (40 East)

2:11082:v:0:5064:0:0:0


# Intelsat 904 (60 East)

3:11595:v:0:29270:0:0:0

4:10983:v:0:3819:0:0:0


# Yamal 201 Ku (90 East)

5:11672:v:0:18200:0:0:0


# Yamal 201 C (90 East)

6:3980:h:0:38000:0:0:0


# ABS 1 (75 East)

7:12609:v:0:22000:0:0:0


# Sirius 4 (5 East)

8:12680:v:0:9404:0:0:0


Сетевой интерфейс

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


Листинг 8: Создаем /bin/satup

# nano -w /bin/satup



Листинг 9: Вариант /bin/satup

#!/bin/bash


# Параметры подписки

# Ваш PID

PID=0x1234


# IP адрес подписки

IP_ADDR=000.111.222.333


# MAC адрес платы, на которую оформлена подписка

MAC_ADDR=00:11:22:33:44:55


# Поднимаем сетевой интерфейс

dvbnet -p $PID

/sbin/ifconfig dvb0_0 $IP_ADDR

/sbin/ifconfig dvb0_0 hw ether $MAC_ADDR


# Отключаем spoof-фильтрацию

echo 0 > /proc/sys/net/ipv4/conf/dvb0_0/rp_filter



Листинг 10: Добавление /bin/satup в автозапуск

# echo '/bin/satup' >> /etc/conf.d/local.start



Сетевой фильтр

Общий принцип, не зависящий от провайдера: необходимо разрешить входящий трафика с DVB-платы на порты ускорителя и исходящий на сервер провайдера.

Листинг 11: Пример настройки iptables для ускорителя Sprint (спутник Yamal-90 Ku)

# iptables -A INPUT -p udp -m udp -i dvb0_0 --dport 8093 --sport 1024:65535 -j ACCEPT

# iptables -A OUTPUT -p udp -m udp -m multiport -d 80.81.208.66 --dports 8093,8095 --sport 1024:65535 -j ACCEPT

# /etc/init.d/iptables save

Проверка работоспособности

Запустите в терминале szap с параметрами 'n номер_транспондера_в_файле_channels.conf', 'x' — прекратить работу после настройки и 'c путь_к_файлу_channels.conf'

Листинг 12: Проверка параметров трансподера Ku-диапазон

~ szap -n 5 -x -c /etc/channels.conf

reading channels from file '/etc/channels.conf'

zapping to 5 '5':

sat 0, frequency = 11671 MHz V, symbolrate 18200000, vpid = 0x0000, apid = 0x0000

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'

status 00 | signal d689 | snr 9a83 | ber 00000117 | unc 00000000 |

status 1f | signal e625 | snr d587 | ber 00000088 | unc 00000000 | FE_HAS_LOCK

Листинг 13: Проверка параметров трансподера C-диапазон

~ szap -n 6 -x -l C-BAND -c /etc/channels.conf

reading channels from file '/etc/channels.conf'

zapping to 6 '6':

sat 0, frequency = 3980 MHz H, symbolrate 38000000, vpid = 0x0000, apid = 0x0000

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'

status 00 | signal a367 | snr 7543 | ber 00000129 | unc 00000000 |

status 1f | signal ea32 | snr e259 | ber 00000052 | unc 00000000 | FE_HAS_LOCK

Ключевые слова: status 1f и  FE_HAS_LOCK говорят о том, что настройка завершилась успешно. Теперь проверим, поддерживает ли Ваше ядро параметр  dvb_shutdown_timeout=0

Листинг 14: Ядро поддерживает dvb_shutdown_timeout=0

~ femon

using '/dev/dvb/adapter0/frontend0'

FE: ST STV0299 DVB-S (SAT)

status 1f | signal e5df | snr d500 | ber 00000000 | unc 00000000 | FE_HAS_LOCK

status 1f | signal e879 | snr d518 | ber 00000000 | unc 00000000 | FE_HAS_LOCK

status 1f | signal e8a0 | snr d527 | ber 00000000 | unc 00000000 | FE_HAS_LOCK


Листинг 15: Ядро не поддерживает dvb_shutdown_timeout=0

~ femon

using '/dev/dvb/adapter0/frontend0'

FE: ST STV0299 DVB-S (SAT)

status 03 | signal 9f5e | snr 0000 | ber 00008080 | unc 00000000 |

status 03 | signal 9f5e | snr 0000 | ber 00008080 | unc 00000000 |

status 03 | signal 9f5e | snr 0000 | ber 00008080 | unc 00000000 |



Во втором случае перед подключением к Интернету необходимо запустить szap без параметра 'х' (при этом окно терминала закрывать нельзя). Добавьте эту команду в скрипт запуска ускорителя спутникового интернета.



Листинг 16: Запуск szap в фоновом режиме (пример для Ku-диапазона спутника Yamal-90)

~ szap -n 5 -c /etc/channels.conf >> null &



Теперь, когда dvb-плата настроена, проверим принимает ли dvb-плата поток



Листинг 17: Проверка обработки dvb-платой транспортного потока

~ dvbtraffic

1039 53 p/s 9 kb/s 80 kbit

103a 7 p/s 1 kb/s 11 kbit

103b 271 p/s 49 kb/s 408 kbit

103c 102 p/s 18 kb/s 154 kbit

103d 713 p/s 130 kb/s 1073 kbit

104a 1190 p/s 218 kb/s 1790 kbit

104b 835 p/s 153 kb/s 1256 kbit

104c 635 p/s 116 kb/s 955 kbit

104d 843 p/s 154 kb/s 1267 kbit

104e 1187 p/s 217 kb/s 1786 kbit

104f 962 p/s 176 kb/s 1447 kbit

1051 167 p/s 30 kb/s 252 kbit

1057 91 p/s 16 kb/s 137 kbit

1101 4485 p/s 823 kb/s 6746 kbit

1105 195 p/s 35 kb/s 293 kbit

2000 14404 p/s 2644 kb/s 21664 kbit

-PID—FREQ-----BANDWIDTH-BANDWIDTH-





и функционирование сетевого интерфейса



Листинг 18: Проверка сетевого интерфейса

# tcpdump -c 3 -qn -i dvb0_0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on dvb0_0, link-type EN10MB (Ethernet), capture size 96 bytes

16:55:06.196218 IP 10.10.10.1 > 10.252.43.127: udp

16:55:06.196802 IP 10.10.10.1.52632 > 10.252.43.246.8093: UDP, length 884

16:55:06.196871 IP 10.10.10.1.52632 > 10.252.43.246.8093: UDP, length 884

3 packets captured

3 packets received by filter

0 packets dropped by kernel







Использование спутникового канала

Установите соединение с наземным провайдером, запустите ускоритель и пользуйтесь недорогим и качественным интернетом со спутника :)

Листинг 19: Пример скрипта для запуска ускорителя Sprint

#!/bin/bash

szap -n 5 -c /etc/channels.conf >> null &

cd /home/sprint

/home/sprint/sprint