Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Общего характера / L2TP решение в Linux

L2TP решение в Linux

L2TP решение в Linux
1 2>
Сообщений: 11

L2TP решение в Linux

Приветствую всех участников форума!

Есть Астериск сервер, на нем стоит xl2tpd+ipsec(openswan, preshared key). Есть клиенты за НАТом у которых АТА поддерживают l2tp. Проблема в том что из-за корявой реализации l2tp в openswan только один клиент из подсети может подключиться, остальные не смогут так как фактически есть уже одно соединение с этим реальным IP адресом.

Пробовал также openl2tp + racoon (ipsec). Для теста использовал win xp как клиент. Если без НАТа, он подключается. Если за НАТом, Expecting IP address type in main mode, but FQDN, хотя в винде прописан IP адрес.

Если будут нужны конф и логи, выложу.
Нужно найти l2tp+ipsec решения которое будет поддерживать multiple connections behind same NAT. Кто-то с этим сталкивался?

Всем заранее спасибо!
2009-04-07 12:14

Сообщений: 6521

Re: L2TP решение в Linux

Была же поддержка NAT-traversal mode для openswan?
2009-04-07 13:14

Сообщений: 11

Re: L2TP решение в Linux

Да, все правильно. Openswan установлен с поддержкой nat traversal mode. С поддержкой nat traversal только первый клиент может подключиться из подсети. Openswan не поддерживает multiple concurrent users behind the same NAT device.

Нашел что openl2tp поддерживает несколько параллельных подключений из-за НАТа, но в моем случае он ругается Expecting IP address type in main mode, but FQDN даже при первом подключение.

Может есть другие опенсоурс l2tp продукты с поддержкой несколько параллельных подключений из-за НАТа?
2009-04-07 13:47

Сообщений: 6521

Re: L2TP решение в Linux

openvpn
2009-04-07 13:52

Сообщений: 11

Re: L2TP решение в Linux

Нужен именно l2tp решение, так как есть ATA с поддержкой l2tp.
2009-04-07 13:57

Сообщений: 156

Re: L2TP решение в Linux

Я, в прошлом году разрабатывал тонкого клиента подлкючающегося по IPSec с CISCO ASA по UMTS - использовал ipsec-tools. Столкнулся с проблемой Expecting IP address type in main mode, but FQDN. На одном форуме про ipsec-tools нашел причину проблемы

The problem is exactly here. Your Cisco sends an FQDN in a MAIN mode negociation, where the RFC2409 says that is not possible (see sect. 5.4).


А ее решением было либо изменить конфигурацию CISCO ASA (к чему у меня не было доступа) или пропатчить клиента

src/racoon/ipsec_doi.c

> - plog(LLV_ERROR, LOCATION, NULL,
> + plog(LLV_WARNING, LOCATION, NULL,
> "Expecting IP address type in main mode, "
> "but %s.\n", s_ipsecdoi_ident(id_b->type));
> - return ISAKMP_NTYPE_INVALID_ID_INFORMATION;

После этого отваливание клиента по ERROR заменялось на предупреждение WARNING и происходило подключение.

Кстати, по этому поводу есть другие идеи основаные на интегрировании firmware OPEN-WRT в обычный рутер АДСЛ. Сейчас ищем подходящий рутер и будем экспериментировать - у кого есть наработки - поделитесь.
2009-04-07 14:08

Сообщений: 11

Re: L2TP решение в Linux

Спасибо alphil за идею! Вместо error сейчас warning и первый клиент подключается нормально. А вот когда остальные клиенты из той же подсети пытаются:

Apr 7 05:32:16 racoon: ERROR: such policy does not already exist: "X.X.X.X/32[24126] Y.Y.Y.Y/32[1701] proto=udp dir=in"
Apr 7 05:32:16 racoon: ERROR: such policy does not already exist: "Y.Y.Y.Y/32[1701] X.X.X.X/32[24126] proto=udp dir=out"

где
X.X.X.X - my real IP
Y.Y.Y.Y - l2tp server IP

тоже самое было когда пробовал openswan + xl2tpd, так что вернулись к началу :(
2009-04-07 14:40

Сообщений: 156

Re: L2TP решение в Linux

Незнаю есть ли решения для твоего случая - у меня был один клиент-рутер поднимавший тунель LAN-2-LAN и являлся шлюзом для сетей за IPSEC сервером.

Кстати, сейчас просмотрел свои исходники

spdadd $NETLOC $NETREM any -P out ipsec esp/tunnel/$GWLOC-$GWREM/unique;
spdadd $NETREM $NETLOC any -P in ipsec esp/tunnel/$GWREM-$GWLOC/unique;

Вот там где у меня unique - должно быть обязательно unique - у тебя что ????
2009-04-07 16:05

Сообщений: 11

Re: L2TP решение в Linux

а где это можно увидеть? в исходниках такого нету. для setkey я вручную запускал

#!/sbin/setkey -v
#
# This file is to be processed by the setkey(8) utility
# upon startup of the ipsec service
#
flush;
spdflush;

# All tunnels to 42.1.1.1 (this host) shall use ESP transport mode

spdadd Y.Y.Y.Y [1701] 0.0.0.0/0 udp -P in ipsec
esp/transport//require;

spdadd 0.0.0.0/0 0.0.0.0/0[1701] udp -P out ipsec
esp/transport//require;



2009-04-07 16:34

Сообщений: 6521

Re: L2TP решение в Linux

alphil, часом синтаксис
spdadd $NETREM $NETLOC any -P in ipsec esp/tunnel/$GWREM-$GWLOC/unique;
не на FreeBSD?
2009-04-07 16:39

1 2>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru