Проблема с повторным подключение VPN.

Вопросы и пожелания создателю
Ответить
Alex_K
Сообщения: 16
Зарегистрирован: Чт мар 29, 2007 9:26 am
Контактная информация:

Проблема с повторным подключение VPN.

Сообщение Alex_K »

Короче проблемка такая после того как один раз зацепился на сервер то второй раз уже не пускает. Пишет "Подключение было закрыто удаленным компьютером". Вот что пишет в логах "ppp"

Warning: iface add: ioctl(SIOCAIFADDR, xx.xx.xx.xx -> 10.10.10.237): File exists
Apr 22 08:47:05 atp ppp[1013]: tun0: Error: ipcp_InterfaceUp: unable to set ip address
Apr 22 08:47:05 atp ppp[1013]: tun0: IPCP: deflink: LayerDown: 85.159.25.114
Apr 22 08:47:05 atp ppp[1013]: tun0: Command: MYADDR: !bg /usr/local/abills/libexec/linkupdown down INTERFACE USER HISADDR
Apr 22 08:47:05 atp ppp[1013]: tun0: IPCP: deflink: SendTerminateReq(3) state = Opened
Apr 22 08:47:05 atp ppp[1013]: tun0: IPCP: deflink: State change Opened --> Closing
Apr 22 08:47:05 atp ppp[1013]: tun0: LCP: deflink: SendIdent(9) state = Opened
Apr 22 08:47:05 atp ppp[1013]: tun0: LCP: MAGICNUM 13a6d16f
Apr 22 08:47:05 atp ppp[1013]: tun0: LCP: TEXT user-ppp 3.1 (built Apr 22 2008)
Apr 22 08:47:06 atp ppp[1013]: tun0: Warning: ipv4_Input: IPCP not open - packet dropped
Apr 22 08:47:08 atp ppp[1013]: tun0: IPCP: deflink: SendTerminateReq(3) state = Closing
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: deflink: read (0): Got zero bytes
Apr 22 08:47:09 atp ppp[1013]: tun0: CCP: deflink: State change Req-Sent --> Starting
Apr 22 08:47:09 atp ppp[1013]: tun0: CCP: deflink: LayerFinish.
Apr 22 08:47:09 atp ppp[1013]: tun0: CCP: deflink: State change Starting --> Initial
Apr 22 08:47:09 atp ppp[1013]: tun0: LCP: deflink: LayerDown
Apr 22 08:47:09 atp ppp[1013]: tun0: LCP: deflink: State change Opened --> Starting
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: deflink: open -> lcp
Apr 22 08:47:09 atp ppp[1013]: tun0: IPCP: deflink: LayerFinish.
Apr 22 08:47:09 atp ppp[1013]: tun0: IPCP: Connect time: 14 secs: 0 octets in, 0 octets out, Local: 0 0
Apr 22 08:47:09 atp ppp[1013]: tun0: IPCP: 0 packets in, 0 packets out
Apr 22 08:47:09 atp ppp[1013]: tun0: IPCP: total 0 bytes/sec, peak 0 bytes/sec on Tue Apr 22 08:46:55 2008
Apr 22 08:47:09 atp ppp[1013]: tun0: IPCP: deflink: State change Closing --> Initial
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: bundle: Terminate
Apr 22 08:47:09 atp ppp[1013]: tun0: LCP: deflink: LayerFinish
Apr 22 08:47:09 atp ppp[1013]: tun0: LCP: deflink: State change Starting --> Initial
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: deflink: Disconnected!
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: deflink: Connect time: 21 secs: 885 octets in, 1384 octets out, Local: 0 0
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: deflink: 16 packets in, 35 packets out
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: total 108 bytes/sec, peak 207 bytes/sec on Tue Apr 22 08:46:56 2008
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: deflink: lcp -> closed
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: bundle: Dead
Apr 22 08:47:09 atp ppp[1013]: tun0: Phase: PPP Terminated (normal).

reaper
Сообщения: 18
Зарегистрирован: Вс янв 30, 2005 7:48 am
Откуда: Ярославль
Контактная информация:

Сообщение reaper »

решение есть? такая хрень на FreeBSD 7.0

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

Два раза выдаёт тотже адрес

reaper
Сообщения: 18
Зарегистрирован: Вс янв 30, 2005 7:48 am
Откуда: Ярославль
Контактная информация:

Сообщение reaper »

проблема в том, что остается маршрут на ип пользователя при отключении, поборол пока так
в ppp.linkup

Код: Выделить всё

MYADDR:
  !bg route delete HISADDR
  !bg route add HISADDR -iface INTERFACE
в ppp.linkdown

Код: Выделить всё

MYADDR:
  !bg route delete HISADDR

antony
Сообщения: 134
Зарегистрирован: Чт окт 05, 2006 6:28 am

Сообщение antony »

Сейчас наблюдается такой вот странный глюк:

Код: Выделить всё

netstat -anr
 
11.100.1.194       11.100.1.5         UGH         0        0   tun0
11.100.1.238       11.100.1.5         UGH         0       18   tun0
ppp добавляет два разных маршрута которые идут на один интерфейст tun0

Код: Выделить всё

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1458
        inet 11.100.1.5 --> 11.100.1.238 netmask 0xffffff00
        Opened by PID 5004
tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1458
        inet 11.100.1.5 --> 11.100.1.194 netmask 0xffffff00
        Opened by PID 5013
Но поднято два интерфейса tun0 и tun1. В логах все шеколадно. Кто первый законектился тот и работает. Пытался в ручную дописать в ppp.linkup не выходит.
Я так понимаю сама строчка
!bg /usr/abills/libexec/linkupdown up INTERFACE USER HISADDR
маршруты не прописывает.

Как же заставить ppp добавлять маршрут вида

route add 11.100.1.194 11.100.1.5 через tun1

Кстати пробовал с консоли такое сделать не выходит

route add 11.100.1.194 11.100.1.5 -iface tun1
пишет route: bad address: tun1


FreeBSD abills 7.0-RELEASE-p1 FreeBSD 7.0-RELEASE-p1

reaper
Сообщения: 18
Зарегистрирован: Вс янв 30, 2005 7:48 am
Откуда: Ярославль
Контактная информация:

Сообщение reaper »

antony писал(а):route add 11.100.1.194 11.100.1.5 через tun1

Кстати пробовал с консоли такое сделать не выходит

route add 11.100.1.194 11.100.1.5 -iface tun1
пишет route: bad address: tun1
man route

route add 11.100.1.5 -iface tun1

antony
Сообщения: 134
Зарегистрирован: Чт окт 05, 2006 6:28 am

Сообщение antony »

reaper писал(а):
antony писал(а):route add 11.100.1.194 11.100.1.5 через tun1

Кстати пробовал с консоли такое сделать не выходит

route add 11.100.1.194 11.100.1.5 -iface tun1
пишет route: bad address: tun1
man route

route add 11.100.1.5 -iface tun1
11.100.1.5 это шлюз.

А мне нужно
route add -host 11.100.1.194 на 11.100.1.5 через tun0
route add -host 11.100.1.195 на 11.100.1.5 через tun1

Только вот непонятно, почему ppp подымает сам маршрут (2 штуки) только на tun0, хоть должен на tun0 для одного, на tun1 для другого.


Код: Выделить всё

pptp:
  set ifaddr 11.100.1.5 11.100.1.10-249 255.255.255.0
  set mtu 1460
  set mru 1460
  allow mode direct
  enable lqr
  set timeout 6000
  disable acfcomp protocomp
  deny acfcomp
  enable MSChapV2
  accept dns
  enable dns
  set server 3000 passwd
  set radius /etc/radius.conf
  set rad_service_type 11
  set rad_alive 30
  set accmap ffffffff
  connections 1000


antony
Сообщения: 134
Зарегистрирован: Чт окт 05, 2006 6:28 am

Сообщение antony »

Сделал так в линкап

Код: Выделить всё

    !bg sh -c "route delete HISADDR"
    !bg sh -c "route add -host HISADDR 11.100.1.5 -ifp INTERFACE"
    !bg /usr/abills/libexec/linkupdown up INTERFACE USER HISADDR
Работает, но не уверен все правильности данного метода. Понять бы почему сам ppp неверно указывает маршрут на первый tun0 для всех остальных тунелей.

antony
Сообщения: 134
Зарегистрирован: Чт окт 05, 2006 6:28 am

Сообщение antony »

Проблема иногда выскакивает, непонятно почему такое получается.

antony
Сообщения: 134
Зарегистрирован: Чт окт 05, 2006 6:28 am

Сообщение antony »

Ниукого большей такой проблемы не было?
У меня все чаше появляется. Траблы с маршрутизацией через тунели.

antony
Сообщения: 134
Зарегистрирован: Чт окт 05, 2006 6:28 am

Сообщение antony »

Налабал скриптец, запуск каждую минуту, основная часть с billd

Проверяет ifconfig и netstat -anr, если у клиента оказывается несоответсвие с ifconfig, удаляем маршурт и прописываем заново c нужным тунелем.


Написал за 10 минут, так что не пинайте за кривизну :))

Код: Выделить всё

#!/usr/bin/perl -w


 open (IFC, "/sbin/ifconfig |") || die "Can't open file  $!";
    while (my $l = <IFC>) {
      $ifconfig .= $l;
     }
  close(IFC);

  while($ifconfig =~ /tun(\d+): (.+\n\s.+[\n\s.]+[\n\sa-zA-Z0-9]+\n)/gi) {
    my $tunnum = $1;
    my $res    = $2;

    my $pid    = 0;
    my $addr   = '0.0.0.0';

    my @ifs = split(/\n/, $res);

    foreach my $line (@ifs) {
      if ($line =~ /^(\d+)/) {
         $tunnum=$1;
        }
      elsif ($line =~ m/\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3} --> (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})/g) {
         $addr = $1;
        }
      elsif ($line =~ /PID (\d+)/gi) {
         $pid = $1;
       }
     }

    if ($addr eq '0.0.0.0') {
      next;
     }
    else {
#    print "$addr $pid tun$tunnum -> ";
    $addr_=`netstat -anr | grep 11.100.1.5 | grep UGHS |grep $addr | awk '{print(\$1,\$6)}'`;
    ($net_ip,$net_tun)=split(" ",$addr_);
    $tun="tun$tunnum";
    print "if $addr -> route $net_ip, $tun = $net_tun ?! \n";
    if($tun ne $net_tun)
    {

    $a= "To: мыло-куда-отпраить-увидомление\@блабла.ру\n";
    $a.="From: abills\n";
    $a.="Subject: SHIT! if $addr -> route $net_ip, $tun = $net_tun ?! \n";
    $a.="

    ";
    $a.="if $addr -> route $net_ip, $tun = $net_tun ?! \n";
    $a.="route delete $addr; route add -host $addr 11.100.1.5 -ifp $tun \n";
    $a.=`route delete $addr; route add -host $addr 11.100.1.5 -ifp $tun`;
    open(MAIL, "|/usr/sbin/sendmail -t");
    print MAIL $a ;
    }

    }
   }


SamJan
Сообщения: 6
Зарегистрирован: Чт сен 04, 2008 9:50 am

Сообщение SamJan »

Все один в один тоже самое творится у меня...
А почему молчит Асмодеус.

Дык в дополнение у меня иногда правила шейпера не прописывабтся. Вот и получается что кому то торт побольше подпадает...

Не знаю даже где копать

antony
Сообщения: 134
Зарегистрирован: Чт окт 05, 2006 6:28 am

Re: Проблема с повторным подключение VPN.

Сообщение antony »

где-то читал что это проблема 7-ки.
на днях планируют поднять серв с новым релизом, посмотрю как там с этим делом.

Ответить