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

## Введение

Цель статьи в том, что бы работать одновременно и в интернете и в бесплатной сети (ФОС), которую предоставляет провайдер, но с другим логином и паролем. 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)

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

    # ss -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"
                    ss -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 Это позволит автоматом поднимать инет и ФОС при запуске системы.

Categories:

- Русский
- Networking (Русский)