Необходимо использовать опцию "unit N", где N - номер ppp интерфейса.
Например, для привязки к ppp0:
/usr/sbin/pppd /dev/ttyS0 115200 noauth crtscts 192.168.1.245:192.168.1.246 local \
nodetach netmask 255.255.255.252 unit 0
URL:
Обсуждается: http://www.opennet.dev/tips/info/571.shtml
Под FreeBSD тоже работает?
>Под FreeBSD тоже работает?Раньше штатный pppd FreeBSD нужно было патчить.
Один из вариантов патча для FreeBSD 3.x:
ftp://hvv.svzserv.kemerovo.su/pub/unix/FreeBSD/patchesАдаптации патча для 4 и 5 веток я не встречал.
^^ а причем здесь FreeBSD? это же pppd :)
в options.ttySxunit x
где x - номер интерфейса pppx
>в options.ttySx
>
>unit x
>где x - номер интерфейса pppxэто для входящих соединений ч/з сериал, то бишь модемов обычно. в то время как опция pppd "unit" говорит какой номер итерфейса назначить исходящему соединению.
в свое время я ставил паузу на 3 секунды между запуском каждого pppd, тем самым добивался присвоения номеров интерфейсов по очередности без дальнейших телодвижений из-за переполоха с роутом на интерфейсах.
А как быть с присвоением номеров в pptpd? В конфигурации описан диапазон адресов. На каждого пользователя есть привязка к IP, но хочется привязать и интерфейсы (ppp10, ppp11)
http://www.opennet.dev/base/patch/pptpd_fix_int.txt.html
в /etc/ppp/ip-up дописать следующее:if [ $5 == "remote_ip_addr" ]
then
/sbin/ifconfig $1 down
/sbin/ip link set $1 name iface_name
/sbin/ifconfig iface_name up
fiгде remote_ip_addr -- ip адрес, установленный клиенту, iface_name -- имя интерфейса, которое хотим назначить, например kolya, wasya ...
P.S. этот метод требует установленного пакета iproute
А как зафиксировать номер PPP интерфейса при установке соединения по pppoe (ADSL Modem) командой adsl-start???? Я имею 3 модема к разным провам, IP статические, и хочу чтоб конкретный IP был на конкретном интерфейсе. А то получается так - кто раньше встал - того и тапки :))
да, я сделал ДЛЯ ПРОБЫ - так как ты написал - только теперь у меня возникли траблы с подсчетом трафика :Feb 13 07:05:20 router pppd[20922]: LCP terminated by peer (&b:M-W^@<M-Mt^@^@^@^@)
Feb 13 07:05:20 router pppd[20922]: Couldn't get PPP statistics: No such device
Feb 13 07:05:20 router pppd[20922]: Couldn't get PPP statistics: No such device
Feb 13 07:05:20 router pppd[20922]: ioctl (SIOCGIFFLAGS): No such device (line 2334)
Feb 13 07:05:20 router pppd[20922]: ioctl(SIOCSIFADDR): No such device (line 2492)
Feb 13 07:05:20 router pppd[20922]: Script /etc/ppp/ip-down started (pid 21237)
Feb 13 07:05:20 router pppd[20922]: sent [LCP TermAck id=0x7]
Feb 13 07:05:20 router pppd[20922]: Script /etc/ppp/ip-down finished (pid 21237), status = 0x0
Feb 13 07:05:20 router pppoe-server[2773]: Sent PADT
Feb 13 07:05:20 router pppd[20922]: Terminating on signal 15
Feb 13 07:05:23 router pppd[20922]: Connection terminated.
Feb 13 07:05:23 router pppd[20922]: Modem hangup
да, я сделал ДЛЯ ПРОБЫ - так как ты написал - только теперь у меня возникли траблы с подсчетом трафика :Feb 13 07:05:20 router pppd[20922]: LCP terminated by peer (&b:M-W^@<M-Mt^@^@^@^@)
Feb 13 07:05:20 router pppd[20922]: Couldn't get PPP statistics: No such device
Feb 13 07:05:20 router pppd[20922]: Couldn't get PPP statistics: No such device
Feb 13 07:05:20 router pppd[20922]: ioctl (SIOCGIFFLAGS): No such device (line 2334)
Feb 13 07:05:20 router pppd[20922]: ioctl(SIOCSIFADDR): No such device (line 2492)
Feb 13 07:05:20 router pppd[20922]: Script /etc/ppp/ip-down started (pid 21237)
Feb 13 07:05:20 router pppd[20922]: sent [LCP TermAck id=0x7]
Feb 13 07:05:20 router pppd[20922]: Script /etc/ppp/ip-down finished (pid 21237), status = 0x0
Feb 13 07:05:20 router pppoe-server[2773]: Sent PADT
Feb 13 07:05:20 router pppd[20922]: Terminating on signal 15
Feb 13 07:05:23 router pppd[20922]: Connection terminated.
Feb 13 07:05:23 router pppd[20922]: Modem hangup
Я напримаер так придумал:
после старта системы скрипт запускается
#на всякий пожарный, так как у меня еще poptop
#стоит, вдруг ктото вклиниться успел
killall pppd#ждем пока все ppp не отваляться
ip link|grep -q ppp
while [ $? -eq ]
do
ip link|grep -q ppp
done#теперь в нужной последовательности коннектим
pppd call dsl1
#и ждем его прихода
ip link show dev ppp0 >> /dev/null
while [ ! $? ]
do
ip link show dev ppp0 >> /dev/null
done#следующий
pppd call dsl1
#и ждем его прихода
ip link show dev ppp1 >> /dev/null
while [ ! $? ]
do
ip link show dev ppp1 >> /dev/null
doneтолько вот линки должны быть persistent, а то если один из интерфейсов не появиться, то дальше понятно что будет....
Так IMHO, красивше будет :)
http://zft.crimeainfo.com/
NEWNAME="ppp-$PEERNAME"
[ -z "$PEERNAME" ] && NEWNAME="$1"if [ -x /sbin/ip ]; then
/sbin/ip link set $1 down
/sbin/ip link set $1 name $NEWNAME
/sbin/ip link set $NEWNAME up
fi
а если возникает следующая проблема: например отвалился vpn по причине потери сознания сервера у провайдера, а комне удаленные клиенты подключились и присоседились на ppp0 (коим должен быть инет). Как мне ограничить входящие подключения по VPN на ppp>=1 ?
Аналогично итересен этот момент...
присоеденяюсь к SVLD и DemoN
Мне тоже интересно возможно ли ето??
user xxxxxxxxx.ukrtel.netpty "/usr/sbin/pppoe -I eth0 -T 80 -m 1250 "
noipdefault
#ВОТ ЭТА ХРЕНЬ МЕНЯЕТ /etc/resolv.conf
#usepeerdnsdefaultroute
#defaultroutehide-password
lcp-echo-interval 5
lcp-echo-failure 9
connect /bin/true
noauth
persist
maxfail 90000000
#mtu 1492
mtu 1250
noaccomp
default-asyncmap
#А вот юнит это и есть жесткая привязка pppx к ADSL соединениюunit 3
>Необходимо использовать опцию "unit N", где N - номер ppp интерфейса.
>Например, для привязки к ppp0:
> /usr/sbin/pppd /dev/ttyS0 115200 noauth crtscts 192.168.1.245:192.168.1.246 local \
> nodetach netmask 255.255.255.252 unit 0
>
>
>URL:
>Обсуждается: http://www.opennet.dev/tips/info/571.shtmlхочу заметить, что:
1) на смену имени интерфейса ч/з iproute pppd кладет и в скриптах ip-down видим старое имя интерфейса.
2) привязка ip к имени интерфейса абсолютна не нужна для практических целей
3) НУ не назначайте unit 0 для интерфейса провайдера, если у вас есть входящие ppp соединения. дайте ему unit 1000 или больше (по количеству клиентов) и пусть входящие соединения используют себе низкие номера интерфейсов на здоровье.