Jump to content

Выборочный роутинг через VPN туннель


Recommended Posts

1 минуту назад, keenet07 сказал:

Попробуйте поставить в соединениях которые не видит "Использовать для выхода в интернет".

И заново поискать скриптом.

Стоит, конечно же)

Link to comment
Share on other sites

Она стоит изначально. Попробовал полностью  удалить скрипт и WG и заново всё установить. Ничего не изменилось.

 

PS:  проблема может быть в том, что стоит прошивка 3.8 Alpha 4?

Link to comment
Share on other sites

Только что, Andrey Che сказал:

Она стоит изначально. Попробовал полностью  удалить скрипт и WG и заново всё установить. Ничего не изменилось.

 

PS:  проблема может быть в том, что стоит прошивка 3.8 Alpha 4?

У меня стоит 3.7.2. Думаю, что не в прошивке дело)

Link to comment
Share on other sites

Вряд ли там что-то изменилось в выдаче VPN интерфейсов. Скорее в алгоритме разбора что-то не учтено или есть ошибки. Нужно чтоб автор посмотрел.

Попробуйте вручную подставить свои данные в текст скрипта для соединения по умолчанию.

Хотя, в 3.8 добавили новый параметр "Исключительный" для маршрутов. Затрудняюсь ответить могло ли это повлиять.

И ещё судя по коду где-то создается файл "VPN_CONFIG_FILE" с выбранным VPN соединением, его можно удалить, для обновления данных.

Link to comment
Share on other sites

Уважаемые форумчане, благодарю Вас за обратную связь.

6 часов назад, keenet07 сказал:

Вряд ли там что-то изменилось в выдаче VPN интерфейсов. Скорее в алгоритме разбора что-то не учтено или есть ошибки. Нужно чтоб автор посмотрел.

Вы правы, скорее всего есть ошибке в скрипте, так как у меня нет возможности протестировать на всех типах соединениях, потому скрипт разрабатывался с учетом моей текущей конфигурации - OpenVPN.

Но надеюсь, если у Вас хватит терпения, а у меня моих скоромных познаний, то все в ближайшей перспективе скрипт доработаю до нужной кондиции. 

В течении дня постараюсь опубликовать исправленную версию с учетом Ваших пожеланий.

Link to comment
Share on other sites

Как временный вариант - можно указать интерфейс своего VPN соединения вручную по команде, как в примере ниже:

vpn-list-update interface OpenVPN2

Данная команда позволяет установить вручную VPN интерфейс OpenVPN с порядковым номером 2.  

Link to comment
Share on other sites

1 час назад, Zeleza сказал:

Как временный вариант - можно указать интерфейс своего VPN соединения вручную по команде, как в примере ниже:

vpn-list-update interface OpenVPN2

Данная команда позволяет установить вручную VPN интерфейс OpenVPN с порядковым номером 2.  

К сожалению, так не срабатывает. Скрипт просто не видит Wireguard интерфейс.

Link to comment
Share on other sites

3 минуты назад, paul_fastest сказал:

К сожалению, так не срабатывает. Скрипт просто не видит Wireguard интерфейс.

Что выдает команда в entware?

curl -s 'localhost:79/rci/show/interface' | sed  -n '/Wireguard.\":/,/\}\,/p'
Edited by Zeleza
Link to comment
Share on other sites

1 минуту назад, Zeleza сказал:

Что выдает команда в entware?

curl -s 'localhost:79/rci/show/interface' | sed  -n '/Wireguard.\":/,/\}\,/p'

 "Wireguard0": {
    "id": "Wireguard0",
    "index": 0,
    "type": "Wireguard",
    "description": "aaa",
    "interface-name": "Wireguard0",
    "link": "up",
    "connected": "yes",
    "state": "up",
    "mtu": 1324,
 Указал только часть ответа.  

Link to comment
Share on other sites

Доработанная версия скрипта vpn-list-update_0.9-1_all.ipk.

Теперь при первом запуске (любой из команд), скрипт, в случае наличия нескольких "поднятых" VPN соединений, попросит выбрать одно из них и затем, в случае наличия данных в "белом списке", запросит у Вас переустановку интереса по каждому ip.

Если интерфейсы не подняты ( not connected) - скрипт их не увидит.  
  
Другими словами, например, если у Вас был интерфейс OpenVPN0, а Вы подключили новый и выбрали Wireguard0, то все адреса в списке будут с Вашего разрешения заново переписаны на новый интерфейс Wireguard0.

Напоминаю, что в случае обновления, необходимо сначала удалить утилиту, а затем установить ее заново.

 

  • Thanks 3
  • Upvote 1
Link to comment
Share on other sites

1 час назад, Zeleza сказал:

Теперь при первом запуске (любой из команд), скрипт, в случае наличия нескольких "поднятых" VPN соединений, попросит выбрать одно из них и затем, в случае наличия данных в "белом списке", запросит у Вас переустановку интереса по каждому ip.

Тут нужно уточнить. Скрипт будет предлагать менять интерфейс для каждой записи в интерактивном режиме? Или скопом поменяет все пользовательские маршруты которые прописаны на устройстве? Как он отличит маршруты добавленные вручную от тех которые добавляет он сам? Я к тому что не полез бы менять то что не нужно. На этот случай нужно чтоб список того что он добавляет хранился где-то ещё.

Edited by keenet07
Link to comment
Share on other sites

25 минут назад, keenet07 сказал:

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

Данная замена будет произведена лишь при положительном ответе на запрос, см. листинг ниже.

Скрытый текст

~ # vpn-list-update interface
-------------------------------------------------------
Выбирите номер используемого VPN интерфейса [1-2]:
1. Wireguard0
2. OpenVPN0
1
-------------------------------------------------------
Вами выбран интерфейс: Wireguard0
-------------------------------------------------------
В "белом списке" присутствуют IP адреса.
Произвести замену VPN интерфейса для них на выбранный [Y/N]?
n
-------------------------------------------------------
Замена интерфейса отменена.
-------------------------------------------------------

При Вашем согласии будет произведена замена интерфейса:

Скрытый текст

~ # vpn-list-update interface
-------------------------------------------------------
Выбирите номер используемого VPN интерфейса [1-2]:
1. Wireguard0
2. OpenVPN0
2
-------------------------------------------------------
Вами выбран интерфейс: OpenVPN0
-------------------------------------------------------
В "белом списке" присутствуют IP адреса.
Произвести замену VPN интерфейса для них на выбранный [Y/N]?
y
-------------------------------------------------------
Замена интерфейса для существующих IP
произведена на VPN интерфейс: OpenVPN0
-------------------------------------------------------
Содержание "белого списка":
-------------------------------------------------------
on: (OpenVPN0) rutracker.org [ 185.154.12.197 5.104.224.16 185.234.247.237 ]
on: (OpenVPN0) 2ip.ru [ 195.201.201.32 ]
on: (OpenVPN0) linkedin.com [ 13.107.42.14 ]
on: (OpenVPN0) list.com [ 45.33.18.44 45.33.20.235 45.33.2.79 198.58.118.167 45.79.19.196 173.255.194.134 45.33.23.183 72.14.185.43 45.33.30.197 96.126.123.244 72.14.178.174 45.56.79.23 ]
on: (OpenVPN0) anonine.com [ 104.21.82.3 172.67.167.86 ]
-------------------------------------------------------
~ #

 

Цитата

Как он отличит маршруты добавленные вручную от тех которые добавляет он сам?

Скрипт их не отличает, фильтрация происходит по имени хоста в комментариях и по названию интерфейса.

А с какой целью необходимо это делать, поясните пожалуйста?  В каких ситуациях это востребовано? 

Edited by Zeleza
Link to comment
Share on other sites

18 минут назад, Zeleza сказал:

Скрипт их не отличает, фильтрация происходит по имени хоста в комментариях и по названию интерфейса.

А с какой целью необходимо это делать, поясните пожалуйста?  В каких ситуациях это востребовано? 

В большинстве случаев наверное и не будет востребовано. Я побоялся только за те записи которые скрипт мог случайно принять за свои, а вы к примеру внесли их вручную и они так же имеют домен в комментарии, но должны быть жестко привязаны к конкретному VPN. Да, скрипт конечно спросит, менять или нет. Но когда у вас десятки или сотни этих записей, то сидеть и выбирать для каждого ДА или НЕТ это как-то не очень. Во всяком случае, если доверяете своему алгоритму подбора записей для замены, наверное имеет смысл сделать так же выбор варианта ВСЕ, чтоб заменить всё сразу автоматически. Кому-то пригодится. 

 

Link to comment
Share on other sites

2 минуты назад, nomadfromx сказал:

А вот еще любопытное поведение скрипта (последняя версия):

 image.png.9b229ade83c535bf3888a748d5885430.png

И нет добавления по команде add.

Прошу Вас написать мне в личку детали запроса.

Link to comment
Share on other sites

20 минут назад, nomadfromx сказал:

Еще заметил. Я добавляю строки с параметром off, а обновление update каждые N часов пересоздает строки с on.

Придется переписывать одну из частей скрипта - срок сказать не смогу.
А если не секрет, в каких случаях это востребовано?  

Link to comment
Share on other sites

3 минуты назад, Zeleza сказал:

А если не секрет, в каких случаях это востребовано?  

Востребовано. Приходиться "руками" перебивать потом - писал выше причину. Но я не буду торопить, подожду.

  • Thanks 1
Link to comment
Share on other sites

13 минуты назад, zyxmon сказал:

Записи CNAME скрипт не распознает.....

Что Вы имеете в виду?

С подобной ситуацией не сталкивался - при использовании ndig и dig выводит в первой строке имя домена и затем адреса. Сталкиваюсь с этим впервые. Скрипт переделал - сейчас все буквенные имена в выдаче отсекает - остаются только IP адреса. 

 

Link to comment
Share on other sites

Благодарю всех за комментарии. 

59 минут назад, nomadfromx сказал:

Но я не буду торопить, подожду.

Появилось окно в расписании и удалось быстро справится с задачей, выкладываю обновление.

Доработано:

  1. При добавлении и обновлении скрипт теперь учитывает ранее установленные флаги auto по каждому домену.
  2. Запрос на смену/установку VPN интерфейса осуществляется при установки скрипта, а не при запуске какой-либо из его команд. 
Edited by Zeleza
  • Thanks 2
Link to comment
Share on other sites

1 час назад, Zeleza сказал:

выводит в первой строке имя домена и затем адреса. Сталкиваюсь с этим впервые.

Кроме A записей о домене, бываю CNAME записи, они текстовые. Смотрите выдачу dig без параметра +short. Оставлять только адреса - нормально. У меня так сделано.

  • Thanks 1
Link to comment
Share on other sites

18 минут назад, paul_fastest сказал:

 

@Zeleza

Не сочтите за наглость и придирчивость, но не могли бы вы исправить в будущих версиях грамматичесую ошибку: "Выберите...". Спасибо.

Большое спасибо за исправление.

Это Вы меня простите за столь грубую ошибку. Единственное, что у нас осталось и что делает нас людьми это язык русский.

Обязательно поправлю.

Link to comment
Share on other sites

@Zeleza

Заметил в логе роутера, что обновление маршрутов происходит несколько раз, а точнее такое количество раз, сколько раз был установлен скрипт. У меня пять... В crontable одна запись. Либо у меня что-то не так, либо надо копать...

Link to comment
Share on other sites

Здравстуйте, товарищи. Прошу, подскажите, пожалуйста, как на стоковой fw через web-интерфейс или консоль прописать в статическую таблицу маршрутизации (Static routes / User-defined routes).

Суть задачи:

  1. Хочу весь трафик к/от конкретных пары доменов гнать через VPN. (Есть постоянный VPN-тоннель от роутера к VPN-серверу)
  2. Очень хочу чтоб все DNS-запросы про эти домены (резов IP) тоже шли через VPN

Я ничего на понимаю в таблицах маршрутизации. 

В IPv4 route table уже есть запись: 10.1.0.1/32 0.0.0.0 VPN (destination, gateway, interface).

- - -

А история такая. Много-много лет пользуюсь радио (на самом деле больше рекомендательная система, чем радио, но не суть важно) pandora.com, что доступна только для Австралии и US, что реализовано с помощью их собственных NS-серверов, которые на запросы не из Штатов отправляют на сервера-заглушки. Решается (частично) с помощью резолва DNS через VPN. Частично - потому что подобные проверки территориальной принадлежности IP клиента расставлены по всему сервису ещё как мины. Потому проще всего весь трафик к/от сервиса гнать через VPN.

Link to comment
Share on other sites

1 час назад, paul_fastest сказал:

@Zeleza

Заметил в логе роутера, что обновление маршрутов происходит несколько раз, а точнее такое количество раз, сколько раз был установлен скрипт. У меня пять... В crontable одна запись. Либо у меня что-то не так, либо надо копать...

Это проблема из-за старых версий скриптов, в новой версии все удаляется корректно.
Решается просто заходим в редактор...

nano /opt/etc/crontab

... и убираем лишние строки где есть вхождение /opt/bin/vpn-list-update update


update

Прошу прощения, невнимательно прочитал Ваше сообщение, если в кроне все хорошо, то мне трудно сказать, что может быть не так. Попробуйте переставить Entware ), других вариантов пока не ведаю.

Edited by Zeleza
Link to comment
Share on other sites

Наблюдаю в течении недели за активным общением в этой ветке.
@Zeleza огромное спасибо за скрипт и регулярные апдейты. Лично я скрипт еще не устанавливал, ветка очень длинная и в некоторой степени я уже запутался.

Чем этот скрипт схож или отличается от скрипта Топик стартера?

А также других скриптов, которые энтузиасты выкладывали в этой ветке. А то не знающий человек, может такую "Солянку" собрать, по рекомендациям и ошибкам из других сообщений.
Сколько в этой ветке в итоге было озвучено модификаций скриптов и чем они все друг от друга отличны?
Спасибо

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...