Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Перенаправление пользователя на страничку подключения при падении VPN  (Прочитано 4503 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Зацикливание, как раз, есть.
Укажите входящий интерфейс.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн slech

  • Автор темы
  • Любитель
  • *
  • Сообщений: 72
    • Просмотр профиля
# Generated by iptables-save v1.3.5 on Sat Mar  3 22:48:08 2012
*nat
:PREROUTING ACCEPT [852:87782]
:POSTROUTING ACCEPT [42:3000]
:OUTPUT ACCEPT [42:3000]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -m comment --comment "Redirect if VPN is down" -j REDIRECT --to-ports 80
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -m comment --comment "Redirect if VPN is down" -j REDIRECT --to-ports 443
COMMIT
# Completed on Sat Mar  3 22:48:08 2012
Результат тот же впринципе.
Работает вроде как надо, но долго.

Пользователь решил продолжить мысль 04 Марта 2012, 02:12:37:
сделал 2 скрипта
iptables-if-up-nat.sh
(Нажмите, чтобы показать/скрыть)

iptables-if-down-redirect.sh
(Нажмите, чтобы показать/скрыть)


изменил /etc/netplug.d/netplug

(Нажмите, чтобы показать/скрыть)

Теперь при установке VPN соединения сайт site1-vpn.domain.com открывается, при отсутсвующем VPN соединении пользователь попадает на страничку https://proxy-vpn.domain.local

Проблемы которые остались:
1. Редирект происходит крайне долго, иногода до 20 секунд - так же долго как и отваливается соединение если VPN не поднят - т.е. цель всех моих манипуляйий не достигнута.
« Последнее редактирование: 04 Марта 2012, 02:29:20 от slech »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
МыслЯ в голову пришла.
Посмотри, что реально происходит долго?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн slech

  • Автор темы
  • Любитель
  • *
  • Сообщений: 72
    • Просмотр профиля
Использовал Google Chrome - Inspect Element
1. https://site1-vpn.domain.com - 06.919 sec.
2. 302 https://site1-vpn.domain.com - 09.475 sec
3. 302 http://proxy-vpv.domain.local - 00.005 sec
4. 200 https://proxy-vpn.domain.local - 00.192 sec

Получается что основная задержка на первых 2-ух шагах. Буду разбираться с Apache откуда берётся второй этап.
А вот почему на первом получаетяс долгое ожидание непонятно.
1. DNS имя резолвится у нас на наших DNS серверах - т.е. задержка точно не в DNS.
2. Далее идёт обращение по IP.
3. Mikrotik посылает на CentOS
4. CentOS дожен завернуть весь трафик на Сaptive Portal
5. Captive Portal перенапрявлят на https://proxy-vpn.domain.local


Смотрю tracert
(Нажмите, чтобы показать/скрыть)

Смотрю пинги
(Нажмите, чтобы показать/скрыть)


Пользователь решил продолжить мысль 04 Марта 2012, 12:19:30:
а, ну да. icmp и не будет работать. у нас заворачивается tcp http/https.
« Последнее редактирование: 04 Марта 2012, 12:19:30 от slech »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
tcpdump вообще-то смотреть надо.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн slech

  • Автор темы
  • Любитель
  • *
  • Сообщений: 72
    • Просмотр профиля
tcpdump так же показал задержки, а так же что происходит несколько запросов
16:09:00.865264 IP Web Browser.61938 > site1-vpn.domain.com.http: S 656466050:656466050(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>
16:09:00.865338 IP site1-vpn.domain.com.http > Web Browser.61938: S 1293976531:1293976531(0) ack 656466051 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7>
16:09:03.865250 IP site1-vpn.domain.com.http > Web Browser.61938: S 1293976531:1293976531(0) ack 656466051 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7>
16:09:09.865168 IP site1-vpn.domain.com.http > Web Browser.61938: S 1293976531:1293976531(0) ack 656466051 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7>
16:09:09.865606 IP Web Browser.61938 > site1-vpn.domain.com.http: . ack 1 win 256 <nop,nop,sack 1 {0:1}>
16:09:10.185391 IP Web Browser.61938 > site1-vpn.domain.com.http: P 1:829(828) ack 1 win 256
16:09:10.185456 IP site1-vpn.domain.com.http > Web Browser.61938: . ack 829 win 59
16:09:10.185972 IP site1-vpn.domain.com.http > Web Browser.61938: P 1:144(143) ack 829 win 59
16:09:10.186072 IP site1-vpn.domain.com.http > Web Browser.61938: F 144:144(0) ack 829 win 59
16:09:10.186542 IP Web Browser.61938 > site1-vpn.domain.com.http: . ack 145 win 256
16:09:10.205837 IP Web Browser.61938 > site1-vpn.domain.com.http: F 829:829(0) ack 145 win 256
16:09:10.205873 IP site1-vpn.domain.com.http > Web Browser.61938: . ack 830 win 59

Убрал Mikrotik c с пути(прописал себе маршрут) - отрабатывает моментально.

Пользователь решил продолжить мысль 04 Марта 2012, 18:54:27:
Получается что CentOS получает пакет для site1-vpn.domain.com - маршрута до него у неё нет.
Она его отсылает на шлюз свой, им является Mikrotik, а у микротика маршрут, что site1-vpn.domain.com доступен через CentOS.

Пользователь решил продолжить мысль 05 Марта 2012, 01:16:18:
При установлении VPN происходит переписывание таблицы маршрутизации и CentOS все пакеты напрявляет в тунель.
Без VPN шлюзом для неё является Mikrotik. В результате петля при отсутствии VPN.
« Последнее редактирование: 05 Марта 2012, 01:16:18 от slech »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Навскидку: Меняйте адреса назначения пакета.
А вообще странно. После редиректа пакет не должен никуда маршрутизироваться.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн slech

  • Автор темы
  • Любитель
  • *
  • Сообщений: 72
    • Просмотр профиля
поднял второй такой сервер с более новой версией OS и там всё заработало с таким же набором правил в таблице nat и цепочке FORWARD таблицы filter.

CentOS release 5.6 (Final) -- Linux 2.6.18-238.el5 i686 -- iptables v1.3.5 - не работает как нужно
CentOS release 6.2 (Final) -- Linux 2.6.32-220.el6.x86_64 x86_64 -- iptables v1.4.7 -- рабоает как нужно

 

Страница сгенерирована за 0.107 секунд. Запросов: 25.