Одновременная работа Интернета и бесплатной сети (ФОС)

From ArchWiki

Jump to: navigation, search


Contents

Введение

Цель статьи в том, что бы работать одновременно и в интернете и в бесплатной сети (ФОС), которую предоставляет провайдер, но с другим логином и паролем. ADSL модем должен быть в режиме моста.

Проверка установленных пакетов

Для начала проверим что у нас все стоит из нужного програмного обеспечения. Нам нужен pppd и ip ( он входит в пакет iproute2).

pacman -Q iproute2 && pacman -Q ppp
iproute2 2.6.28-1
ppp 2.4.4-9

Настройка pppoe

Отлично, все стоит. Следующим шагом настройте свои подключения для инета и фоса. У меня они лежат, как и у вас, в /etc/ppp/peers

cat /etc/ppp/peers/fos
   noipdefault
   nodefaultroute
   hide-password
   noauth
   persist
   maxfail 0
   plugin rp-pppoe.so eth1
   user “fileXXXXXX”
   unit 1 
cat /etc/ppp/peers/inet
   noipdefault
   nodefaultroute
   hide-password
   noauth
   persist
   maxfail 0
   plugin rp-pppoe.so eth1
   user “jdslXXXXXX”
   unit 0 

Если вы все сделали верно, то к фосу можно будет коннектиться с помощью pon fos и отрубиться poff fos Аналогично и к инету.

Добавление скрипта и маршрутизации

Далее пишим скрипт для автоматического поднятия фоса с инетом и добавлением правил маршрутизации.

vim /etc/ppp/ip-up.d/00-routing.sh
   #! /bin/bash
   IP=”/usr/sbin/ip”
   FOS_IFACE=”ppp1″
   INET_IFACE=”ppp0″
   if [ $1 = $FOS_IFACE ]; then
   NET=`/bin/grep -vE ‘^#’ /etc/ppp/fos.list`
   for i in $NET; do
   $IP route add $i dev $1
   done
   fi
   if [ $1 = $INET_IFACE ]; then
   $IP route del default 2>/dev/null
   $IP route add default dev $1 
   fi

И сделаем его выполняемым

chmod 755 /etc/ppp/ip-up.d/00-routing.sh

Обратите внимание на путь в скрипте, а именно на строчку

NET=`/bin/grep -vE ‘^#’ /etc/ppp/fos.list`

Это путь к файлу, где указаны все сети и адреса, которые должны направляться на ppp1. Т.е. считаться бесплатным трафиком. Список таких сетей и сайтов ищите и спрашивайте у ваших провайдеров.

Теперь завершающий этап. Отключитесь полностью от ФОСа и инета, и подрубитесь заново. Проверте поднялись ли интерфейсы ppp0 и ppp1

ppp0      Link encap:Point-to-Point Protocol
          inet addr:88.147.211.197  P-t-P:88.147.128.127  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:868164 errors:0 dropped:0 overruns:0 frame:0
          TX packets:894747 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:633514822 (604.1 Mb)  TX bytes:368966099 (351.8 Mb)

ppp1      Link encap:Point-to-Point Protocol
         inet addr:88.147.223.163  P-t-P:88.147.128.127  Mask:255.255.255.255
         UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
         RX packets:2272881 errors:0 dropped:0 overruns:0 frame:0
         TX packets:3019009 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:3
         RX bytes:875742380 (835.1 Mb)  TX bytes:3707531434 (3535.7 Mb)

Потом смотрим маршрутизацию

netstat -nr

Вот кусок того, что вы должны увидеть

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
83.222.15.80    0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
217.174.97.60   0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
194.67.1.14     0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
217.23.64.14    0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
88.147.128.127  0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
88.147.128.127  0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
217.9.151.19    0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
194.186.36.179  0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
217.9.151.18    0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
89.108.90.130   0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
217.174.98.2    0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
194.186.36.178  0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
217.174.98.9    0.0.0.0         255.255.255.255 UH        0 0          0 ppp1
80.95.32.115    0.0.0.0         255.255.255.255 UH        0 0          0 ppp1

Если у Вас все так же, то осталось добавить это в автозапуск.

Реализация в качестве демона

Создаем скрипт и делаем его исполняемым.

touch /etc/rc.d/p2
chmod 755 /etc/rc.d/p2

Вот его содержимое:

#! /bin/bash
# Description: Fos and Inet
#                                        
. /etc/rc.conf
. /etc/rc.d/functions

NAME=`basename $0`
FOS_NAME="fos"
INET_NAME="inet"
FOS_IFACE="ppp1"
INET_IFACE="ppp0"
FOS_LIST="/etc/ppp/fos.list"

case "$1" in
        start)
                stat_busy "Starting FOS+INET Connection"
                netstat -rn | grep 88.147.128.0 &> /dev/null
                case $? in
                        0)
                                stat_bkgd "Already UP"
                                exit 1
                                ;;
                esac
                /usr/bin/pon $FOS_NAME &> /dev/null
                /usr/bin/pon $INET_NAME &> /dev/null
                sleep 10 &&
                ifconfig | grep $FOS_IFACE &> /dev/null && ifconfig | grep $INET_IFACE &> /dev/null
                case $? in
                        1)
#Проверка, что поднялось. Исключительно для красивой надписи done:)
                                stat_fail
                                exit 2
                                ;;
                esac
                add_daemon p2
                stat_done
        ;;

        stop)
                stat_busy "Stopping FOS+INET Connection"
                killall pppd
                rm_daemon p2
                stat_done
        ;;

        restart)
                $0 stop
                sleep 5 &&
                $0 start
        ;;

        *)
                echo "Usage: $0 start|stop|restart"
                exit 3
        ;;

esac
exit 0

Теперь все это дело можно стартовать и останавливать вот так:

/etc/rc.d/p2 start
/etc/rc.d/p2 stop

Ну и для полного счастья добавте его (p2) в список демонов в файл /etc/rc.conf Это позволит автоматом поднимать инет и ФОС при запуске системы.

Personal tools