Налаштування Скайстар 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 — відповідно я її і вводжу.
Налаштовуємо фільтрацію по 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.
Присвоюємо інтерфейсу 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