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

Исходное сообщение
"Как убрать старые адреса с tun интерфейса?"

Отправлено adsh , 08-Май-07 13:06 
Привет всем. Столкнулся с такой проблемой. Используется 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 ?


Содержание

Сообщения в этом обсуждении
"Как убрать старые адреса с tun интерфейса?"
Отправлено DN , 08-Май-07 15:53 
>Привет всем. Столкнулся с такой проблемой. Используется 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 .


"Как убрать старые адреса с tun интерфейса?"
Отправлено Mxlife , 08-Май-07 16:12 
Офтоп.
Если не трудна выложи свои ppp.conf и rc.conf
пытаюсь тоже настроить freebsd + adsl


"Как убрать старые адреса с tun интерфейса?"
Отправлено Alexander Sheiko , 08-Май-07 21:19 
В общем - разобрался я. Команду на удаление битого интерфейса нуно вставлять не в 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 HISADDR

   nat 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"

"Как убрать старые адреса с tun интерфейса?"
Отправлено universite , 10-Янв-08 05:45 

>Поскольку PPPoE серверов может быть несколько и выбираются они в случайном порядке,
>велика вероятность последующего коненкта на другой сервер. При этом ppp считает,
>что старый адрес (привязанный к старому PPPoE серверу) удалять нельзя и
>плодит битые линки по числу PPPoE серверов :(.

У Укртелекома сессии подвисают. Надо играться с опциями ppp.conf


"Как убрать старые адреса с tun интерфейса?"
Отправлено Alexander Sheiko , 08-Май-07 21:22 
Пример лога 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