[решено] Маршрутизация в VPN тоннеле

Ответить
Аватара пользователя
Tonny_Bennet

[решено] Маршрутизация в VPN тоннеле

Сообщение Tonny_Bennet »

Здравствуйте. Имеется 2 офиса: "Красный" и "Белый" (для наглядности)



Красный офис:

внутренняя cеть 192.168.3.0/24,

----192.168.3.1 winXP, usergate, 192.168.1.1------ 192.168.1.150 ADSL модем (используется как шлюз) dynamic ip ----- INTERNET



Белый офис:

внутренняя сеть 192.168.0.0/24

---- 192.168.0.10 Win2003 Serv, wingate, 193.105.37.%%% (static IP)



Задача: связать 2 офиса в одну сеть.



Я территориально нахожусь в Белом офисе (Win2003)

Настроил сервер по мануалу
http://system-administrators.info/?p=418
или подобному (что то всё одинаковое в интернете). За несколькими исключениями:

- доступ в Интернет по PPPoE, а при указании в свойствах появляются 2 физических адаптера (внешка, локалка) я выбрал 3-й пункт "Разрешать RAS выбирать адаптер".

- Указал диапазон адресов 192.168.2.1-192.168.2.255, в конфигурации портов у меня гораздо больше чем на скрине, но я так же убрал L2TP, - NAT не конфигурировал вообще да и у меня его по моему и не было в списке.

- создал пользователя, разрешил ему входящие подключени, указал ему статический адрес, 192.168.2.2 и прописал статический маршрут 192.168.3.0 255.255.255.0 с метрикой 3 (чтоб увидеть его в многообразии других маршрутов)

- политик безопасности у меня 2, а не одна, как видно на скрине и названия тож не похожи (английские) я в обоих сделал то что было на скрине.



В красном офисе создали VPN подключение и сняли галочку в свойствах "Использовать основной шлюз подключения"



Итак клиент из КРАСНОГО офиса коннектится ко мне к Белому. Соединение устанавливается. Он получает свой статический адрес 192.168.2.2. Клиент видит всю мою сеть. Пинги ко всем компам моей сети идут. Файлики копируются. Вообщем всё чудненько

Я с сервера клиентскую машину по 192.168.2.2 не пингую! С любой рабочей станции моей сети БЕЛОГО офиса эта машина 192.168.2.2 пингуется. Сеть красного офиса 192.168.3.0/24 не доступна ни с сервера ни с компов БЕЛОЙ сети.



P.S. Пишу из дома. Если очень нужны таблицы маршрутизации то могу выслать завтра. Но всё же хотелось бы узнать что это может быть? Почему такие косяки? Где копать? Как диагностировать? Сниферами? Сетевыми анализаторами?



Маршруты сервера:

C:\Documents and Settings\Administrator>route print 192*



IPv4 таблица маршрута

===========================================================================

Список интерфейсов

0x1 ........................... MS TCP Loopback interface

0x2 ...00 0e a6 89 6d 6a ...... Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethe

rnet Controller - Network Load Balancing Filter Device

0x10003 ...00 53 45 00 00 00 ...... WAN (PPP/SLIP) Interface

0x10004 ...00 50 bf 20 c2 8e ...... Realtek RTL8139 Family PCI Fast Ethernet NIC



0x40005 ...00 53 45 00 00 00 ...... WAN (PPP/SLIP) Interface

===========================================================================

===========================================================================

Активные маршруты:

Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика

192.168.0.0 255.255.255.0 192.168.0.10 192.168.0.10 20

192.168.0.10 255.255.255.255 127.0.0.1 127.0.0.1 20

192.168.0.255 255.255.255.255 192.168.0.10 192.168.0.10 20

192.168.2.1 255.255.255.255 127.0.0.1 127.0.0.1 50

192.168.2.2 255.255.255.255 192.168.2.1 192.168.2.1 1

192.168.3.0 255.255.255.0 192.168.2.2 192.168.2.1 3

Основной шлюз: 193.105.37.%%%

===========================================================================

Постоянные маршруты:

Отсутствует
Аватара пользователя
Tonny_Bennet

Re: [решено] Маршрутизация в VPN тоннеле

Сообщение Tonny_Bennet »

Добавил план сети
Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Аватара пользователя
Tonny_Bennet

Re: [решено] Маршрутизация в VPN тоннеле

Сообщение Tonny_Bennet »

Вообщем косяк был в том, что со стороны красного офиса невозможно было прописать роуты в белый route add 192.168.0.0 mask 255.255.255.0 192.168.2.1 metric 1

Комп выдавал ошибку: сбой добавления маршрута: либо индекс интерфейса указан неверно, либо шлюз не лежит в той же подсети

Решилось всё просто. В свойствах интерфейса который создаёт ВПН сервер есть галочка "Включить обнаружение определения маршрутизатора". Поставили. Маршрут прописался. Но только при явном указвании имени интерфейса в поле IF....

Но при переподключении VPN клиента имя интерфейса меняется. и роуты работать перестают... так что хотелось бы спросить, может стОит написать скриптик который будет:

1. Подключать ВПН

2. Смотреть в команде route print (или где то ещё) имя сетевого интерфейса

3. Добавить маршрут в сеть указав интерфейс

Думал сделать через *.bat файл но не нашёл как можно анализировать строки.

Прошу помощи. Как сделать подключение и прописать роуты?
Аватара пользователя
f1ame

Re: [решено] Маршрутизация в VPN тоннеле

Сообщение f1ame »

а ключ "-p" не помогает?

т.е. route add -p 192.168..... mask 255.255.255.0 192.168....
Аватара пользователя
Tonny_Bennet

Re: [решено] Маршрутизация в VPN тоннеле

Сообщение Tonny_Bennet »

Нет ключ -p не помогает т.к. имя VPN интерфейса меняется при переподключении.

Извратился написав скрипт vbs

Код:

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

Dim StringArray(15) 
Set FSO=CreateObject("Scripting.FileSystemObject")
Dim Log
Set Log=FSO.OpenTextFile("C:\vpn_connect_logs.txt",8,true)
Log.WriteLine(Now()&" Запуск скрипта")
'WScript.Sleep 40000 'пауза 40 секунд
'параметры подключения
sNameOfConnection = "VPN"
sUser = "Login"
sPassword = "password"
sNameOfInt="WAN (PPP/SLIP) Interface" 'имя интерфейса
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("rasdial "&sNameOfConnection&" "&sUser&" "&sPassword) 'подключаем соединение
Log.WriteLine(Now()&" Подключение rasdial "&sNameOfConnection&" "&sUser&" "&sPassword)
WScript.Sleep 3000
Set WshExec = WshShell.Exec("route print")' смотрим route print
Set TextStream = WshExec.StdOut
Str = vbNullString
Trim(TextStream.ReadLine()) 'просто читаю первую строку она мне дальше не нужна
Trim(TextStream.ReadLine()) 'просто читаю вторую строку она мне дальше не нужна
n=0
Log.WriteLine(Now()&" Доступные сетевые интерфейсы:")
Do While Not TextStream.AtEndOfStream
	stemp = Trim(TextStream.ReadLine())' последовательно читаем строки
		if (stemp  "===========================================================================") then 
			n=n+1
			StringArray(n)=stemp 
			Log.WriteLine(Now()&" "&stemp)
		else 
			Exit Do
		End If
Loop
sNumOfInt=""
For i=1 to 15 'просматриваю все строки и ищу нужный мне сетевой адаптер
	if (InStrRev(StringArray(i),sNameOfInt)0) then 
	'MsgBox sNameOfInt & " в "&i&" строке" 
	sNumOfInt = Left(StringArray(i),InStr(StringArray(i)," "))' получаю номер сетевого интерфейса
	End if
Next
Erase StringArray
if (sNumOfInt"") then
	Set WshExec = WshShell.Exec("route add 192.168.0.0 mask 255.255.255.0 192.168.2.1 metric 1 if "&sNumOfInt)
	Log.WriteLine(Now()&" Добавлен маршрут route add 192.168.0.0 mask 255.255.255.0 192.168.2.1 metric 1 if "&sNumOfInt)
else
MsgBox "Маршрут не добавлен. Возможно не удалось создать подключение",vbInformation + vbOK, "Внимание!"
Log.WriteLine(Now()&" Маршрут не добавлен route add 192.168.0.0 mask 255.255.255.0 192.168.2.1 metric 1 if "&sNumOfInt)	
End if
Log.WriteLine(Now()&" Работа скрипта завершена")
Log.WriteLine()
Log.Close

P.S. Прошу гуру VBS не критиковать сей код. Написал за час при том, что с VBS имел дело впервые в жизни. Работает и ладно.

и этим сообщением заканчиваю записки сумашедшего коим считаю сей топик.....
Аватара пользователя
zonderz

Re: [решено] Маршрутизация в VPN тоннеле

Сообщение zonderz »

Цитата Tonny_Bennet:



и этим сообщением заканчиваю записки сумашедшего коим считаю сей топик.....
[решено] Маршрутизация в VPN тоннеле




Нормальный топик и отличный результат. Молодец.
Аватара пользователя
Tonny_Bennet

Re: [решено] Маршрутизация в VPN тоннеле

Сообщение Tonny_Bennet »

Да просто сам с сабой общался и перечитал гору всякой фигни пока пришёл хоть к какму-то результату.
Ответить

Вернуться в «Microsoft Windows NT/2000/2003»