Рейтинг
Порталус

Одновременная работа интернета и бесплатных ресурсов провайдера на примере ADSL

Дата публикации: 17 июня 2009
Автор(ы): Caйков Валентин
Публикатор: xlin
Рубрика: КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ Интернет →
Источник: (c) http://portalus.ru
Номер публикации: №1245182764


Caйков Валентин, (c)

Добрый день. Я столкнулся с этой проблемой буквально сразу как подключил себе ADSL модем. Мой провайдер выдал мне два логина и два пароля для интернета и бесплатных рессурсов. И у меня возник вопрос. Можно ли поднять с помощью ppp и pppoe сразу два соединения? Что бы при запуске компьютера я не замарачивался с переключением с платного на бесплатный и наоборот. Пошерстив в интернете собрал не много информации и привел в рабочую схему. Ну это прилюдия Улыбка Приступим к делу.

Приступим. Для начала настроим два соединения по отдельности. Т.е. отдельно настроем Internet и freeinet
Чтобы все прошло гладко в системе должны прсутствовать два пакета. Это ppp и pppoeconf. Если их нет, Вам придется их установить. У меня это происходит так.

Код:

sudo aptitude install ppp pppoeconf


После установки у нас появится каталог /etc/ppp Мы к нему потом вернемся.
Ну а теперь настраиваем попорядку наши соединения. Но для начала проверим настроена у нас сетевая карточка. У меня всегда были проблемы с настройкой в GUI, не знаю почему, так что я привык ручками.

* Узнаем интерфейс сетевой карты и донастраиваем сеть

Код:

$ ifconfig


в итоге вы должны увидить нечто похожее
Код:

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/interfaces

Код:

auto ppp0
iface ppp0 inet ppp
provider fos
auto ppp1
iface ppp1 inet ppp
provider inet

Такая схема прекрасно работает у меня и замечательно держит оба соединения даже при отключении и включении модема.

P. S. Это конкретно для Debian, но в других дистрибутивах механизм аналогичный.
P.S.S. Спасибо за предоставленную информацию NowhereMan

Опубликовано на Порталусе 17 июня 2009 года

Новинки на Порталусе:

Сегодня в трендах top-5


Ваше мнение?


КЛЮЧЕВЫЕ СЛОВА (нажмите для поиска): linux internrt adsl howto ubuntu



Искали что-то другое? Поиск по Порталусу:


О Порталусе Рейтинг Каталог Авторам Реклама