Маршрутизация в vpn сети - как настроить. - Littleone 2009-2012
   

Вернуться   Littleone 2009-2012 > Хобби и увлечения > Hard and soft

Добавить сообщение

 
Опции темы Поиск в этой теме
Старый 20.01.2012, 00:21   #1
Andrew SWH
Мега-элита
 
Аватар для Andrew SWH
 
Регистрация: 31.08.2006
Сообщений: 4 337
Маршрутизация в vpn сети - как настроить.



Решил я поднять VPN, ибо у родителей комп за NAT'ом, у бабушки айпишник вечно меняется... Инструкцию взял тут - http://www.xakep.ru/post/54795/default.asp и настроил VTun. Собственно, с самим VPN соединением никаких проблем нет: клиенты на "ура" цепляются к серверу, в обе стороны трафик идет без проблем. А вот клиенты друг друга не видят. То есть если сервер 10.1.0.1, а клиенты .2 и .4, то второй и четвертый сервер .1 к которому подсоединены, видят, а друг друга - нет. Сначала решил, что надо прописать на сервере маршрутизацию внутри сети 10.1.0.* - но полез на сервер и увидел

Код:
$ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.10.2      *               255.255.255.255 UH    0      0        0 tun0
10.1.0.4        *               255.255.255.255 UH    0      0        0 tun2
10.1.0.2        *               255.255.255.255 UH    0      0        0 tun1
192.168.1.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.0.0     *               255.255.255.0   U     1      0        0 eth0
10.10.10.0      10.10.10.2      255.255.255.0   UG    0      0        0 tun0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
то бишь у меня под каждое соединение, кроме всего прочего, создается новое tun-устройство. Или так и должно быть и маршрутизацию каким-то образом надо между этими виртуальными интерфейсами делать?.. сомневаюсь, это слишком нелогично. Видимо, где-то все же в настройке клиентов ошибка.

Из документации -

Код:
# теперь описываем клиентов
  client1 {
  passwd p@ssVV0rD;
  # тип может быть: tun, ether, tty, pipe
  type tun;
  proto udp;
  encrypt yes;
  # speed 256:128;
  keepalive yes;
  # команда, выполняемая при подключении
  up {
  ifconfig "%% 10.1.0.1 pointopoint 10.1.0.2 mtu 1450
  #   при необходимости пробрасываем соединение
  #   firewall "-t nat -A POSTROUTING -s 10.1.0.2 -j MASQUERADE";
  };

# команда при отключении (необязательная)
  down {
  firewall "-t nat -F";
  ifconfig "%% down";
  };
}
собственно, все клиенты прописаны таким образом, меняется только имя. Ну и, тут видно, что поднимается интерфейс новый... а что надо сделать, чтобы к уже имеющемуся все цеплялось?..
__________________
[Linux Mint 9 Isadora]
Andrew SWH is offline   Цитировать ·
Старый 20.01.2012, 00:51
ответ для Andrew SWH , на сообщение « Маршрутизация в vpn сети - как... »
  #2
и́нок
Хранитель
 
Аватар для и́нок
 
Регистрация: 05.02.2010
Адрес: vk.com/phonetab
Сообщений: 10 884


Надо будет еще раз твой пост завтра почитать. Я такое делал некогда на OpenVPN. Мегавещь. На хоботе чумовой мануал был некогда (в виде фака). Есть желание, посмотри его. Там про маршрутизацию и выталкивание конкретных маршрутов на сторону клиента и т.д. очень подробно расписано.
и́нок is offline   Цитировать ·
Старый 20.01.2012, 00:57
ответ для Andrew SWH , на сообщение « Маршрутизация в vpn сети - как... »
  #3
Andrew SWH
Мега-элита
 
Аватар для Andrew SWH
 
Регистрация: 31.08.2006
Сообщений: 4 337


Нашел еще одну доку... Там прописано в примере два клиента, при чем команды у них разные... второй по рутингу цепляется к первому. При этом непотяно, что будет, если второй будет подсоединен раньше первого, ибо при запуске ПОТОМ первого не будет прописываться маршрутизация ко второму...

Код:
mashine1 {
passwd Ma;;*TU;
type tun;
proto udp;
encrypt yes;
keepalive yes;

up {

ifconfig "%% 192.168.0.1 pointopoint 192.168.0.3
mtu 1450";
};
}

mashine2 {
passwd Ma&^TU;
type ether;
device tap0;
proto udp;
compress zlib:5;
speed 256:128;
encrypt yes;
stat yes;
keepalive yes;

up {
ifconfig "%% 192.168.0.2 192.168.0.1
netmask 255.255.255.0";
route "add -net 192.168.0.0 netmask 255.255.255.0";
firewall "-A forward -s 192.168.0.0/24 -d 0.0.0.0/0
-j MASQ";
};

down {

ifconfig "%% down";
route "delete 192.168.0.0";
firewall "-D forward -s 192.168.0.0/24 -d 0.0.0.0/0
-j MASQ";
};
}
это для фряхи, но суть дела не в том.. Откуда у первой машины возьмется рутинг, если она подсоединится после второй, а не до?..
Andrew SWH is offline   Цитировать ·
Старый 20.01.2012, 10:27   #4
и́нок
Хранитель
 
Аватар для и́нок
 
Регистрация: 05.02.2010
Адрес: vk.com/phonetab
Сообщений: 10 884


Цитата:
Сообщение от Andrew SWH Посмотреть сообщение
это для фряхи, но суть дела не в том.. Откуда у первой машины возьмется рутинг, если она подсоединится после второй, а не до?..
Судя по несимметричности конфига вторая станция - сервер. Она и проталкивает новые роуты клиенту, параметры шифрования и т.д. Извини, могу ошибаться, бегло смотрел.
__________________
10'' планшеты Ampe A90, Cortex A8, 16Gb, WiFi, Bluetooth, IPS матрица. Ориентировочная цена - 7 т.р.
и́нок is offline   Цитировать ·
Старый 23.01.2012, 23:21
ответ для Andrew SWH , на сообщение « Маршрутизация в vpn сети - как... »
  #5
Andrew SWH
Мега-элита
 
Аватар для Andrew SWH
 
Регистрация: 31.08.2006
Сообщений: 4 337


Не, конфиги сервера и клиента одинаковы. Только у сервера несколько одинаковых клиентских секций. Собственно, вопрос непосредственно к vtun'у отношения не имеет: там тупо запускаются указанные в конфиге команды при соединении с тем или иным клиентом или сервером. Те же самые команды можно и вручную в консоли вбить, вопрос не в этом... вопрос в том, как правильно настроить маршрутизацию в этой виртуальной впн-подсети.

Впрочем, кажется, грамотно сформулировав наконец вопрос, я сам на него себе и ответил: пойти почитать документацию по маршрутизации tcp/ip в линукс

Единственное, для укладки в голове. На клиентах я прописываю, что все пакеты для подсети 10.1.0.* (или 10.1.*.*, не важно) отправлять на 10.1.0.1, к которому все цепляются - это достаточно очевидно. А что нужно на машине, выступающей серевером соединений, чтобы она еще стала маршрутизировать пакеты между подключенными к ней клиентами. Я обойдусь одной командой route или, скорее, мне придется еще и со всякими iptables покопаться?..

На данный момент у меня на сервере тупо маршруты к непосредственным клиентам
Код:
10.1.0.3        *               255.255.255.255 UH    0      0        0 tun2
10.1.0.2        *               255.255.255.255 UH    0      0        0 tun1
ну а на клиентах аналогично лишь по одной строчке к серверу.
Andrew SWH is offline   Цитировать ·
Старый 23.01.2012, 23:30
ответ для Andrew SWH , на сообщение « Не, конфиги сервера и клиента... »
  #6
и́нок
Хранитель
 
Аватар для и́нок
 
Регистрация: 05.02.2010
Адрес: vk.com/phonetab
Сообщений: 10 884


Цитата:
Сообщение от Andrew SWH Посмотреть сообщение
что нужно на машине, выступающей серевером соединений, чтобы она еще стала маршрутизировать пакеты между подключенными к ней клиентами. Я обойдусь одной командой route или, скорее, мне придется еще и со всякими iptables покопаться?..
Например, в OpenVPN была отдельная директива в конфиге, разрешающая VPN сервису роутить пакеты между клиентами. Может здесь стоит покопать. Ну и роуты надо соответственно прописать. На сервере, на клиентах до клиентов других соответственно.
__________________
10'' планшеты Ampe A90, Cortex A8, 16Gb, WiFi, Bluetooth, IPS матрица. Ориентировочная цена - 7 т.р.
и́нок is offline   Цитировать ·
Старый 23.01.2012, 23:44
ответ для Andrew SWH , на сообщение « Маршрутизация в vpn сети - как... »
  #7
Andrew SWH
Мега-элита
 
Аватар для Andrew SWH
 
Регистрация: 31.08.2006
Сообщений: 4 337


Здесь никаких директив нет, эта софтинка умеет только устанавливать соединение, а дальше тупо выполняет команды из конфига, запуская соответствующие системные утилиты типа route или iptables. Маршрут для клиента достаточно очевиден.

типа
Код:
route add -net 10.1.0.0 netmask 255.255.255.0 tun0
А вот для сервера - нет... ip_forward включен.
Andrew SWH is offline   Цитировать ·
Старый 25.01.2012, 11:21
ответ для Andrew SWH , на сообщение « Маршрутизация в vpn сети - как... »
  #8
Andrew SWH
Мега-элита
 
Аватар для Andrew SWH
 
Регистрация: 31.08.2006
Сообщений: 4 337


Чтение документации - вещь полезная, а маршрутизация в сетях TCP/IP - крайне увлекательна :-).

На клиенте
route add -net 10.1.0.0 netmask 255.255.255.0 gw 10.1.0.1 tun0

На сервере в конфиге каждого клиента (например, .2)
iptables -t nat -A POSTROUTING -s 10.1.0.2 -j MASQUERADE

Сижу, радуюсь собственной работоспособной vpn-сети :-)
Andrew SWH is offline   Цитировать ·

Добавить сообщение


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Перепечатка материалов запрещена без письменного согласия администрации и авторов.
© 2000—2012 Littleone®.
Powered by vBulletin® Version 3.8.7 Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод на русский язык - idelena