Супутниковий інтернет
Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.
Налаштування Скайстар 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 (http://www.linuxtv.org/downloads/linuxtv-dvb-apps-1.1.0.tar.bz2) із того ж сайту Linux TV. (http://www.linuxtv.org/) . Розпаковуємо їх, заходимо в директорію linuxtv-dvb-apps-1.1.0/util/ і набираємо make. Після компіляції, получаться такі от файли:
inuxtv-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(http://carpenter.bofh.ru/texts/sat-ssx/files/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(http://www.onlyslon.org/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
Ці строки можна сміливо дописати у наш скрипт зверху.
5.Слонакс.
Далі необіхдно провести налаштування власне слонакса і запустити його. Приведу свій конфігураційний файл 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 консольний кліент через систему обновлення вашого лінуксу або зібрати із сирців(http://pptpclient.sourceforge.net/) Після цього мусите відконфігурувати наступні файли
/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 має показати щось таке при запуску vpn
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 рік mail to : strazhnyk@gmail.com

