Нужно на FreeBSD поднять несколько клиентских PPPoE подключений к провайдеру Укртелеком через ADSL. Используя стандартный PPP корректно можно поднять только одно подключение из-за того что шлюз одинаковый для обоих подключений неполучаеться завернуть корректно траффик на ipfw fwd через другое PPPoE соединение. Поэтому решено использовать MPD.
Каким образом его настроить на 2 подключения, и как заворачивать траффик на другое подключение через ipfw fwd?
Первая мысль использовать что то типа виртуальных окружений?
>Используя стандартный PPP корректно можно поднять только одно подключение из-за
>того что шлюз одинаковый для обоих подключений неполучаеться завернуть корректно траффик
>на ipfw fwd через другое PPPoE соединение. Поэтому решено использовать MPD.C год примерно работал на двух соединениях к одному и тому же провайдеру через стандартный ppp. Всё заворачиволось и подключалось.
>Нужно на FreeBSD поднять несколько клиентских PPPoE подключений к провайдеру Укртелеком через
>ADSL. Используя стандартный PPP корректно можно поднять только одно подключение из-за
>того что шлюз одинаковый для обоих подключений неполучаеться завернуть корректно траффик
>на ipfw fwd через другое PPPoE соединение. Поэтому решено использовать MPD.
>
>Каким образом его настроить на 2 подключения, и как заворачивать траффик на
>другое подключение через ipfw fwd?Лучшее решение - multilink, требуется поддержка со стороны провайдера.
startup:
# configure mpd users
set user admin blabla
# configure the console
set console self 127.0.0.1 5005
set console open
# configure the web server
set web self 0.0.0.0 5006
set web open
default:
load pppoe_l1
load pppoe_l2pppoe_l1:
create bundle static B1
set iface route default
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set bundle disable compressioncreate link static L1 pppoe
set link action bundle B1
set link enable multilink
set auth authname test
set auth password test_pass
#set set link bandwidth
set link max-redial 0
set link mtu 1492
set link keep-alive 10 60
set pppoe iface em0
set pppoe service ""
openpppoe_l2:
create link static L2 pppoe
set link action bundle B1
set link enable multilink
set auth authname test
set auth password test_pass
#set set link bandwidth
set link max-redial 0
set link mtu 1492
set link keep-alive 10 60
set pppoe iface rl1
set pppoe service ""
open
А как потом завернуть траффик через ipfw на pppoe_l2 подключение? ipfw требует указания IP адреса шлюза, однако проблема в том что IP адрес шлюза динамический. Как можно задать для ipfw в команде fwd не IP адрес шлюза а адрес интерфейса?
Фигня какая-то получаеться - линки не могут быть с одинаковыми шлюзами!
[B1] IFACE: Adding IPv4 address to ng0 failed: File exists
[B1] IFACE: IfaceChangeAddr() error, closing IPCP
[B1] IPCP: parameter negotiation failed
[B1] IPCP: state change Opened --> Stopping
[B1] IPCP: SendTerminateReq #4
[B1] IPCP: LayerDown
[B1] IPCP: rec'd Terminate Ack #4 (Stopping)
[B1] IPCP: state change Stopping --> Stopped
[B1] IPCP: LayerFinishЧто делать?
Пробовал даже через ppp http://opennet.ru/openforum/vsluhforumID1/83103.html
тоже самое... фря не пропускает линки с одинаковыми шлюзами!!!
Выкладываю конфиги:
Конфиг ppp.confdefault:
set log Phase tun command # you can add more detailed logging if you wish
set device PPPoE:rl1 # replace xl1 with your Ethernet device
set dial
set login
set mru 1492
set mtu 1492
set speed sync
set timeout 0
set redial 0 0
set reconnect 3 0
disable ipv6cp
uplink1:
set ifaddr 10.0.0.3/0 10.0.0.4/0 255.255.255.255 0.0.0.0
set authname login1
set authkey pass1
uplink2:
set ifaddr 10.0.0.5/0 10.0.0.6/0 255.255.255.255 0.0.0.0
set authname login2
set authkey pass2Конфиг mpd.conf
startup:
#configure mpd users
#set user vpngod 12345 admin
# configure the console
set console self 127.0.0.1 5005
set console open
# configure the web server
#set web self 192.168.0.5 5006
#set web open
#set netflow peer 127.0.0.1 9996default:
load pppoe_l1
load pppoe_l2pppoe_l1:
create bundle static B1
set iface enable nat
set iface route default
set ipcp ranges 0.0.0.0/0 0.0.0.0/0create link static L1 pppoe
set link action bundle B1
set auth authname login1
set auth password pass1
set link max-redial 0
set link mtu 1492
set link keep-alive 10 60
set pppoe iface rl1
set pppoe service ""
openpppoe_l2:
create bundle static B2
set iface enable nat
#set iface route default
set ipcp ranges 0.0.0.0/0 0.0.0.0/0create link static L2 pppoe
set link action bundle B2
set auth authname login2
set auth password pass2
set link max-redial 0
set link mtu 1492
set link keep-alive 10 60
set pppoe iface rl0
set pppoe service ""
open
Неужели никто не знает как побороть эту проблему?
Проблема ещё актуальна, как её решить? Подскажите, пожалуйста!
>Проблема ещё актуальна, как её решить? Подскажите, пожалуйста!freebsd 7.x + setfib
>>Проблема ещё актуальна, как её решить? Подскажите, пожалуйста!
>
>freebsd 7.x + setfibПроблема в том что при подключении через PPPoE к провайдеру выдаеться динамический IP и может быть разный шлюз, как передавать эти параметры от ppp демона для setfib для обновления таблиц маршрутизации?
>Проблема в том что при подключении через PPPoE к провайдеру выдаеться динамический
>IP и может быть разный шлюз, как передавать эти параметры от
>ppp демона для setfib для обновления таблиц маршрутизации?вот к примеру мой скрипт
set iface up-script "/usr/local/etc/mpd5/up.sh"
#!/bin/sh
if [ "$1" = "ng0" ]
then
/sbin/ipfw nat 1 delete
/sbin/ipfw nat 1 config if $1 same_ports
fi
if [ "$1" = "ng1" ]
then
/usr/sbin/setfib -1 /sbin/route delete default
/usr/sbin/setfib -1 /sbin/route add default $4/sbin/ipfw nat 2 delete
/sbin/ipfw nat 2 config if $1 same_ports
fi
exit 0
Все получилось! Спасибо grayich за скрипт!
Теперь занимаюсь другой проблемой http://www.opennet.me/openforum/vsluhforumID1/87949.html
>Все получилось! Спасибо grayich за скрипт!
>Теперь занимаюсь другой проблемой http://www.opennet.me/openforum/vsluhforumID1/87949.htmlможете выложить netstat -rn после поднятия первого интерфейса и после второго.
у моего провайдера два шлюза, два pppoe подключаются, третье не хочет[L2] PPPoE connection timeout after 9 seconds