Налаштування Скайстар 2 під Лінукс (Suse Лінукс 10.1.)

Вступ

Хочу сказати що я довго грався із цим всім поки воно все в мене запрацювало. В мене дома встановлений SUSE Linux 10.2. Драйвери до Скайстар у ядрах 2.16 і вище уже присутні. Про потребі можна зібрати із linuxtv.org.

Мережевий інтерфейс.

Для того щоб карта не завмирала одразу після запуску нам потрібно прописати у файлі /etc/modrobe.conf:

options dvb_core dvb_shutdown_timeout=0

Тепер настає досить важкий і відповідальний момент: вам необхідно буде налаштувати карту для прийому інформації. Для цього вам знадобиться набір утиліт linuxtv-dvb-apps-1.1.0.tar.bz2 із того ж сайту Linux TV. Розпаковуємо їх, заходимо в директорію linuxtv-dvb-apps-1.1.0/util/ і набираємо make. Після компіляції, отримаємо такі от файли:

linuxtv-dvb-apps-1.1.0/utils/av7110_loadkeys/evtest
linuxtv-dvb-apps-1.1.0/utils/av7110_loadkesy/av7110_evtest
linuxtv-dvb-apps-1.1.0/utils/dvbdate/dvbdate
linuxtv-dvb-apps-1.1.0/utils/dvbnet/dvbnet
linuxtv-dvb-apps-1.1.0/utils/dvbtraffic
linuxtv-dvb-apps-1.1.0/utils/scan/dvb-c
linuxtv-dvb-apps-1.1.0/utils/scan/dvb-s
linuxtv-dvb-apps-1.1.0/utils/scan/dvb-t
linuxtv-dvb-apps-1.1.0/utils/szap/czap
linuxtv-dvb-apps-1.1.0/utils/szap/szap
linuxtv-dvb-apps-1.1.0/utils/szap/tzap

Копіюємо або в локальний ~/bin, в /usr/local/bin або ще кудись. Нам потрібні будуть всього три утілітки: szap, dvbnet та dvbtraffic.

Тепер нам необхідно розповісти карті про те, з яким транспондером і з яким каналом їй потрібно працювати. В даному випадку я використовую сервіс Satgate, супутник Sirius 2 Nordic Beam:

Частота  12322 Ghz
Поляризація  Вертикальна
Швидкість передачі 27670 Msps
PID     402

Формат файлу, який містить опис каналів S-діапазону такий:

Назва каналу/сервісу : Якщо є символи, які відрізняються від алфавітно-цифрових, то назву треба брати в подвійні лапки.

Частота (GHz) : Частота передачі каналу в GHz.

Поляризація (v/h) : Поляризація: v — вертикальна, h — горизонтальна (відповідно, для кругової h- ліва кругова, v- права кругова).

Diseqc (0/1) : Якщо приймаюча головка одна, то «0», якщо більше то «1».

Symbol rate (Msps) : Швидкість символьної передачі даних (symbol rate — Mega symbols per rate).

V-PID (Номер) : Ідентифікатор пакетів відеопотоку (Video Packet Identificator).

A-PID (Номер) : Ідентифікатор Аудіо Пакетів (Audio Packet Identificator).

SID (Номер) : Ідентифікатор Сервісу (використовується тільки в цифровому мовленні) для використання ресівером певного сервісу (Service ID)

Відповідно, створюєм файл /etc/channels.conf і робимо в ньому запис:

Satgate:12322:v:0:27670:0:0:0

Пробуємо налаштувати карту на прийом даних: bin/szap -c /etc/channels.conf. Якщо все було зроблено правильно, то ми побачимо на екрані наступне:

reading channels from file '/etc/channels.conf'
zapping to 1 'Satgate':
sat 1, frequency = 12322 MHz V, symbolrate 27670000, vpid = 0x0000, apid = 0x0000
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
status 01 | signal 9bc4 | snr 7188 | ber 000001fa | unc 00000000 |
status 1f | signal ba7d | snr aa82 | ber 00001d5b | unc 00000000 | FE_HAS_LOCK

Зрозуміло, якщо сигнал з якоїсь причини пропав, наприклад, сталось затемнення відбивача, то цю процедуру необхідно повторити.

Залишилось активувати мережевий інтерфейс. Будьте уважні — все залежить від того, який тип фільтрації використовує ваш провайдер Інтернет. Якщо фільтрація пакетів іде по MAC-адресі, то виправляти нічого не потрібно. Якщо фільтрація іде по IP-адресі, то необхідно встановити MAC-адресу карти в потрібне значення. Наприклад виданий провайдером IP-адрес 10.252.155.40, то його необхідно перевести в шістнадцяткову форму: 0A:FC:9B:28 і додати ще два нулі: 00:00:0A:FC:9B:28. Інколи, правда, провайдер додає спеціальний префікс. Наприклад 02:00:0A:FC:9B:28. Але взагалі-то цю інформацію ви самі можете в нього взнати.

Наприклад мені оператором Satgate призначено адресу 172.16.3.50 — відповідно я її і вводжу.

  1. Налаштовуємо фільтрацію по PID, вказаному провайдером (ідентифікатору пакетів) і створюємо мережевий інтерфейс. Наприклад dvbnet -p 402.

     linux-x0vn # dvbnet -p 402
    
     DVB Network Interface Manager
     Version 1.1.0-TVF (Build Fri Aug 12 14:12:43 2005)
     Copyright (C) 2003, TV Files S.p.A
    
     Device: /dev/dvb/adapter0/net0
     Status: device dvb0_0 for pid 402 created successfully.
    
  2. Присвоюємо інтерфейсу IP-адресу і MAC-адресу. Тут будьте уважні — якщо ви зробите щось невірно, то tcpdump буде показувати наявність трафіку, але працювати нічого не буде.

     ifconfig dvb0_0 172.16.3.50 netmask 255.255.255.255 broadcast 255.255.255.255
     ifconfig dvb0_0 hw ether 00:00:0A:FC:9B:28
     route add 172.16.3.50 dev dvb0_0
    

    Тепер ifconfig повинен показати щось типу:

     linux-x0vn:~ # ifconfig
     dvb0_0    Link encap:Ethernet  HWaddr 00:D0:D7:0F:CC:A8
               inet addr:172.16.3.50 Bcast:255.255.255.255  Mask:255.255.255.255
               inet6 addr: fe80::2d0:d7ff:fe0f:cca8/64 Scope:Link
               UP BROADCAST RUNNING NOARP MULTICAST  MTU:4096  Metric:1
               RX packets:4 errors:0 dropped:0 overruns:0 frame:0
               TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000
               RX bytes:236 (236.0 b)  TX bytes:0 (0.0 b)
                 Base address:0x192
    

    А в таблиці маршрутизації повинен з’явитись наступний рядок:

     Kernel IP routing table
     Destination  Gateway    Genmask        Flags Metric Ref    Use Iface
     172.16.3.50     *       255.255.255.255 UH    0      0     0    dvb0_0
     212.58.163.130  *       255.255.255.255 UH    0      0     0    ppp0
     loopback        *       255.0.0.0       U     0      0     0    lo
     default 212.58.163.130  0.0.0.0         UG    0      0     0    ppp0
    

Настав трепетний момент перевірки працездатності мережевого інтерфейсу. Варіантів є два. Найпростіший:

# tcpdump -ni 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
21:42:01.020568 IP 217.10.39.84.80 > <GW_IP>88.2909: . 1195548608:1195549945(1337)
    ack 1701755686 win 57491
21:42:01.020584 IP 217.10.39.84.80 > <GW_IP>88.2909: . 1337:2674(1337) ack 1 win
    57491
21:42:01.020586 IP 217.16.19.219.80 > 10.252.246.254.2394: S 3017247152:3017247152(0)
    ack 4146269160 win 5840 <mss 1460>

Інший варіант перевірки ще простіший:

linux-x0vn # dvbtraffic
0365    10 p/s     1 kb/s    15 kbit
1029    89 p/s    16 kb/s   134 kbit
1030   166 p/s    30 kb/s   250 kbit
1031   774 p/s   142 kb/s  1164 kbit
1036   312 p/s    57 kb/s   469 kbit
1037   616 p/s   113 kb/s   926 kbit
1038  1035 p/s   190 kb/s  1557 kbit
1039   678 p/s   124 kb/s  1020 kbit
1040    91 p/s    16 kb/s   137 kbit
1042   119 p/s    21 kb/s   180 kbit
1050     1 p/s     0 kb/s     2 kbit
1051  2161 p/s   396 kb/s  3250 kbit
1056     5 p/s     0 kb/s     8 kbit
1057   359 p/s    65 kb/s   540 kbit
1058   961 p/s   176 kb/s  1445 kbit
1059     5 p/s     0 kb/s     8 kbit
1101   244 p/s    44 kb/s   367 kbit
1102   222 p/s    40 kb/s   334 kbit
1103     9 p/s     1 kb/s    14 kbit
1104   166 p/s    30 kb/s   249 kbit
1105    49 p/s     8 kb/s    73 kbit
1109  1095 p/s   201 kb/s  1647 kbit
2000  9177 p/s  1684 kb/s 13802 kbit
-PID--FREQ-----BANDWIDTH-BANDWIDTH-
0365     9 p/s     1 kb/s    14 kbit

Тепер було-би добре скласти все в один скрипт, наприклад, skystar.sh:

#!bin/sh

/usr/local/bin/szap -c /etc/channels.conf -n 1 -x
/usr/local/bin/dvbnet -a 0 -p402

ifconfig dvb0_0 172.16.1.53 netmask 255.255.255.255 broadcast 255.255.255.255
ifconfig dvb0_0 hw ether 00:D0:D7:0F:CC:AB
route add 172.16.1.53 dev dvb0_0
echo 0 > /proc/sys/net/ipv4/conf/dvb0_0/rp_filter

Щоб цей скрипт можна було запускати, робимо chmod a+x skystar.sh

Зворотній канал.

Зверніть увагу що у вас вже повинен бути налаштований зворотній канал. Особисто я використую GPRS-підключення від стільникового оператора Life:). В мене воно відповідно працює через інтерфейс ppp0. Саме налаштування цього інтерфейсу я поки-що не буду описувати. Також слід зауважити, що я не використовую підклчюення OpenVpn, а використувую Slonax Остання версія в момент написання 2.00.07.

Опис підключення OpenVPN з’явиться, але трошки пізніше.

Маскарадінг.

Відповідно, щоб використовувати наші 2 підключення разом, потрібно замаскарадити два мережеві інтерфейси.

В моєму випадку це робиться наступними командами:

modprobe ipt_MASQUERADE 
iptables -F; iptables -t nat -F; iptables -t mangle -F
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Ці рядки можна сміливо дописати у наш скрипт вище.

Слонакс.

Далі необіхдно провести налаштування власне слонакса і запустити його. Наведу свій конфігураційний файл slonax_conf:

# SlonAx client configuration file

[NETWORK]
remote_server_ip    212.44.94.246
remote_server_port  3444


[PROXY]
local_proxy_enabled    yes
local_proxy_bind_to 127.0.0.1
local_proxy_port       8080


[SOCKS]
local_socks_enabled    yes
local_socks_bind_to 127.0.0.1
local_socks_port    1080


[PORT_MAPPING]
port_map_bind         127.0.0.1
#port_map         local_port->remote_ip:remote_port
port_map
port_map              110->pop3.mail.ru:110
port_map              6667->wenet.ru:6667

[AUTHENTICATION]
login           ******
password    *******

[SPEED]
# 'speed_auto' Works only with SatGate service.
speed_auto            yes
# All speed in Kbyte/s.
speed_in    32
speed_out   1

[HTTP_SPEC_FLAGS]
http_econom_flags     65535
http_use_prefetch     no

[TRANSPORT]
ptoto_type            udp
mtu                   1400
mru                   1400

[WIN32]
set_ie_proxy          yes
set_loopback          no
safe_mode             no

[DEBUG]
debug_level           5
debug_file            debug.log

Дані налаштування швидкостей виставлені для швидкості 256 кбіт/с і підключення GPRS.

Що ж, нам залишається запустити самого слона. При правильному підключенні, версія 2.00.07 напише наступне:

linux-x0vn:/home # linux-x0vn:/home/lin_dist # ./slnx_client
[2006.09.17 17:21:08] DEBUG Find PORTMAP: 110->pop3.mail.ru:110
[2006.09.17 17:21:08] DEBUG Find PORTMAP: 6667->wenet.ru:6667
[2006.09.17 17:21:08] MARK  F:main: SlonAx v.2.0.7 (beta) 2006 SatGate LLC. All rights reserved.
[2006.09.17 17:21:08] MARK  F:main: v.2_00_07 Build Tue, 29 Aug 2006 16:45:25 +0400 @papa-slon
[2006.09.17 17:21:08] MARK  F:main: Starting standby service...
[2006.09.17 17:21:08] MARK  F:xmit_thread: Created xmit thread....speed_limit =1
[2006.09.17 17:21:08] DEBUG F:service_thread: Im in alive service...
[2006.09.17 17:21:09] MARK  F:try_register: Use magic key=49676  use sess_id=5510011
[2006.09.17 17:21:12] DEBUG F:try_register: Got register reply
[2006.09.17 17:21:12] DEBUG F:try_register: Got test alive packet.
[2006.09.17 17:21:12] DEBUG F:try_register: Success login '********' to '212.44.94.246'
[2006.09.17 17:21:12] DEBUG F:try_register: Service info: 212.44.94.246:53482
[2006.09.17 17:21:12] DEBUG F:try_register: Transport parms: IP:172.16.1.53  HWaddr: 00:d0:d7:0f:cc:ab
[2006.09.17 17:21:12] MARK  F:service_thread: got an alive...
[2006.09.17 17:21:12] MARK  F:service_thread: got an alive...
[2006.09.17 17:21:12] MARK  F:main: Starting PROXY service....
[2006.09.17 17:21:12] MARK  F:main: Starting SOCKS service....
[2006.09.17 17:21:12] MARK  F:main: Starting PORTMAP service....
[2006.09.17 17:21:13] MARK  F:service_thread: got an alive...
[2006.09.17 17:21:13] DEBUG F:main: Map to: 110->194.67.23.102:110
[2006.09.17 17:21:18] DEBUG F:main: Map to: 6667->195.210.181.100:6667
[2006.09.17 17:21:18] MARK  F:main: Start HTTP Economizer service...

Зараз уже є версія 2.00.10, яка працює дуже стабільно, то ж успіхів вам.

pptp vpn

Цей тип підключення є набагато стабільнішим ніж слонакс, він дуже рідко рветься, а також вам видають реальну тимчасову IP-адресу, про переваги якої я не буду розповідати. Для налаштування pptp-з’єднання вам необхідно звантажити консольний клієнт pptp за допомогою системи керування пакунками вашого дистро або зібрати із сирців. Після цього потрібно налаштувати наступні файли:

/etc/ppp/chap-secrets:

# Secrets for authentication using CHAP
# client    server      secret      IP addresses
yourlogin * password * 82.198.19.6

Де 82.198.19.6 — IP-адреса сервера (унікальна для кожного супутника).

Також /etc/ppp/peers/satgate1:

name yourlogin
lock
noauth
defaultroute
usepeerdns

Скрипт запуску підключення має бути наступним (його можна назвати vpnstart):

#!/bin/sh

szap -c /etc/channels.conf -n 1 -x
dvbnet -a 0 -p404

ifconfig dvb0_0 172.16.28.50 netmask 255.255.255.255 broadcast 255.255.255.255
ifconfig dvb0_0 hw ether yourmacadress #тут має бути ваш мак

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

route add 82.198.19.6 gw 10.0.0.1 #додавання роут маршруту на супутник  gw 10.0.0.1 це Гейтвей наземного кабельного оператора
route del default #видалення маршруту на кабельного оператора

pptp 82.198.19.6 nodetach call satgate1

Скрипт зупинки сервісу і переключення на простий тип підключення - stopvpn:

#!/bin/sh

ifconfig dvb0_0 down
dvbnet -d 0
route del 82.198.19.6 #видалення роут маршруту на супутник
route add default gw 10.0.0.1 #трафік знову іде через кабельного оператора

Тепер route -n має після запуску vpm показати щось таке:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
82.198.19.6     10.0.0.1        255.255.255.255 UGH   0      0        0 eth0
82.198.19.6     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.0.0.0        0.0.0.0         255.255.192.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0

© Стражник Руслан. 2007 рік strazhnyk@gmail.com