Настройка Триколор Интернет в OpenSuSe 11.2

До конца 2010 года все абоненты Триколор ТВ подключенные по тарифному плану Оптимум могут бесплатно пользоваться ихним же интернетом. Сразу скажу, что у меня уже есть безлимитный и довольно шустрый интернет через ADSL модем. И все же я решил повозиться и настроить дополнительно еще и спутниковый интернет, используя проводное соединение в качестве исходящего канала.

Используемое оборудование: DVB Карта Prof Revolution 7301 S2 и ADSL модем D-Link 500T в режиме роутера. Операционная система OpenSuSe 11.2.

1: Регистрация оборудования в личном кабинете. Вносим MAC-адрес DVB-карты, получаем IP адрес, логин и пароль.

Каждую цифру полученного IP адреса переводим в шестнадцатеричный вид, и получаем новый MAC-адрес устройства вида МАС 00:02:XX:XX:XX:XX (подробности здесь). Он будет нужен для создания VPN соединения.

2. Создаем VPN соединение любым способом. Кто-то делает через Yast (настройка DSL), кто-то делает через kvpnc; я же сделал через pptp-command, создал новый CHAP secret, создал новый pptp-туннель и не трогал маршрутизацию. Добился того, чтобы при запуске pptp-command start создавалось соединение (через устройство ppp0), и убивалось по команде pptp-command stop.

3. Настраиваем прием данных со спутника, используя IP сервера 81.177.31.194, и логин с паролем из личного кабинета. Создаем файл /etc/tricolor.conf с одной единственной строчкой:

Trikolor:11766:h:0:27500:1000:1000:0

В /etc/resolv.conf указываем любые публичные DNS-сервера:

nameserver 8.8.4.4 
nameserver 4.2.2.2
nameserver 8.8.8.8

Выкладываю свой скрипт, который у меня лежит в /etc/init.d/tricolor.sh :

#!/bin/bash                                                                  

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

# https://cabinet.stv.su/index.php?m=info
IP="192.168.100.1" #Сюда прописываем ваш IP-адрес, (адрес левый, роли не играет)
MAC="00:02:XX:XX:XX:XX" #сюда пишем MAC-адрес сконвертированный из IP адреса данного триколором
PID="0x3e8" #здесь должен быть ваш PID (можно и в dec) 0x3e8h=1000d

# https://cabinet.stv.su/index.php?m=conf

CHANNELS_CONF="/etc/tricolor.conf"

# http://forum.stv.su/viewtopic.php?t=1173
case "$1" in
start)
echo "starting $NAME..."
#Теперь отключим rp_filter, фильтрующий пакеты которые не могут уйти через тот же интерфейс что и пришли
/sbin/sysctl -w net.ipv4.conf.all.rp_filter="0"
/sbin/sysctl -w net.ipv4.conf.default.rp_filter="0"
#сие так замудренно всвязи с проблемамаи на ядре 2.6.24 и выше
/usr/sbin/pptp-command start
dvbnet -p $PID
szap -l 10750 -c $CHANNELS_CONF -n 1 > /dev/null &
ifconfig dvb0_0 hw ether $MAC
ifconfig dvb0_0 $IP
route add -net 0.0.0.0 dev ppp0
;;
stop)
/usr/sbin/pptp-command stop
echo "stoping $NAME..."
ifconfig dvb0_0 down
dvbnet -d 0
killall szap #ну раз замудрили при старте, мудрим и при остановке - иначе никак =(
/etc/init.d/network restart
;;
restart)
$0 stop
$0 start
;;
*)
echo "usage: $NAME start|stop|restart"
exit 3
;;
esac

exit 0

Для карт S2 есть принципиальный момент, MAC адрес должен назначаться до назначения IP, иначе скрипт будет ругаться на невозможность назначить айпишник устройству. Последняя строчка в секции start заворачивает весь исходящий трафик на VPN.

Далее от рута даем команду /etc/init.d/tricolor.sh start и все заработало.

Как видно из скрипта, при поднятии VPN запросы на сервера DNS и будут отправляться через ADSL-модем (через устройство ppp0), весь входящий трафик пойдет через спутниковую DVB карту. Проверить это можно, если запустить ifconfig:

# ifconfig
dvb0_0 Link encap:Ethernet HWaddr 00:02:XX:XX:XX:XX
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING NOARP MULTICAST MTU:4096 Metric:1
RX packets:455 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:168998 (165.0 Kb) TX bytes:0 (0.0 b)
Base address:0x3e8

eth1 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:106749 errors:0 dropped:0 overruns:0 frame:0
TX packets:127707 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:40869070 (38.9 Mb) TX bytes:25464396 (24.2 Mb)
Interrupt:19 Base address:0x8000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:50 errors:0 dropped:0 overruns:0 frame:0
TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3340 (3.2 Kb) TX bytes:3340 (3.2 Kb)

ppp0 Link encap:Point-to-Point Protocol
inet addr: XX.XX.XX.XX P-t-P:10.1.1.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:996 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:485 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:80 (80.0 b) TX bytes:58760 (57.3 Kb)

Таблица маршрутизации у меня выглядит так:

# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
81.177.31.194 192.168.1.1 255.255.255.255 UGH 0 0 0 eth1
10.1.1.1 * 255.255.255.255 UH 0 0 0 ppp0
192.168.100.0 * 255.255.255.0 U 0 0 0 dvb0_0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
link-local * 255.255.0.0 U 0 0 0 eth1
loopback * 255.0.0.0 U 0 0 0 lo
default * 0.0.0.0 U 0 0 0 ppp0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth1

Все замечательно работает. Правда, скорость скачивания через tricolor internet раз в 10 меньше скорости скачивания через ADSL модем, но зато у меня появился дополнительный айпишник из триколоровской сети.