johny87

FreeBSD ng0 loopback

47 сообщений в этой теме

uname -a :

FreeBSD 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255898: Thu Sep 26 22:50:31 UTC 2013 root@bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64

mpd5 -v

Version 5.7

 

 

подключаю mpd5 :

ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1400

inet 89.179.74.77 --> 78.107.38.7 netmask 0xffffffff

nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

 

 

Лог mpd5 :

Multi-link PPP daemon for FreeBSD

 

process 56174 started, version 5.7 (******* 01:29 19-Oct-2013)

Label 'startup' not found

[L2TP] Bundle: Interface ng0 created

[L2] [L2] Link: OPEN event

[L2] LCP: Open event

[L2] LCP: state change Initial --> Starting

[L2] LCP: LayerStart

L2TP: Initiating control connection 0x802bf6910 0.0.0.0 0 <-> 78.107.38.7 1701

L2TP: Control connection 0x802bf6910 10.165.96.106 65124 <-> 78.107.38.7 1701 connected

[L2] L2TP: Incoming call #6240000 via control connection 0x802bf6910 initiated

[L2] L2TP: Call #6240000 connected

[L2] Link: UP event

[L2] LCP: Up event

[L2] LCP: state change Starting --> Req-Sent

[L2] LCP: SendConfigReq #1

[L2] ACFCOMP

[L2] PROTOCOMP

[L2] MRU 1500

[L2] MAGICNUM 0c4849bc

[L2] LCP: rec'd Configure Request #157 (Req-Sent)

[L2] MRU 1456

[L2] AUTHPROTO CHAP MD5

[L2] MAGICNUM 580805ad

[L2] LCP: SendConfigAck #157

[L2] MRU 1456

[L2] AUTHPROTO CHAP MD5

[L2] MAGICNUM 580805ad

[L2] LCP: state change Req-Sent --> Ack-Sent

[L2] LCP: rec'd Configure Reject #1 (Ack-Sent)

[L2] ACFCOMP

[L2] PROTOCOMP

[L2] LCP: SendConfigReq #2

[L2] MRU 1500

[L2] MAGICNUM 0c4849bc

[L2] LCP: rec'd Configure Ack #2 (Ack-Sent)

[L2] MRU 1500

[L2] MAGICNUM 0c4849bc

[L2] LCP: state change Ack-Sent --> Opened

[L2] LCP: auth: peer wants CHAP, I want nothing

[L2] LCP: LayerUp

[L2] CHAP: rec'd CHALLENGE #1 len: 33

[L2] Name: "bras255.perm"

[L2] CHAP: Using authname "*********"

[L2] CHAP: sending RESPONSE #1 len: 31

[L2] CHAP: rec'd SUCCESS #1 len: 42

[L2] MESG: CHAP authentication success, unit 1400

[L2] LCP: authorization successful

[L2] Link: Matched action 'bundle "L2TP" ""'

[L2] Link: Join bundle "L2TP"

[L2TP] Bundle: Status update: up 1 link, total bandwidth 64000 bps

[L2TP] IPCP: Open event

[L2TP] IPCP: state change Initial --> Starting

[L2TP] IPCP: LayerStart

[L2TP] IPCP: Up event

[L2TP] IPCP: state change Starting --> Req-Sent

[L2TP] IPCP: SendConfigReq #1

[L2TP] IPADDR 192.168.10.1

[L2TP] IPCP: rec'd Configure Request #155 (Req-Sent)

[L2TP] IPADDR 78.107.38.7

[L2TP] 78.107.38.7 is OK

[L2TP] IPCP: SendConfigAck #155

[L2TP] IPADDR 78.107.38.7

[L2TP] IPCP: state change Req-Sent --> Ack-Sent

[L2TP] IPCP: rec'd Configure Nak #1 (Ack-Sent)

[L2TP] IPADDR 89.179.74.77

[L2TP] 89.179.74.77 is OK

[L2TP] IPCP: SendConfigReq #2

[L2TP] IPADDR 89.179.74.77

[L2TP] IPCP: rec'd Configure Ack #2 (Ack-Sent)

[L2TP] IPADDR 89.179.74.77

[L2TP] IPCP: state change Ack-Sent --> Opened

[L2TP] IPCP: LayerUp

[L2TP] 89.179.74.77 -> 78.107.38.7

[L2TP] IFACE: Up event

 

startup:

log +ALL -EVENTS -FRAME

 

default:

load l2tp_corbina

 

l2tp_corbina:

create bundle static L2TP

set ipcp no vjcomp

set iface idle 0

set iface enable nat

set iface enable tcpmssfix

set iface up-script /usr/local/etc/mpd5/up.sh

set iface down-script /usr/local/etc/mpd5/down.sh

create link static L2 l2tp

set link action bundle L2TP

set link mtu 1400

set link latency 0

set link max-redial 0

set link redial-delay 60

set link accept chap

set link keep-alive 10 75

set l2tp peer tp.internet.beeline.ru

set auth authname

set auth password

open

 

up.sh

#!/bin/sh

gw=`netstat -rn | awk '$1=="default"{print $2}'`

route delete $4

route add $4 $gw

route delete default

route add $8 $gw

route add default $4

echo $4 > /tmp/mpd_dr

echo $gw > /tmp/mpd_gw

sleep 20

 

down.sh

#!/bin/sh

dr=`cat /tmp/mpd_dr`

gw=`cat /tmp/mpd_gw`

route delete $dr

route delete default

route add default $gw

rm -f /tmp/mpd_dr

rm -f /tmp/mpd_gw

 

Пишет loop on ng0 и интернет не работает.

Редактировано пользователем johny87
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Логично, что шлюзом для vpn-тоннеля будет именно vpn-сервер...

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему тогда постоянно пишет ng0 loop detected и интернет не работает даже со включенными скриптами ?

 

Все делал по инструкции с форума, все равно не работает...

Oct 19 16:18:00 server kernel: Loop detected on ng0
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почему тогда постоянно пишет ng0 loop detected и интернет не работает даже со включенными скриптами ?

 

Все делал по инструкции с форума, все равно не работает...

Oct 19 16:18:00 server kernel: Loop detected on ng0

Это давно известная проблема с "намертво пришитыми пуговицами".

 

FreeLSD'ешники пишут что что назначение одного и того же адреса

для внутренностей и внешностей туннеля напрочь неправильно.

См. pr во FreeLSD

 

А пчеловоды в ус не дуют, так как "в форточках всё работает".

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У других ведь работает на FreeBSD. Почему у меня нет ?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У других ведь работает на FreeBSD. Почему у меня нет ?

Судя по отсутствию ответов на ваше сообщение это, наверное, не так.

 

Я вижу такие варианты решения (без особых приоритетов)

 

-- плюнуть в улей и уйти к другому провайдеру

 

-- плюнуть во FreeLSD и уйти в другую ось

 

-- хакнуть FreeLSD

 

-- злобно сделать адрес дальнего конеца туннеля не равным адресу браса (запросить у пчеловодов (через mpd.conf))

 

set ipcp ranges 0.0.0.0/0 xx.xx.xx.xx/32

 

где xx.xx.xx.xx некий ipv4 адрес не равный адресу bras сервера, но воспринимаемый им

как подходящий.

Редактировано пользователем nms42
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У других ведь работает на FreeBSD. Почему у меня нет ?

Судя по отсутствию ответов на ваше сообщение это, наверное, не так.

 

Я вижу такие варианты решения (без особых приоритетов)

 

-- плюнуть в улей и уйти к другому провайдеру

 

-- плюнуть во FreeLSD и уйти в другую ось

 

-- хакнуть FreeLSD

 

-- злобно сделать адрес дальнего конеца туннеля не равным адресу браса (запросить у пчеловодов (через mpd.conf))

 

set ipcp ranges 0.0.0.0/0 xx.xx.xx.xx/24

 

где xx.xx.xx.xx некий ipv4 адрес не равный адресу bras сервера, но воспринимаемый им

как подходящий.

Огромное спасибо. Поставил "set ipcp ranges 0.0.0.0/0 1.1.1.1/32". Все заработало !

Редактировано пользователем johny87
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это проблема FreeBSD 9.2, как и CURRENT с r248070

http://lists.freebsd.org/pipermail/svn-src-head/2013-March/045550.html

Нельзя удалить маршрут к ng0, он защищён, проверить можно:

# route -n get АДРЕС_VPN_СЕРВЕРА

Если увидим flags: <UP,HOST,DONE,PINNED> то это оно

Редактировано пользователем MrStalker
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это проблема FreeBSD 9.2, как и CURRENT с r248070

http://lists.freebsd.org/pipermail/svn-src-head/2013-March/045550.html

Нельхя удалить маршрут к ng0, он защищён, проверить можно:

# route -n get АДРЕС_VPN_СЕРВЕРА

Если увидим flags: <UP,HOST,DONE,PINNED> то это оно

Спасибо ! Именно так и пишет ! А решения там нету случаем ? А то писать всякие левые ip в качестве шлюза не по фен-шую.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пока решение только одно, откатываться к 9.1

Сейчас веду разговор на фряшном форуме.

Только сутки назад понял в чём конкретно проблема. Как только будет найдено решение этой проблемы - сообщу.

Редактировано пользователем MrStalker
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо ! Именно так и пишет ! А решения там нету случаем ? А то писать всякие левые ip в качестве шлюза не по фен-шую.

Это что считается "левым ip"?

И по какому "фен-шую"?

 

Это проблема FreeBSD 9.2, как и CURRENT с r248070

http://lists.freebsd.org/pipermail/svn-src-head/2013-March/045550.html

Нельхя удалить маршрут к ng0, он защищён, проверить можно:

# route -n get АДРЕС_VPN_СЕРВЕРА

Если увидим flags: <UP,HOST,DONE,PINNED> то это оно

А почему у меня этого нет?

  route to: 85.21.0.170
destination: 85.21.0.170
   gateway: 10.60.88.1
       fib: 0
 interface: corb0
     flags: <UP,GATEWAY,HOST,DONE,STATIC>
recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire
      0         0         0         0      1500         1         0

FreeBSD NetFaker 9.2-STABLE FreeBSD 9.2-STABLE #111: Wed Oct 16 21:39:11 MSK 2013     nms@NetFaker:/usr/obj/usr/src/sys/NETFAKER  i386

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это проблема FreeBSD 9.2, как и CURRENT с r248070

http://lists.freebsd.org/pipermail/svn-src-head/2013-March/045550.html

Нельхя удалить маршрут к ng0, он защищён, проверить можно:

# route -n get АДРЕС_VPN_СЕРВЕРА

Если увидим flags: <UP,HOST,DONE,PINNED> то это оно

А почему у меня этого нет?

  route to: 85.21.0.170
destination: 85.21.0.170
   gateway: 10.60.88.1
       fib: 0
 interface: corb0
     flags: <UP,GATEWAY,HOST,DONE,STATIC>
recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire
      0         0         0         0      1500         1         0

FreeBSD NetFaker 9.2-STABLE FreeBSD 9.2-STABLE #111: Wed Oct 16 21:39:11 MSK 2013     nms@NetFaker:/usr/obj/usr/src/sys/NETFAKER  i386

"Мир" с какой SVN ревизии собран? До r248895 или после?

 

К тому же на такой конструкции не проявится (где remote-ip != peer-address):

root@Eviko:/home/mrstalker # ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1456
       inet 37.147.147.48 --> 37.147.128.1 netmask 0xffffffff
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
root@Eviko:/home/mrstalker # netstat -nrf inet
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            37.147.128.1       UGS         0 66940328    ng0
37.147.128.1       link#7             UH          0        0    ng0
85.21.230.201      10.165.32.1        UGHS        0 14325929    re0

Проявляется только на таких (где remote-ip == peer-address):

root@Eviko:/home/mrstalker # ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460                                                                             0
       inet 2.92.203.93 --> 85.21.230.206 netmask 0xffffffff
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
root@Eviko:/home/mrstalker # netstat -nrf inet
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            85.21.230.206      UGS         0      133    ng0
85.21.230.206      10.165.32.1        UGHS        0        0    re0

 

Посколько заблокировали возможность удаления интерфейсного маршрута, который в первом моём примере удалять вовсе и не надо.

А у нас в Туле так повелось, что одни VPN серверы провайдера настроены так, другие иначе... Какой достанется.

Редактировано пользователем MrStalker
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Интересно данный баг касается только x64 версии ?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Интересно данный баг касается только x64 версии ?

Это не баг FreeLSD. Это особенность сети пчеловодов (назначение ip дальнего конца линка равным ip браса). И как следствие танцы с бубном всех поклонников *nix религии. :D

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я про "баг" в FreeBSD версии 9.2. В 9.1 можно удалить маршрут, а в 9.2 стало нельзя. Про Билайн уже речи и нету.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Интересно данный баг касается только x64 версии ?

Нет, так как изменения затрагивались общих исходников.

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как временное решение, написал патч route-fix.patch.zip

 

Применять так:

# unzip route-fix.patch.zip
# cd /usr/src
# patch < /PATH/TO/route-fix.patch

 

Далее пересобираем мир и ядро, всё должно работать как и раньше.

3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо большое !

Пока в квартире ремонт, не могу протестировать. Где-то в понедельник-вторник только.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо еще раз ! Патч отлично работает.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо еще раз ! Патч отлично работает.

Рад, что кому то пригодилось :)

Редактировано пользователем MrStalker
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почти 3 недели полет отличный. Патч рекомендую.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что хочу сказать... FreeBSD 10.0, патч работает.

Похоже надеяться на исправление пока что не стоит...

Как я уже говорил, для разработчиков это "не баг, а фича". А то что у кого-то так настроена сеть, мало кого волнует.

Редактировано пользователем MrStalker
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я же чуть не год назад писал, как это обойти конфигом mpd5 без всяких костылей в виде скриптов подъема и опускания тоннеля.

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну это дело вкуса конечно...

 

без всяких костылей в виде скриптов подъема и опускания тоннеля.

Скрипты для изменения маршрутов при поднятии/опускании интерфейса скорее привычка, чем костыль. Костыль у меня разве что правка исходников...

 

set iface addrs 0.0.0.0 !1.2.3.4

Вот это как раз на мой взгляд костыль...

 

Ещё раз повторюсь, дело вкуса...

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скрипты для изменения маршрутов при поднятии/опускании интерфейса скорее привычка, чем костыль.

Только не спасают скрипты от петли, увы. Можно довольно долго ее избегать, но периодически всплывать будет.

А форсировать внутренние адреса туннеля на частные точно не костыль, а вынужденный workaround. Кстати, на микротике тоже пришлось адрес перебивать, иначе не пахало.

У меня в Билайн смотрят циски и фря (начиная еще с 6.0), настрадался в обоих случаях предостаточно.

На фре десятке сейчас так:

vpn-l2tp:
create bundle static B2
set bundle disable compression
set bundle disable round-robin
set bundle disable encryption
set bundle disable crypt-reqd
set bundle disable bw-manage
set bundle disable ipv6cp
set bundle enable ipcp
set ipcp no vjcomp
set iface mtu 1460
set iface idle 0
set iface addrs 192.168.254.1 !192.168.254.2
set iface enable tcpmssfix
set iface route default
create link static L2 l2tp
set link action bundle B2
set link latency 0
set link max-redial 0
set link disable incoming acfcomp protocomp magicnum check-magic shortseq
set link deny chap-msv2 chap-msv1 pap eap acfcomp protocomp shortseq
set link accept chap-md5
set link accept chap
set link keep-alive 60 180
set l2tp self bee0 1701
set l2tp disable resolve-once
set l2tp peer tp.internet.beeline.ru
set auth authname "login"
set auth password "password"
open

работает как часы

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно довольно долго ее избегать, но периодически всплывать будет.

Ни разу не всплывало...

 

А форсировать внутренние адреса туннеля на частные точно не костыль, а вынужденный workaround. Кстати, на микротике тоже пришлось адрес перебивать, иначе не пахало.

У меня такой надобности не было и нет.

 

Вот мои конфиги. Основа взята ещё со старой инструкции для FreeBSD с http://help.corbina.net года так 2008-2009. С тех пор притерпела некоторые изменения.

Всё это стабильно работало с 7 ветки FreeBSD. Проблема появилась только в 10. И то решается патчем, что я приложил в начале темы.

Итак, собственно конфиги:

 

mpd.conf

default:
       load l2tp_client
l2tp_client:
       create bundle static B1
       set iface up-script /usr/local/etc/mpd5/up.sh
       set iface down-script /usr/local/etc/mpd5/down.sh
       create link static L1 l2tp
       set link action bundle B1
       set auth authname USER
       set auth password PASS
       set link max-redial 0
       set l2tp peer tp.internet.beeline.ru
       open

 

up.sh

#!/bin/sh

route delete $8
route add $8 ЛОКАЛЬНЫЙ_ШЛЮЗ
route delete default
route add default $4

 

down,sh

#!/bin/sh

route delete default
route delete $6
route add default ЛОКАЛЬНЫЙ_ШЛЮЗ

 

Проблем никаких вобще.

Работает как часы :rolleyes:

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

set iface addrs 0.0.0.0 !n.n.n.n

ничуть не костыль, а обычная настройка.

Адрес серверного конца туннеля просто нигде не нужен.

 

у меня в mpd.conf

...

set iface name ext1

set iface description "Beeline Internet"

set iface addrs 0.0.0.0 !127.143.81.14

...

 

ifconfig ext1

ext1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460

description: Beeline Internet

inet 95.1.1.1 --> 127.143.81.14 netmask 0xffffffff

 

route add default -interface ext1

 

netstat -nrW | grep ext1

default ext1 US 0 15663769 1460 ext1

127.143.81.14 link#6 UH 0 0 1460 ext1

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как временное решение, написал патч route-fix.patch.zip

 

Применять так:

# unzip route-fix.patch.zip
# cd /usr/src
# patch < /PATH/TO/route-fix.patch

 

Далее пересобираем мир и ядро, всё должно работать как и раньше.

 

Спасибо за патч, пока не пропатчил и не пересобрал ядро не хотело заводиться ни в какую, хотя на 8.2 с этими же конфигами все пашет, патч крайне нужный :thanx:

uname -a

FreeBSD server 10.1-RELEASE FreeBSD 10.1-RELEASE #2: Fri Jan 9 00:14:26 MSK 2015

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем привет!

А кто про бывал поднять l2tp на FreeBSD 10.1? Если про бывал поделитесь опытом!

За ранее спасибо!

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Зарегистрироваться на нашем форуме.


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now