URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 78825
[ Назад ]

Исходное сообщение
"Gentoo. Имеем ADSL -2 штуки. Как поднять 2ppp ?  "

Отправлено Роман Парубенко , 19-Фев-08 19:22 
Имеется сервер-роутер под управлением gentoo-linux. Два модема АДСЛ
Есть два провайдера. Оба подключаются через АДСЛ.
Нужно поднять два интерфейса ppp0 и ppp1.
Скриптом adsl-start получается поднять только один ррр.
Поэтому решил делать через /etc/init.d/net.ppp0 и /etc/init.d/net.ppp1
Вкомпилял в ядро pppoe и стал настраивать:

/etc/conf.d/net:
==========================
config_eth2= ("null")
config_ppp0=( "ppp" )
link_ppp0="eth2"
plugins_ppp0=("pppoe")
username_ppp0='USER=adNNN@dsl.ukrtel.net'
password_ppp0=
depend_ppp0() {
        need net.eth2
        }
аналогично и для ppp1, только eth3 и юзер другой
============================

В файл pap-secrets прописал соответственно юзеров.
Командой /etc/init.d/net.ppp0 start поднимаю интерфейс.
Интерфейс таки поднимается, но мне еще нужно после этого установить правильную маршрутизацию (я использую несколько таблиц маршрутизации iproute2) и установить нужные правила файрвола.  Адреса провайдеры выдают динамически, поэтому маршрутизацию и файрвол мне нужно менять каждый раз при поднятии интерфейса. Как это сделать?
Ведь в этом случае я не могу использовать конструкции вида:

config_ppp0=( "192.168.32.4 netmask 255.255.255.0" )
routes_ppp0=(  "192.168.32.0/24 dev ppp0 src 192.168.32.4 table unlimit "
                "192.168.32.0/24 dev ppp0 src 192.168.32.4 table pmp"
                "192.168.38.0/24 via 192.168.32.2"
                "192.168.39.0/24 via 192.168.32.2"
                "192.168.40.0/24 via 192.168.32.3"



Содержание

Сообщения в этом обсуждении
"Gentoo. Имеем ADSL -2 штуки. Как поднять 2ppp ?  "
Отправлено Agressor , 19-Фев-08 21:37 
/etc/ppp/peers
создаем там 2 файла по именам провов (для удобства) с таким примерно содержанием

noipdefault
usepeerdns
nodefaultroute
#defaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
connect /bin/true
noauth
refuse-chap
logfile "/var/log/pppoe_eth2.log"
persist
unit 1
mppc
nobsdcomp
nodeflate
nomppe
#novj
#novjccomp
mtu 1492
noaccomp
default-asyncmap
pty "/usr/sbin/pppoe -p /var/run/pppoe-eth2.pid -I eth2 -T 80 -U -m 1412"
#disconnect "/etc/ppp/ip-down.d/60-pppoe.sh" - там по потребностям можно чего-то делать
user "user_name"

не забываем изменять имена eth :)
обратите внимание на параметр unit - если ставим 0, это будет ppp0, если 1 - соответственно ppp1. Понадобится для маршрутизации.
Поднимается все это хозяйство pppd call имя_файла


"Gentoo. Имеем ADSL -2 штуки. Как поднять 2ppp ?  "
Отправлено Роман Парубенко , 20-Фев-08 11:37 

1. Т.е. выходит, что стандартным Гентовским способом /etc/init.d/net.ppp0 start не получиццо?

2. >#disconnect "/etc/ppp/ip-down.d/60-pppoe.sh" - там по потребностям можно чего-то делать
А как что-то делать если я адресов не знаю? Т.е. может быть существует какая-нить переменная, которая видна из этого скрипта (в которой записан выданный айпиадрес и прочее)


"Gentoo. Имеем ADSL -2 штуки. Как поднять 2ppp ?  "
Отправлено Agressor , 21-Фев-08 14:01 
>1. Т.е. выходит, что стандартным Гентовским способом /etc/init.d/net.ppp0 start не получиццо?

Лучше не пробовать, т.к. могут возникнуть проблеммы с нумерацией интерфейсов и естественно с построением маршрутов по ним. Там никак не используется опция unit.

>2. >#disconnect "/etc/ppp/ip-down.d/60-pppoe.sh" - там по потребностям можно чего-то делать
>А как что-то делать если я адресов не знаю? Т.е. может быть
>существует какая-нить переменная, которая видна из этого скрипта (в которой записан
>выданный айпиадрес и прочее)

Если имееш ввиду IP интерфейса и Gateway - тогда можно так

IPIN1=`ifconfig ppp0|grep "inet addr"|awk '{print $2}'|cut -d ':' -f 2`
GW1=`ifconfig ppp0|grep "inet addr"|awk '{print $3}'|cut -d ':' -f 2`

Посмотри мою статейку "http://wiki.opennet.ru/Linux_ppp-oe_(ADSL)_Balance"
Там правда для RedHat Based дистра, но принципы то не меняются :)


"Gentoo. Имеем ADSL -2 штуки. Как поднять 2ppp ?  "
Отправлено DemonWather , 02-Апр-09 11:43 
>Посмотри мою статейку "http://wiki.opennet.ru/Linux_ppp-oe_(ADSL)_Balance"
>Там правда для RedHat Based дистра, но принципы то не меняются :)

Подымал для debian etch 4 (ядро 2.6.18) по Вашей статье 2 канала (ppp0 и ppp1) с Распределением нагрузки на два канала

Все интерыейсы подымаются все работает (eth0-LAN, ppp0 over eth1, ppp1 over eth2) но вот на ключевой строчке

/sbin/ip route add default equalize nexthop via ${GW1} dev ${IFOUT1} weight 1 nexthop via ${GW2} dev ${IFOUT2} weight 1

Пишет RTNETLINK answers: File exists
Типа  маршрут уже поднят...

Вручную удалил все дефолтовые шлюзы. Попробовал ручками поднять распределение нагрузки

ip route add default equalize nexthop via XXX.XXX.XXX.XXX dev ppp0 weight 1 nexthop via YYY.YYY.YYY.YYY dev ppp1 weight 1

Пробовал отдельно добавить два дефолтных маршрута:

ip route add default via XXX.XXX.XXX.XXX dev ppp0
ip route add default via YYY.YYY.YYY.YYY dev ppp1

Таже ошибка. ДВА дефолтных шлюза одновременно не подымаются!

Возможно у меня в ядре отключена возможность IP_ROUTE_MULTIPATH или ещё чего. Но я не знаю как её включить и где посмотреть.. Гугление приводит тока к пересборке ядра целиком, чего делать бы не хотелось )

Помогите кто может...