Одновременная работа интернета и бесплатных ресурсов провайдера на примере ADSL
Добрый день. Я столкнулся с этой проблемой буквально сразу как подключил себе
ADSL модем. Мой провайдер выдал мне два логина и два пароля для интернета и бесплатных рессурсов. И у меня возник вопрос. Можно ли поднять с помощью
ppp и
pppoe сразу два соединения? Что бы при запуске компьютера я не замарачивался с переключением с платного на бесплатный и наоборот. Пошерстив в интернете собрал не много информации и привел в рабочую схему. Ну это прилюдия
Приступим к делу.
Хочу сразу оговориться. Я не использовал
PyppyRus на своем компьютере, ток что начало может чуть отличаться. Но я думаю это не существенная помеха. Если писать одинаковые
HOWTO на каждый дистрибутив, с отличием лишь в установке пакетов, это будет как то не правильно. ИМХО. Так что пример проверялся на
Debiad 5.0 Lenny. Ну а так как
PyppyRus чем то похож на Slackware (тоже собран с исходников), думаю проблем не будет. Тем более он поддерживает несколько не плохих менеджеров пакетов.
Приступим. Для начала настроим два соединения по отдельности. Т.е. отдельно настроем Internet и freeinet
Чтобы все прошло гладко в системе должны прсутствовать два пакета. Это
ppp и
pppoeconf. Если их нет, Вам придется их установить. У меня это происходит так.
sudo aptitude install ppp pppoeconf
После установки у нас появится каталог
/etc/ppp Мы к нему потом вернемся.
Ну а теперь настраиваем попорядку наши соединения. Но для начала проверим настроена у нас сетевая карточка. У меня всегда были проблемы с настройкой в GUI, не знаю почему, так что я привык ручками.
- Узнаем интерфейс сетевой карты и донастраиваем сеть
в итоге вы должны увидить нечто похожее
eth1 Link encap:Ethernet HWaddr 00:30:05:42:ac:f2
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::230:5ff:fe42:acf2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10972438 errors:0 dropped:0 overruns:0 frame:0
TX packets:11535171 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3307893646 (3.0 GiB) TX bytes:4247696620 (3.9 GiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:60156 errors:0 dropped:0 overruns:0 frame:0
TX packets:60156 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:14102636 (13.4 MiB) TX bytes:14102636 (13.4 MiB)
Тут мы видем что моя сетевая карта привязана к интерфейсу eth1 с IP 192.168.1.2 Если у вас не прописан IP адрес, то это значит скорее всего вы его не указали при установке дистрибутива. Исправить это можно легко.
Открываем консоль и делаем следующее:
$ifconfig eth1 192.168.1.2 netmask 255.255.255.0 up
$route add default gw 192.168.1.1
Этими действиями мы вручную активировали сетевую карточку и указали шлюз по умолчанию. Т.к. у нас
ADSL модем это будет почти всегда
192.168.1.1. Потом прописываем наши
DNS сервера в файл
/etc/resolv.conf, узнать их можете у своего провайдера
$vim /ets/resolv.conf
nameserver 88.xxx.xxx.xxx - это основной DNS
nameserver 88.xxx.xxx.xxx - это вторичный DNS
Далее добовляем в файл
/etc/rc.local ниже приведенную строчку. Она нам даст автоматическое подключение сетевого интерфейса с определенным IP.
# vim /etc/rc.local
ifconfig eth1 192.168.1.2 netmask 255.255.255.0 up - допишите эту строчку
Вот и все, теперь настраиваем интернет соединение. Не забываем модем переключить в режим
bridge$ pppoeconf - cледуем всем указаниям и вводите данные для интернета
После этого появится файл
/etc/ppp/peers/ds-provider Переименуйте его в
internet$ cd /etc/ppp/pears/
$rm dsl-provider internet
Чтобы все было как у людей, нужно еще кое что подправить в этом файле
vim /etc/ppp/pears/internet
Приведите свой файл примерно к такому виду:
noipdefault
nodefaultroute
noreplacedefaultroute
hide-password
noauth
persist
maxfail 0
plugin rp-pppoe.so eth1 # название интерфеса на который привязан модем
user "ХХХXXX" # логин выдавший вам провайдер для входа в интернет
unit 0 # номер который получит при соединении ppp
Теперь тоже самое делаем и для freeinet. Т.е. запускайте опять pppoeconf и переименовывайте файл в reeinet.
Только в файле /eyc/ppp/pears/freeinet замените последнии две строчки на:
user "ХХХXXX" # логин выдавший вам провайдер для входа в бесплатный интернет
unit 1 # номер который получит при соединении ppp
После создаем файл /etc/ppp/ip-up.d/01pppstart (или любое другое имя, крайне желательно номер в начале оставить) и забиваем в него:
#!/bin/bash
# $1 - interface name
# $2 -
# $3 -
# $4 - interface IP
# $5 - gateway IP
iptables="/sbin/iptables"
iface_lan="eth0"
iface_fos="ppp0"
iface_inet="ppp1"
if [ $1 = $iface_fos ]; then
NET=`/bin/grep -vE '^#' /etc/ppp/fos-net.txt`
for i in $NET; do
ip route add $i via $5 dev $1
done
$iptables -t filter -A INPUT -i $1 -m state --state established,related -j ACCEPT
$iptables -t filter -A OUTPUT -o $1 -j ACCEPT
# Тут - остальные правила для бесплатного подключения
fi
if [ $1 = $iface_inet ]; then
# Тут - правила для интернета вместе с установкой default route
route del default
route add default gw $5 dev $1
$iptables -t filter -A OUTPUT -o $1 -j ACCEPT
$iptables -t filter -A INPUT -m state --state established,related -i $1 -j ACCEPT
fi
Не забываем сделать его исполняемым:
chmod u+x /etc/ppp/ip-up.d/01pppstart
Таблица роутинга для бесплатного интернета лежит в /etc/ppp/fos-net.txt и выглядит примерно так:
88.147.128.0/17
213.177.98.180/32
212.193.32.0/20
82.116.44.0/22
#ICQ
64.12.0.0/16
205.188.0.0/16
Вам остается добавить свои айпишники по вкусу.
Последний шаг - копирование
/etc/ppp/ip-up.d/pppstart в
/etc/ppp/ip-down.d/pppstop и замена всех команд
iptables -A на iptables -D, дабы при падении интерфейсов правила удалялись. Соответственно, не забываем дать права на исполнение и убрать кусок про роутинг, так как тут он совсем и не нужен.
pppd будет сам дергать
/etc/ppp/ip-up.d/pppstart и
/etc/ppp/ip-down.d/pppstop при поднятии и опускании интерфейсов.
Неплохо прописать в
/etc/network/interfacesauto ppp0
iface ppp0 inet ppp
provider fos
auto ppp1
iface ppp1 inet ppp
provider inet
Такая схема прекрасно работает у меня и замечательно держит оба соединения даже при отключении и включении модема.
P. S. Это конкретно для Debian, но в других дистрибутивах механизм аналогичный.
P.S.S. Спасибо за предоставленную информацию
NowhereManВалентин Сайков aka --=XliN=--