ОПЫТЫ С VPN
Наконец то у меня оказалось под рукой 4 временно свободных компьютера и дошли руки до производства этих давно задуманных опытов.
Еще когда я работал в ВКТ и занимался администрированием базы данных системы магазинов «Райцентр» (Нижний Новгород, 2002-2003 годы), я предполагал, что виртуальная приватная сеть может серьезно помочь. Дело в том, что программная система «Джестори», закупленная для этой системы магазинов, предполагала, что все компьютеры всех магазинов находятся в единой локальной сети, независимо от географической удаленности. В Москве обычно торговые точки, где применялась эта система, соединялись выделенными линиями. У нас же сперва вообще были диалапные модемы, лишь немного спустя провели ADSL. К сожалению, администратор сети, несмотря на мои советы, начал писать линуксовские скрипты по перекачке и синхронизации через интернет файлов, находящихся в разных локальных сетях. Эти скрипты долго глючили, файлы синхронизировались неправильно, отчеты по этой причине давали неверные результаты, а шишки посыпалась именно на меня, так что я не успевал переадресовывать их сетевому администратору. Жаль, что там я не имел возможности вмешаться в чужую зону полномочий и попробовать наладить работу через VPN.
Но возвращаюсь к основной теме. Конфигурация «экспериментальной установки», то-есть сети из 4-х компьютеров, такова.
Итак, в виде одиночных «башен» на схеме показаны 2 маршрутизатора Linux, на каждом – по две сетевые карты. Добавлю, что устанавливались оба этих Линукса с дистрибутива Red Hat 7.3. Остальные два компьютера (на схеме они наверху) – обычные машины с Windows.
Приступая к делу, я руководствовался книгой Олега Колесникова и Брайана Хетча «Linux создание виртуальных частных сетей (vpn)». Но, как это часто бывает, в книге я нашел достаточно «навороченные» процедуры, то-есть слишком сложные. Суть дела виделась за ними достаточно туманно. Я же, приступая к работе, предпочитаю иметь дело с как можно более простыми процедурами, но отражающими существо дела. Усложнить все всегда можно успеть.
Итак, из утилит Linux нам понадобятся pppd и ssh. Причем версии не должны быть чересчур ранними (конкретные номера версий я уточнять не буду, в установке Red Hat 7.3 все сработало). Насчет pppd – я всегда был уверен, что она создает модемное соединение. Но видимо ее «роль» глубже – создание интерфейса, равноправного с ethN, а что служит непосредственно передающей средой, не так важно. Причем в книгах и статьях в Интернете ясности в изложении этого вопроса я не встречал.
Рекомендую сперва позаходить с одной машины на другую с помощью ssh и убедиться, что связь по ssh проходит нормально.
На маршрутизаторе, который находится справа, я запустил такую длинную командную строку:
pppd connect-delay 50000 updetach noauth
pty “ssh –t –t 192.168.1.91
‘pppd noauth 192.168.254.254:192.168.254.253’”
Замечания:
1. Пришлось поэкспериментировать с параметром connect-delay. При его отсутствии и при маленьких значениях связь никак не хотела устанавливаться. Не удивлюсь, если вам придется его еще увеличить.
2. Внутренняя одиночная кавычка в командной строке – это та, которая слева от клавиши Enter. Хотя, если все кавычки двойные, тоже должно сработать.
После запуска командной строки выйдет запрос на ввод пароля, ввести его нужно вручную (кстати, в вышеупомянутой книге описывались процедуры, выполнение которых позволяет избежать ручного ввода пароля). Я при своих испытаниях вводил пароль root.
После соединения на обоих машинах (маршрутизаторах) появляется интерфейс ppp0. Увидеть его можно по команде ifconfig. То-есть результат такой, как будто в каждую машину воткнули еще по одной сетевой карте. И эти карты соединены воображаемым кабелем.
Обоим новым интерфейсам присвоены IP-адреса. Левому ppp0 – 192.168.254.254, а правому – 192.168.254.253.
Теперь остается внести изменения в таблицы маршрутизации на обеих линуксовых машинах.
На правой
запускаем команду:
route add –net 192.168.0.0/24 gw
192.168.254.254
На левой:
route add –net 192.168.3.0/24 gw 192.168.254.253
После всего этого машины с Windows должны пинговать друг друга.
Немного позже я повторил эксперименты на двух разнесенных географически локальных сетях, имеющих выход в Интернет. Все осталось так же, лишь поменялись «личные» адреса 192.168.1.91 и 192.168.1.92 на реальные (на картинке они заменены на 1.2.3.4 и 5.6.7.8).
Добавлю, что два сервера Windows 2000 Server нормально видели друг друга через сетевое окружение, копировали файлы друг на друга. Но с машины Windows 2000 Pro на машину с Server я почему-то не смог зайти, хотя пинговалось все нормально. 1С (с SQL) на одном сервере (Win 2000 Server) при использовании каталога базы данных (и SQL-сервера) на другом запускаться отказалась. Возможно задействуются какие-то широковещательные сообщения, которые не перекидываются из одной сети в другую. На этом пока все, для работы использовать VPN сейчас мне необходимости нет. Поэтому опыты пока прекращаю.
Китаев Александр, 2006 г.
kitaev_a_e(
sign of mail )mail.ru