Проблема с настройкой...

Help
Maxim
2012-10-12
2013-03-27
  • Maxim
    Maxim
    2012-10-12

    Есть тестовый сервер на нем freebsd9.0+mpd5.6+freeradius-1.1.8_5 . Клиент подымает pppoe, инет есть. Проблема в том, что если некорректно разорвать линк (вытянуть кабель и вставить обратно) и после этого через секунд 30 попробовать соединится, то все снова пройдет успешно и для этого же ip создается следующий по номеру тунель

    ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
        inet xxx.xxx.xxx.xxx --> 10.250.11.1 netmask 0xffffffff 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
        inet xxx.xxx.xxx.xxx --> 10.250.11.1 netmask 0xffffffff 
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    

    Хотя поидее должно выдать клиенту ошибку 629 и не пропускать его пока не потушится старый тунель.
    Заметил что на работающем сервере с freebsd7.3+mpd5.5+freeradius-1.1.8 в каталоге /dev есть симлинки на /dev/net/ в котором лежат файлы всех тунелей, а на тестовом нету даже каталога /dev/net/.
    Как это побороть?
    Вот конфиг mpd

    default:
    <------>load pppoe_server
    <------>load pptp_server
    pppoe_server:
    # Multihomed multilink PPPoE server
    # Create clonable bundle template
    <------>create bundle template B
    <------>
    # Up, Down user link scripts<--><------>
    <------>#set iface up-script /usr/local/etc/mpd5/mpd.linkup
    <------>#set iface down-script /usr/local/etc/mpd5/mpd.linkdown>
    <------>
    <------>set iface up-script /usr/home/hstat/bin2/vpnup.php
    <------>set iface down-script /usr/home/hstat/bin2/vpndown.php<>
    <------>set bundle disable compression
    <------>set bundle disable encryption
    <------>set iface disable proxy-arp
    <------>set iface enable tcpmssfix
    <------>set iface mtu 1460
    # Set IP addresses. Peer address will be later replaced by RADIUS.
    <------>set ipcp ranges xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
    <------>set ipcp dns xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
    <------>log -echo -radius -rep
    # Create link template with common info
    <------>create link template common pppoe
    # Enable multilink protocol
    <------>set link enable multilink
    # Set bundle template to use
    <------>set link action bundle B
    <------>set link disable chap pap eap
    <------>set link enable chap-msv1 chap-msv2 chap-md5
    <------>set link keep-alive 10 60
    <------>set link mtu 1460
    <------>set link mru 1460
    <------>set link max-redial -1
    <------>load radius
    <------>set pppoe service ""
    # Create templates for ifaces to listen using 'common' template and let them go
    <------>create link template em0 common
    <------>set link max-children 1000
    <------>set pppoe iface em0
    <------>set link enable incoming
    

    и ядро

    options><------>IPFIREWALL
    options><------>IPFIREWALL_VERBOSE
    options><------>IPFIREWALL_VERBOSE_LIMIT=100
    options><------>IPFIREWALL_FORWARD
    options><------>IPDIVERT
    options><------>DUMMYNET
    options><------>IPFIREWALL_NAT
    options><------>NETGRAPH
    options><------>NETGRAPH_PPPOE
    options><------>NETGRAPH_SOCKET
    options><------>NETGRAPH_ETHER
    options><------>NETGRAPH_IPFW
    options><------>LIBALIAS
    options><------>NETGRAPH_NAT
    options><------>NETGRAPH_NETFLOW
    options><------>NETGRAPH_SPLIT
    options><------>NETGRAPH_ECHO
    options><------>NETGRAPH_TEE
    options><------>NETGRAPH_IFACE
    options><------>NETGRAPH_KSOCKET
    options><------>NETGRAPH_MPPC_ENCRYPTION
    options><------>NETGRAPH_PPP
    options><------>NETGRAPH_PPTPGRE
    options><------>NETGRAPH_TCPMSS
    options><------>NETGRAPH_VJC
    options><------>NETGRAPH_BPF
    options><------>NETGRAPH_RFC1490
    options><------>NETGRAPH_TTY
    options><------>NETGRAPH_UI
    options><------>NETGRAPH_DEVICE
    options><------>ZERO_COPY_SOCKETS
    options        DEVICE_POLLING
    options        HZ=4000
    

    Подскажите где ошибка?

     
  • Старый тунель при данных настройках отпадет по таймауту через 60 секунд. Повторные заходы mpd сам не ограничивает. В этом случае это задача RADIUS.

     
  • Maxim
    Maxim
    2012-10-12

    Спасибо за направление, сейчас поковыряю радиус, хотя на рабочем сервере с такими же настройками радиуса все работает. На рабочем сервере при попытке повторного подключения в логе mpd пише

    Oct 12 17:27:43  mpd: [B-209]   xxx.xxx.xxx.xxxx -> 10.250.11.1
    Oct 12 17:27:43  mpd: [B-209] IFACE: Adding IPv4 address to ng207 failed: File exists
    Oct 12 17:27:43  mpd: [B-209] IFACE: IfaceChangeAddr() error, closing IPCP
    Oct 12 17:27:43  mpd: [B-209] IPCP: parameter negotiation failed
    
     
  • Тут mpd получил от системы ошибку из-за конфликта в таблице маршрутизации, Видимо что-то отличается в системе.

     
  • Я подозреваю, что ошибка может быть из-за слишком долгого выполнения скрипта vpndown.php.

     
  • Maxim
    Maxim
    2012-10-17

    Спасибо за помощь настроил в радиусе проверку, все заработало.