LINUX.ORG.RU
ФорумAdmin

VPN и маршрутизация


0

0

Исходные данные: Сервер с Gentoo на которром поднят VPN-сервер и сервер статистики. Локальная сеть из двух подсетей 192.168.222.0/24 и 192.168.223.0/24. Между сетями есть роутинг в обе стороны, как только клиент из 222 сети поднимает VPN-соединение 223 подсеть пропадает или наоборот клиент из 223 сети перестаёт видеть 222-ю. Я так понимаю в настройках VPN-сервера нужно добавить маршруты? Подскажите как?

1) Первым делом на клиентах должен быть прописан маршрут к подсетям 192.168.222.0/24 и 192.168.223.0/24 через шлюзы 192.168.223.1 и 192.168.222.1, соответственно.

Дело в том, что при поднятии vpn соединения, скорее всего, у вас маршрут по умолчаню становится через ppp интерфейс. И если у клиента из сети 222 не прописан маршрут к сети 223, то он посылает пакеты в ppp интерфейс.

2) ppp интерфейс поднимается с какими IP_LOCAL и IP_REMOTE?

Если ppp поднимается с IP_LOCAL=192.168.222.1 (допустим, адрес сервера), то трафик клента с сети 222 к сети 223 идет через шлюз с адресом 192.168.222.1, НО через ppp интерфейс, а не через ethX. Тк при поднятии впн маршрут до 192.168.222.1 будет именно через dev pppX.

здесь IP_LOCAL и IP_REMOTE - относительно сервера.

В таком случает вам надо, что бы например, IP_LOCAL=192.168.2.1 и IP_REMOTE=192.168.2.ХХХ, тогда трафик должен пойти правильно. Но только если на клиентах прописан маршрут для подсетей 192.168.222.0/24 и 192.168.223.0/24 через шлюз 192.168.223.1 и 192.168.222.1.

Зтого можно добиться правкой /etc/pptpd.conf, параметр localip.

samson ★★
()
Ответ на: комментарий от samson

Спасибо за ответ. Маршрут к подсетям 192.168.222.0/24 и 192.168.223.0/24 через шлюзы 192.168.223.1 и 192.168.222.1 так и прописан. При поднятии VPN на сервере становится адрес 10.1.222.1 на клиентах из 222 сети 10.1.222.х, из 223 10.1.223.х

V-i-k-t-o-r
() автор топика
Ответ на: комментарий от V-i-k-t-o-r

Приведите вывод команды netstat -nr как на клиентах, так и на сервере при поднятом vpn.

PS:

> Я так понимаю в настройках VPN-сервера нужно добавить маршруты? Подскажите как?

это, кстати, можно сделать используя скрипт /etc/ppp/ip-up. Но не думаю, что проблему надо решать именно так. Все должно работать и без этого.

samson ★★
()
Ответ на: комментарий от samson

На сервере:
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.1.222.12 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
89.179.156.96 0.0.0.0 255.255.255.240 U 0 0 0 eth0
192.168.200.0 192.168.222.1 255.255.255.0 UG 0 0 0 eth1
192.168.223.0 192.168.222.1 255.255.255.0 UG 0 0 0 eth1
192.168.222.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 89.179.156.97 0.0.0.0 UG 0 0 0 eth0

на клиенте:

>route print
===========================================================================
Список интерфейсов
0x1 ........................... MS TCP Loopback interface
0x2 ...00 02 72 c6 1c f4 ...... Bluetooth Device (Personal Area Network)
0x3 ...00 a9 40 1a 07 51 ...... Intel(R) PRO/100+ рфряЄхЁ єяЁртыхэш  - ╠шэшяюЁЄ
яырэшЁют∙шър яръхЄют
0xc0005 ...00 53 45 00 00 00 ...... WAN (PPP/SLIP) Interface
===========================================================================
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 10.1.222.12 10.1.222.12 1
0.0.0.0 0.0.0.0 192.168.222.1 192.168.222.12 21
10.1.222.12 255.255.255.255 127.0.0.1 127.0.0.1 50
10.255.255.255 255.255.255.255 10.1.222.12 10.1.222.12 50
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.219.0 255.255.255.0 192.168.222.200 192.168.222.12 1
192.168.222.0 255.255.255.0 192.168.222.12 192.168.222.12 20
192.168.222.12 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.222.223 255.255.255.255 192.168.222.12 192.168.222.12 20
192.168.222.255 255.255.255.255 192.168.222.12 192.168.222.12 20
224.0.0.0 240.0.0.0 192.168.222.12 192.168.222.12 20
224.0.0.0 240.0.0.0 10.1.222.12 10.1.222.12 1
255.255.255.255 255.255.255.255 10.1.222.12 10.1.222.12 1
255.255.255.255 255.255.255.255 192.168.222.12 192.168.222.12 1
255.255.255.255 255.255.255.255 192.168.222.12 2 1
Основной шлюз: 10.1.222.12
===========================================================================
Постоянные маршруты:
Сетевой адрес Маска Адрес шлюза Метрика
192.168.219.0 255.255.255.0 192.168.222.200 1

V-i-k-t-o-r
() автор топика
Ответ на: комментарий от V-i-k-t-o-r

> 192.168.200.0 192.168.222.1 255.255.255.0 UG 0 0 0 eth1 
> 192.168.223.0 192.168.222.1 255.255.255.0 UG 0 0 0 eth1 
> 192.168.222.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

на eth1 алиасы! У вас обе подсети подключены через свич?

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

Если клент под линуксом, это будет выглядеть так:

для клиента из подстеи 222 (192.168.222.XXX - eth0)
# ip route add 192.168.223.0/24 src 192.168.222.XXX dev eth0

для клиента из подстеи 223 (192.168.222.YYY - eth0)
# ip route add 192.168.222.0/24 src 192.168.223.YYY dev eth0

Под виндрой примерно так (не проверял):

для клиента из подстеи 222
route -p ADD 192.168.233.0 MASK 255.255.255.0 IF 0x3

для клиента из подстеи 223
# route -p ADD 192.168.222.0 MASK 255.255.255 IF 0x3

0x3 - номер сетевого интерфейса, его можно увидеть в резуьтате ваполнения комманды route print или netstat -nr (в самом верху).

PS: прописывать маршруты на клиентах все равно придется!
В линуксе можно добавить соответствующие комманды в автозагрузку, а в винде использовать ключь -p команды route.

samson ★★
()
Ответ на: комментарий от samson

> У вас обе подсети подключены через свич?

через ОДИН свич! либо свичей несколько, но соединенных между собой...

samson ★★
()
Ответ на: комментарий от samson

На eth1 нет алиасов, eth1 192.168.222.223 (смотрит в сторону 222 сегмента). 192.168.222.1 - шлюз между 4-мя сетями (на нём тоже нет алиасов (4 сетевухи)). И бегать по каждому клиенту прописывать маршруты - тоже желания никакого. Есть шлюз по умолчанию вот он пусть и думает куда какой пакет слать, а думает он нормально, пока VPN не запустишь на клиенте. В логах видно. Как-то надо VPN серверу объяснить где находятся подсети, а вот где и как это прописать нигде не могу найти.

V-i-k-t-o-r
() автор топика
Ответ на: комментарий от V-i-k-t-o-r

извиняюсь, прогнал на счет алиасов, что-то сразу не подумал, что написал....

> Есть шлюз по умолчанию вот он пусть и думает куда какой пакет слать, а думает он нормально, пока VPN не запустишь на клиенте. В логах видно. Как-то надо VPN серверу объяснить где находятся подсети, а вот где и как это прописать нигде не могу найти.

Дело в том, что при поднятии ppp соединения под виндой, автоматически меняется маршрут по умолчанию на via 10.1.222.1 src 10.1.222.ХХХ dev ppp. Адрес к подсети 223 через шлюз 192.168.222.1 у вас не прописан и пакеты идут через маршрут по умолчанию.

Как я понимаю, вам не надо, чтобы пакеты уходили в ppp интерфейс. Надо, чтобы они уходили в интерфейс сетевой карты. Если это так, то:

нужно на клиентах из 222 прописать такой маршрут:

route -p ADD 192.168.223.0 MASK 255.255.255.0 192.168.222.1

а на клиентах из 223 прописать:

route -p ADD 192.168.222.0 MASK 255.255.255.0 192.168.223.1

Эти маршруты сохранятся и при перезагрузке (-p). Но это придется сделать на всех клиентах.

ps: по моему, в таблице маршрутизации на клиенте у вас это не учтено.

samson ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.