Привет всем. Столкнулся с такой проблемой. Используется FreeBSD 6.2 со штатным PPP для подключения через PPPoE. Провайдер меняет адрес раз в сутки. PPP производит реконнект, появляется новый адрес, но и старый не удаляется:tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
inet LOCAL_ADDR --> PEER_ADDR netmask 0xff000000
inet LOCAL_ADDR_OLD --> PEER_ADDR_OLD netmask 0xff000000
Opened by PID 4714Роут меняется на новый адрес, но некоторые программы (noip2 клиент) этого не замечают. Как автоматически удалять inet LOCAL_ADDR_OLD --> PEER_ADDR_OLD netmask 0xff000000 ?
>Привет всем. Столкнулся с такой проблемой. Используется FreeBSD 6.2 со штатным PPP
>для подключения через PPPoE. Провайдер меняет адрес раз в сутки. PPP
>производит реконнект, появляется новый адрес, но и старый не удаляется:
>
>tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
> inet LOCAL_ADDR --> PEER_ADDR netmask 0xff000000
> inet LOCAL_ADDR_OLD --> PEER_ADDR_OLD netmask 0xff000000
> Opened by PID 4714
>
>
>Роут меняется на новый адрес, но некоторые программы (noip2 клиент) этого не замечают. Как автоматически удалять inet LOCAL_ADDR_OLD --> PEER_ADDR_OLD netmask 0xff000000 ?В /etc/ppp/ppp.linkdown надо прописать , что-то типа
link-in:
iface delete ...Глянь более подробно man ppp и примеры ( /usr/share/examples/ppp )
в отношении команды iface или set ifaddr .
Офтоп.
Если не трудна выложи свои ppp.conf и rc.conf
пытаюсь тоже настроить freebsd + adsl
В общем - разобрался я. Команду на удаление битого интерфейса нуно вставлять не в ppp.linkdown, а в ppp.linkup. Логическая ошибка содержится даже в:http://people.fluidsignal.com/~luferbu/hurd/um-pppd-0.200108...
Читаем man ppp:
iface clear [INET | INET6]
If this command is used while ppp is in the OPENED state or while
in -auto mode, all addresses except for the NCP negotiated
address are deleted from the interface. If ppp is not in the
OPENED state and is not in -auto mode, all interface addresses
are deleted.If the INET or INET6 arguments are used, only addresses for that
address family are cleared.===> all addresses except for the NCP negotiated address are deleted from the interface
Поскольку PPPoE серверов может быть несколько и выбираются они в случайном порядке, велика вероятность последующего коненкта на другой сервер. При этом ppp считает, что старый адрес (привязанный к старому PPPoE серверу) удалять нельзя и плодит битые линки по числу PPPoE серверов :(.
Если же выполнить эту команду при выполнении соединения - все левые линки удалятся, а текущий не затронется.
Теперь выкладываю отработанные конфиги под FreeBSD 6.2.
ppp.conf:
default:Ukrtelecom:
set log Phase tun command
set device PPPoE:rl1
set authname kv_xxxxx@dsl.ukrtel.net
set authkey xxxxx
set mru 1492
set mtu 1492
enable lqr
set lqrperiod 10
enable lqr echo
enable echo
set dial
set login
set timeout 0
set redial 60 0
add default HISADDRnat enable yes
nat log yes
nat same_ports yes
nat use_sockets yes
nat unregistered_only yes
nat deny_incoming no
nat port tcp 192.168.0.1:80 80
nat port tcp 192.168.0.1:22 22
nat port tcp 192.168.0.2:55555 55555
nat port udp 192.168.0.2:55555 55555На локальную машину натится torrent трафик, на роутере поднят SSH и Apache, доступные из инета.
ppp.linkup:
Ukrtelecom:
iface clear
!bg /usr/bin/logger -t PPP "Connection to Ukrtelecom established"ppp.linkdown:
Ukrtelecom:
!bg /usr/bin/logger -t PPP "Connection to Ukrtelecom destroyed"rc.conf:
ppp_enable="YES"
ppp_profile="Ukrtelecom"
ppp_mode="ddial"
ppp_user="root"
ppp_nat="YES"
>Поскольку PPPoE серверов может быть несколько и выбираются они в случайном порядке,
>велика вероятность последующего коненкта на другой сервер. При этом ppp считает,
>что старый адрес (привязанный к старому PPPoE серверу) удалять нельзя и
>плодит битые линки по числу PPPoE серверов :(.У Укртелекома сессии подвисают. Надо играться с опциями ppp.conf
Пример лога ppp, при нормальном коннекте:
May 8 19:58:29 Launcher ppp[73373]: tun0: Phase: deflink: Connected!
May 8 19:58:29 Launcher ppp[73373]: tun0: Phase: deflink: opening -> dial
May 8 19:58:29 Launcher ppp[73373]: tun0: Phase: deflink: dial -> carrier
May 8 19:58:34 Launcher ppp[73373]: tun0: Phase: deflink: Disconnected!
May 8 19:58:34 Launcher ppp[73373]: tun0: Phase: deflink: carrier -> hangup
May 8 19:58:34 Launcher ppp[73373]: tun0: Phase: deflink: Connect time: 5 secs: 0 octets in, 0 octets out
May 8 19:58:34 Launcher ppp[73373]: tun0: Phase: deflink: 213 packets in, 187 packets out
May 8 19:58:34 Launcher ppp[73373]: tun0: Phase: total 0 bytes/sec, peak 0 bytes/sec on Tue May 8 19:58:29 2007
May 8 19:58:34 Launcher ppp[73373]: tun0: Phase: deflink: hangup -> opening
May 8 19:58:34 Launcher ppp[73373]: tun0: Phase: deflink: Enter pause (60) for redialing.
May 8 19:59:34 Launcher ppp[73373]: tun0: Phase: deflink: Connected!
May 8 19:59:34 Launcher ppp[73373]: tun0: Phase: deflink: opening -> dial
May 8 19:59:34 Launcher ppp[73373]: tun0: Phase: deflink: dial -> carrier
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: Received NGM_PPPOE_ACNAME (hook "BRAS-1-246")
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: Received NGM_PPPOE_SESSIONID
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: Received NGM_PPPOE_SUCCESS
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: deflink: carrier -> login
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: deflink: login -> lcp
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: bundle: Authenticate
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: deflink: his = PAP, mine = none
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: Pap Output: kv_xxxx@dsl.ukrtel.net ********
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: Pap Input: SUCCESS ()
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: deflink: lcp -> open
May 8 19:59:35 Launcher ppp[73373]: tun0: Phase: bundle: Network
May 8 19:59:35 Launcher ppp[73373]: tun0: Command: Ukrtelecom: iface clear
May 8 19:59:35 Launcher ppp[73373]: tun0: Command: Ukrtelecom: !bg /usr/bin/logger -t PPP Connection to Ukrtelecom established