Одновременная работа Интернета и бесплатной сети (ФОС)
From ArchWiki
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 Это позволит автоматом поднимать инет и ФОС при запуске системы.