Jump to content

Question

Posted (edited)

Всем привет. У меня такой Use Case.

 

Имеется два проводных выхода в интернет (через Ethernet). Хочу настроить Multi WAN, чтобы один канал был основным, второй резервным. По умолчанию приложения ходили в интернет через основной, когда он отваливается - начинали ходить через резервный.

Но при это я хочу чтобы некоторые приложения (например браузер Chrome) ВСЕГДА ходили только через резервный. Я это вижу через поднятие Proxy Server на роутере, который бы был настроен на резервный канал. А в нужных мне приложениях просто прописывал бы этот прокси.

 

Реально ли такое на Keenetic? Беглый гуглинг не показал наличие Proxy Server в Keenetic. Может есть другой способ, не через Proxy?

 

p.s. Если что, устройство у меня ещё не куплено, в профиле отмечено, т.к. форум потребовал. Рассматриваю его к покупке, если там можно сделать реализовать такое.

Edited by Krabik

19 answers to this question

Recommended Posts

  • 0
Posted

Насчёт первой половины вопроса. Нет никаких проблем.

А вот на счет прокси не всё так просто. Если только что-то придумать с пакетами через OPKG.

  • 0
Posted
8 часов назад, Krabik сказал:

Беглый гуглинг не показал наличие Proxy Server в Keenetic.

Squid, 3proxy из Entware. Второй лучше, легкий, проще настраивается.

  • 0
Posted (edited)

Но вот будет ли это потом работать так как задумал автор? Чтоб через второй неактивный интерфейс ходить через прокси? Или придётся режим балансировки включать и настраивать. Но будет ли такой режим отрабатывать в случае отваливания инета на основном? Больше вопросов чем ответов.

Edited by keenet07
  • 0
Posted
11 час назад, Krabik сказал:

Всем привет. У меня такой Use Case.

 

Имеется два проводных выхода в интернет (через Ethernet). Хочу настроить Multi WAN, чтобы один канал был основным, второй резервным. По умолчанию приложения ходили в интернет через основной, когда он отваливается - начинали ходить через резервный.

Но при это я хочу чтобы некоторые приложения (например браузер Chrome) ВСЕГДА ходили только через резервный. Я это вижу через поднятие Proxy Server на роутере, который бы был настроен на резервный канал. А в нужных мне приложениях просто прописывал бы этот прокси.

 

Реально ли такое на Keenetic? Беглый гуглинг не показал наличие Proxy Server в Keenetic. Может есть другой способ, не через Proxy?

 

p.s. Если что, устройство у меня ещё не куплено, в профиле отмечено, т.к. форум потребовал. Рассматриваю его к покупке, если там можно сделать реализовать такое.

Посмотрите

1. Возможность поднимать alias на сетевой Windows - два IP

2. Почитать - Bind any Windows application to a specific interface or IP address

https://r1ch.net/projects/forcebindip

https://vmblog.ru/kak-privyazat-prilozhenie-k-opredelennomu-setevomu-interfejsu/

ForceBindIP.exe 192.168.1.12 "c:\Program Files (x86)\Mozilla Firefox\firefox.exe"

3. NetSetMan программа, которая позволяет создавать профили (всего 6 профилей) дял сетевых подключений и быстро переключаться между ними.

4. То что может ПО роутера

Может что-то и получаться.

  • Upvote 1
  • 0
Posted
4 часа назад, keenet07 сказал:

Чтоб через второй неактивный интерфейс ходить через прокси?

Он всегда активен. Просто через него не проходит маршрут по умолчанию. А проксировать пакеты на него используя 3proxy можно. Желательно купить услугу "белый IP" для обоих WAN.

Вот рабочий конфиг 3proxy

daemon
pidfile /opt/var/run/3proxy.pid
nscache 65536
nserver 127.0.0.1

config /opt/etc/3proxy/3proxy.cfg
monitor /opt/etc/3proxy/3proxy.cfg
monitor /opt/etc/3proxy/counters
monitor /opt/etc/3proxy/passwd
monitor /opt/etc/3proxy/bandlimiters

log /opt/var/log/3proxy.log D
rotate 60
counter /opt/etc/3proxy/3proxy.3cf

#users $/opt/etc/3proxy/passwd

include /opt/etc/3proxy/counters
include /opt/etc/3proxy/bandlimiters

auth strong
deny * * 127.0.0.1
allow *
proxy -n

auth none
allow *
proxy -d -iLOCAL.IP.ADDRESS -p5080 -eEXTERNAL.IP.ADDRESS -n
socks -d -iLOCAL.IP.ADDRESS -p5081 -eEXTERNAL.IP.ADDRESS
flush

allow admin
admin -p8080

 

  • Thanks 1
  • 0
Posted
1 hour ago, vadimbn said:

Он всегда активен. Просто через него не проходит маршрут по умолчанию. А проксировать пакеты на него используя 3proxy можно. Желательно купить услугу "белый IP" для обоих WAN.

Вот рабочий конфиг 3proxy


daemon
pidfile /opt/var/run/3proxy.pid
nscache 65536
nserver 127.0.0.1

config /opt/etc/3proxy/3proxy.cfg
monitor /opt/etc/3proxy/3proxy.cfg
monitor /opt/etc/3proxy/counters
monitor /opt/etc/3proxy/passwd
monitor /opt/etc/3proxy/bandlimiters

log /opt/var/log/3proxy.log D
rotate 60
counter /opt/etc/3proxy/3proxy.3cf

#users $/opt/etc/3proxy/passwd

include /opt/etc/3proxy/counters
include /opt/etc/3proxy/bandlimiters

auth strong
deny * * 127.0.0.1
allow *
proxy -n

auth none
allow *
proxy -d -iLOCAL.IP.ADDRESS -p5080 -eEXTERNAL.IP.ADDRESS -n
socks -d -iLOCAL.IP.ADDRESS -p5081 -eEXTERNAL.IP.ADDRESS
flush

allow admin
admin -p8080

 

А зачем белые IP?

  • 0
Posted (edited)

А безопаснее вот так (нет соединений на внешних интерфейсах):

daemon
pidfile /opt/var/run/3proxy.pid
nscache 65536
nserver 127.0.0.1

config /opt/etc/3proxy/3proxy.cfg
monitor /opt/etc/3proxy/3proxy.cfg
monitor /opt/etc/3proxy/counters
monitor /opt/etc/3proxy/passwd
monitor /opt/etc/3proxy/bandlimiters

log /opt/var/log/3proxy.log D
rotate 60
counter /opt/etc/3proxy/3proxy.3cf

#users $/opt/etc/3proxy/passwd

include /opt/etc/3proxy/counters
include /opt/etc/3proxy/bandlimiters

auth none
allow *
proxy -d -iLOCAL.IP.ADDRESS -pPORT_HTTP_HTTPS_FTP -eEXTERNAL.IP.ADDRESS -n
socks -d -iLOCAL.IP.ADDRESS -pPORT_SOCKS -eEXTERNAL.IP.ADDRESS
flush

allow admin
admin -iLOCAL.IP.ADDRESS -pPORT_ADMIN

LOCAL.IP.ADDRESS - локальный IP-адрес роутера (например, 192.168.1.1)

EXTERNAL.IP.ADDRESS - реальный IP-адрес WAN-интерфейса

PORT_HTTP_HTTPS_FTP - порт для проксирования протоколов HTTP, HTTPS, FTP, не занятый другими протоколами (например, 5080)

PORT_SOCKS - порт для проксирования SOCKS 4/5, не занятый другими протоколами (например, 5081)

PORT_ADMIN - порт страницы администрирования прокси-сервера, на которой, впрочем, нет почти ничего интересного.

Это простейший конфиг, в 3proxy много опций для запретов/разрешений, можно ограничивать доступ с некоторых IP, и прочее.

Edited by vadimbn
  • 0
Posted

@vadimbn Если вместо ip адреса WAN-интерфейса указать адрес полученный VPN соединением на роутере, тоже будет работать?

  • 0
Posted
57 минут назад, Krabik сказал:

А нельзя ли привязываться не к IP, а к интерфейсам?

В 3proxy я таких опций не нашел. Возможно в squid есть

 

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

Если вместо ip адреса WAN-интерфейса указать адрес полученный VPN соединением на роутере, тоже будет работать?

Mаршрутизируемый адрес нужен. Наиболее простой путь - делаем VPN-соединение, ставим при этом галочку "Использовать для выхода в Интернет", появляется еще одно соединение. Тогда адрес этого соединения можно указывать в 3proxy. Сложнее - надо будет мутить с маршрутами или iptables.

  • Thanks 1
  • 0
Posted

Народ, подскажите, подскажите, почему через второй интерфейс (192.168.0.190) нет доступа к сети, что прописал не так?

nscache 65536

nserver 8.8.8.8

config /opt/etc/3proxy/3proxy.cfg
monitor /opt/etc/3proxy/3proxy.cfg

log /opt/var/log/3proxy-%y%m%d.log D
rotate 60
counter /opt/var/3proxy.3cf

users $/opt/etc/3proxy/passwd

include /opt/etc/3proxy/counters
include /opt/etc/3proxy/bandlimiters

auth none
allow *

socks -d -i192.168.1.1 -p5081 -e192.168.2.162 -n
socks -d -i192.168.1.1 -p5082 -e192.168.0.190

flush

allow admin
admin -p8080

  • 0
Posted

Была задача как у топикстартера - иметь прокси для выхода через резервный модем.

У 3proxy есть отличный ключ -De, который позволяет строить исходящий канал через указанный интерфейс.

 

Получился такой конфиг:

nscache 65536
nserver 8.8.8.8
nserver 8.8.4.4

daemon

config /opt/etc/3proxy/3proxy.cfg
monitor /opt/etc/3proxy/3proxy.cfg

log /opt/var/log/3proxy-%y%m%d.log D
rotate 60
counter /opt/var/3proxy.3cf

#users $/opt/etc/3proxy/passwd
users User:CL:Pass

include /opt/etc/3proxy/counters
include /opt/etc/3proxy/bandlimiters

auth strong
deny * * 127.0.0.1
allow User * * * * * *
proxy -i192.168.1.1 -p3128 -n -a -Deqmi_br0
flush
allow admin

admin -p8080

qmi_br0 - название интерфейса LTE модема.

192.168.1.1 - IP роутера

  • 0
Posted
В 08.12.2019 в 01:25, Krabik сказал:

Но при это я хочу чтобы некоторые приложения (например браузер Chrome) ВСЕГДА ходили только через резервный.

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

И никакой SOCKS-прокси не понадобится.

  • Upvote 1
  • 0
Posted
В 23.12.2022 в 08:55, Александр Рыжов сказал:

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

И никакой SOCKS-прокси не понадобится.

Александр, спасибо за интересное решение! Попробовал его реализовать, но в моем случае я пытаюсь завернуть трафик приложения не в VPN туннель, а во второго провайдера. У меня на одном порту через CLI на разных VLAN настроены два провайдера. 

В выводе ifconfig они отображаются как eth3.10 и eth3.20 соответственно, при этом eth3.10 имеет бОльший приоритет, он основной. Сделал все в точности по инструкции, указал во втором скрипте интерфейс eth3.20. 

По диагностике tcpdump не нулевой, ip rule list правило выдает

Маршрут так же есть 

~ # ip route list table 1001
default dev eth3.20 scope link

Правило netfilter тоже есть

~ # iptables-save | grep dscp
-A PREROUTING -i br0 -m dscp --dscp 0x3f -j MARK --set-xmark 0x1/0xffffffff
 

Но при этом траффик все равно упорно идет через основного провайдера на интерфейсе eth3.10

Второй провайдера работает, настроен верно, если перекинуть хост в другую политику, он работает через провайдера eth3.20

 

Не знаете, в чем может быть дело? В какую сторону копать? Маскирование получается работает, просто почему-то не заворачивается траффик в нужный интерфейс

  • Thanks 1
  • 0
Posted (edited)
2 часа назад, Plox99 сказал:

Попробовал его реализовать, но в моем случае я пытаюсь завернуть трафик приложения не в VPN туннель, а во второго провайдера. У меня на одном порту через CLI на разных VLAN настроены два провайдера. 

В какую сторону копать?

Делала как то давно, проверил сейчас для 5.х (есть отличие от 4.х, так как теперь по MAC)

Спойлер

Беру две готовые политики в которых активен нужный канал (провайдера). Нужный клиент - E8:КЛИЕНТ:74 и он в ОСНОНОЙ политике. Есть приложение на данном клиенте Windows торрент и для него создан DSCP = 0x3F и просто браузер для интернета.

Далее

#!/bin/sh

[ "$table" != "mangle" ] && exit 0

if [ -z "$(iptables-save | grep 'dscp')" ]; then
 iptables -t mangle -I _NDM_HOTSPOT_PREROUTING_MANGL -m mac --mac-source E8:КЛИЕНТ:74 -j RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PREROUTING_MANGL -m mac --mac-source E8:КЛИЕНТ:74 -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
 iptables -t mangle -I _NDM_HOTSPOT_PREROUTING_MANGL -m mac --mac-source E8:КЛИЕНТ:74 -m dscp --dscp 0x3f -j MARK --set-xmark 0xffffaaa/0xffffffff
 iptables -t mangle -I _NDM_HOTSPOT_PREROUTING_MANGL -m mac --mac-source E8:КЛИЕНТ:74 -j MARK --set-xmark 0xffffaab/0xffffffff

fi
exit 0


Chain _NDM_HOTSPOT_PREROUTING_MANGL (1 references)
 pkts bytes target     prot opt in     out     source               destination
 6547 1327K MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 MARK set 0xffffaab
 1486  188K MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 DSCP match 0x3f MARK set 0xffffaaa
 6547 1327K CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 CONNMARK save
 6547 1327K RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74

При выкл. торрент качалке на клиенте

Chain _NDM_HOTSPOT_PREROUTING_MANGL (1 references)
 pkts bytes target     prot opt in     out     source               destination
   13  2578 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 MARK set 0xffffaab
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 DSCP match 0x3f MARK set 0xffffaaa
   13  2578 CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 CONNMARK save
   13  2578 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74

политика 1 = 0xffffaaa - ppp0 интерфейс - Инет1

политика 2 = 0xffffaab - eth2.9 интерфейс - Инет2

Запускаю скачку из браузера с mail.ru/yandex.ru диска (файл чуть более 1GB, через некоторое время включал еще раз) и потом торрент качалку (файл 50GB). 

-2.thumb.jpg.1f61c58e7228e5435aa375723fe0961e.jpg

 

Edited by vasek00
  • Thanks 1
  • 0
Posted
3 часа назад, vasek00 сказал:

Делала как то давно, проверил сейчас для 5.х (есть отличие от 4.х, так как теперь по MAC)

  Скрыть контент

Беру две готовые политики в которых активен нужный канал (провайдера). Нужный клиент - E8:КЛИЕНТ:74 и он в ОСНОНОЙ политике. Есть приложение на данном клиенте Windows торрент и для него создан DSCP = 0x3F и просто браузер для интернета.

Далее

#!/bin/sh

[ "$table" != "mangle" ] && exit 0

if [ -z "$(iptables-save | grep 'dscp')" ]; then
 iptables -t mangle -I _NDM_HOTSPOT_PREROUTING_MANGL -m mac --mac-source E8:КЛИЕНТ:74 -j RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PREROUTING_MANGL -m mac --mac-source E8:КЛИЕНТ:74 -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
 iptables -t mangle -I _NDM_HOTSPOT_PREROUTING_MANGL -m mac --mac-source E8:КЛИЕНТ:74 -m dscp --dscp 0x3f -j MARK --set-xmark 0xffffaaa/0xffffffff
 iptables -t mangle -I _NDM_HOTSPOT_PREROUTING_MANGL -m mac --mac-source E8:КЛИЕНТ:74 -j MARK --set-xmark 0xffffaab/0xffffffff

fi
exit 0


Chain _NDM_HOTSPOT_PREROUTING_MANGL (1 references)
 pkts bytes target     prot opt in     out     source               destination
 6547 1327K MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 MARK set 0xffffaab
 1486  188K MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 DSCP match 0x3f MARK set 0xffffaaa
 6547 1327K CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 CONNMARK save
 6547 1327K RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74

При выкл. торрент качалке на клиенте

Chain _NDM_HOTSPOT_PREROUTING_MANGL (1 references)
 pkts bytes target     prot opt in     out     source               destination
   13  2578 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 MARK set 0xffffaab
    0     0 MARK       all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 DSCP match 0x3f MARK set 0xffffaaa
   13  2578 CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74 CONNMARK save
   13  2578 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            MAC E8:КЛИЕНТ:74

политика 1 = 0xffffaaa - ppp0 интерфейс - Инет1

политика 2 = 0xffffaab - eth2.9 интерфейс - Инет2

Запускаю скачку из браузера с mail.ru/yandex.ru диска (файл чуть более 1GB, через некоторое время включал еще раз) и потом торрент качалку (файл 50GB). 

-2.thumb.jpg.1f61c58e7228e5435aa375723fe0961e.jpg

 

Интересно, спасибо! Подскажите, а где как посмотреть идентификаторы политик? (0xffffaaa и 0xffffaab в Вашем примере)? 

  • 0
Posted

Пордон, тупой вопрос задал, разобрался, по сути у меня плюс минус тоже самое, просто без MAC, добавил, ничего не изменилось, видимо проблема все таки именно в маршрутизации

  • 0
Posted

Победил, пришлось добавить сам хост в политику с многопутевой передачей, после этого траффик приложения начал работать по нужному провайдеру.

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
Answer this question...

×   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...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.